FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Gestion d'un système client-serveur.
ROBLARECUB (casse-tête) Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
ROBLARECUB (casse-tête) Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
ROBLARECUB (casse-tête) Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
ROBLARECUB (casse-tête) Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
ROBLARECUB (casse-tête) Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
ROBLARECUB (casse-tête) Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
ROBLARECUB (casse-tête) Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
ROBLARECUB (casse-tête) Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
ROBLARECUB (casse-tête) Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
ROBLARECUB (casse-tête) Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
ROBLARECUB (casse-tête) Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
ROBLARECUB (casse-tête) Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
ROBLARECUB (casse-tête) Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
ROBLARECUB (casse-tête) Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
ROBLARECUB (casse-tête) Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-21%
Le deal à ne pas rater :
LEGO® Icons 10329 Les Plantes Miniatures, Collection Botanique
39.59 € 49.99 €
Voir le deal

 

 ROBLARECUB (casse-tête)

Aller en bas 
2 participants
AuteurMessage
mimic

mimic


Nombre de messages : 103
Localisation : france
Date d'inscription : 02/09/2009

ROBLARECUB (casse-tête) Empty
MessageSujet: ROBLARECUB (casse-tête)   ROBLARECUB (casse-tête) EmptyMar 17 Jan 2017 - 12:34

Bonjour,

Voici un petit jeu de mon invention, pour les froides soirées d'hiver...

Code:

FORM 1:width 1,500:height 1,500:caption 1,"ROBLARECUB 17-01-17 v3p"
command_target_is 1
PICTURE 8:width 8,600:height 8,500:color 8,179,103,0
edit 2:top 2,400:left 2,40:width 2,25
alpha 11:width 11,100:height 11,25:top 11,370:left 11,250
alpha 12:width 12,100:height 12,25:top 12,410:left 12,250
alpha 13:width 13,100:height 13,25:top 13,370:left 13,130
alpha 14:width 14,100:height 14,25:top 14,400:left 14,130
alpha 15:width 15,100:height 15,25:top 15,370:left 15,5:caption 15,"commande :"
dim I%,J%,X%,Y%
dim sx%,sy%
dim tok$,a$
DIM COLDIM%,LIGDIM%,NIV%,ENERGTOT%,BORDX%,BORDY%,CIRDIM%,NBGRILLE%,MEM%,CMD%,SCORE%,NCMD%
dim ALEA,NPI
label analyse,recup,totenerg
NPI=3.14159265359
' Système d`aide du programme
APPLICATION_TITLE "Règles du jeu ROBLARECUB"
a$="Votre mission, commander un petit robot (ROB, le cercle blanc) pour récupérer des déchets et les convertir en énergies."+chr$(13)
a$=a$+"But du jeu :Récupérer un maximum d'énergie sans en perdre."+chr$(13)
a$=a$+"ROB comprends 16 commandes (la touche tapée dans l'édit reste affichée un cours instant, c'est voulu !)"+chr$(13)
a$=a$+"- la lettre A pour lui ordonner une recherche en diagonnale vers le haut à gauche"+chr$(13)
a$=a$+"- la lettre B pour lui ordonner une recherche vers le haut"+chr$(13)
a$=a$+"- la lettre C pour lui ordonner une recherche en diagonnale vers le haut à droite"+chr$(13)
a$=a$+"- la lettre D pour lui ordonner une recherche vers la gauche"+chr$(13)
a$=a$+"- la lettre F pour lui ordonner une recherche vers la droite,"+chr$(13)
a$=a$+"- la lettre G pour lui ordonner une recherche en diagonnale vers le bas à gauche"+chr$(13)
a$=a$+"- la lettre H pour lui ordonner une recherche vers le bas,"+chr$(13)
a$=a$+"- la lettre I pour lui ordonner une recherche en diagonnale vers le bas à droite"+chr$(13)
a$=a$+"la lettre E pour arrêter la partie."+chr$(13)
a$=a$+"- le chiffre 2 pour récupérer des déchets marron,3 pour récupérer déchets rouge,4 pour les rose, 5 pour les orange,6  pour les bleu, 7  pour les bleu ciel,8 les vert, 9 les jaunes"+chr$(13)
a$=a$+"Les déchets rapportent 10 fois leur chiffre, donc un jaune vaut 90 points.
a$=a$+"Un cercle noir correspond à une case déjà exporée."+chr$(13)
a$=a$+"Chaque déplacement retire 1 point d'énergie."+chr$(13)
a$=a$+"Chaque changement de chiffre ou de lettre retire un nombre de points égale au niveau de jeu en cours + 4."+chr$(13)
a$=a$+"Au démarrage, ROB est initialisé avec le chiffre 0 et la lettre A."+chr$(13)
a$=a$+"ROB poursuit sa recherche tant qu'il rencontre une case vide ou un déchet de la couleur souhaitée."+chr$(13)
a$=a$+"Il s'arrête quant il touche un bord ou perçoit une couleur différente."+chr$(13)
a$=a$+""
MESSAGE a$
if message_input("ENTRER LE NIVEAU", "UN CHIFFRE DE 0 A 7" , "0")=1
NIV%=val(message_text$)
caption 13,"Niveau : "+str$(NIV%)
end_if
if message_input("ENTRER UN N° DE GRILLE", "UN CHIFFRE DE 1 A 21" , "1")=1
NBGRILLE%=val(message_text$)
caption 14,"Grille n° : "+str$(NBGRILLE%)
ALEA=(frac(NPI)/3)*NBGRILLE%
end_if
caption 11,"votre score : "+str$(SCORE%)
COLDIM%=NIV%+4
LIGDIM%=NIV%+4
dim INK%(9,2)
dim MATA%(COLDIM%+1,LIGDIM%+1)
dim mov%(8,1)

INK%(0,0)=255:INK%(0,1)=255:INK%(0,2)=255
INK%(2,0)=178:INK%(6,1)=179:INK%(6,2)=190
INK%(3,0)=225:INK%(6,1)=206:INK%(6,2)=154
INK%(4,0)=255:INK%(4,1)=0:INK%(4,2)=255
INK%(5,0)=250:INK%(5,1)=164:INK%(5,2)=1
INK%(6,0)=0:INK%(6,1)=128:INK%(6,2)=255
INK%(7,0)=121:INK%(7,1)=248:INK%(7,2)=248
INK%(8,0)=54:INK%(8,1)=247:INK%(8,2)=28
INK%(9,0)=247:INK%(9,1)=255:INK%(9,2)=60
font_size 1,14
2d_target_is 8
BORDX%=32
BORDY%=32
CIRDIM%=15
for I%=0 to 9
2d_fill_color INK%(I%,0),INK%(I%,1),INK%(I%,2)
2d_circle 450,BORDY%*I%+50,CIRDIM%
next I%
for I%=1 to COLDIM%
for J%=1 to LIGDIM%
ALEA=frac(ALEA+NPI)
MATA%(I%,J%)=int(ALEA*(NIV%+1))+10-(NIV%+1)
2d_fill_color INK%(MATA%(I%,J%),0),INK%(MATA%(I%,J%),1),INK%(MATA%(I%,J%),2)
2d_circle BORDX%*I%,BORDY%*J%,CIRDIM%
next J%
next I%
for J%=0 to COLDIM%+1
MATA%(LIGDIM%+1,J%)=-1
MATA%(0,J%)=-1
NEXT J%
for I%=0 to LIGDIM%+1
MATA%(I%,COLDIM%+1)=-1
MATA%(I%,0)=-1
NEXT I%

ALEA=frac(ALEA+NPI)
X%=int(LIGDIM%*ALEA)+1
ALEA=frac(ALEA+NPI)
Y%=int(COLDIM%*ALEA)+1
MATA%(X%,Y%)=1
2d_fill_color 255,255,255
2d_circle BORDX%*X%,BORDY%*Y%,CIRDIM%
mov%(0,0)=-1
rem a
mov%(0,1)=-1
mov%(1,0)=0
rem b
mov%(1,1)=-1
mov%(2,0)=1
rem c
mov%(2,1)=-1
mov%(3,0)=-1
rem d
mov%(3,1)=0
mov%(4,0)=0
rem e
mov%(4,1)=0
mov%(5,0)=1
rem f
mov%(5,1)=0
mov%(6,0)=-1
rem g
mov%(6,1)=1
mov%(7,0)=0
rem h
mov%(7,1)=1
mov%(8,0)=1
rem i
mov%(8,1)=1
NCMD%=0
CMD%=0
gosub totenerg
gosub analyse
end

analyse:
while NCMD%<>69
if len(text$(2))=1
tok$=LEFT$(text$(2),1)
wait 125
text 2,""
tok$=upper$(tok$)
NCMD%=asc(tok$)
if NCMD%=69
caption 11,"SCORE FINAL : "+str$(SCORE%)
end
end_if
if NCMD%<65
MEM%=val(tok$)
else
CMD%=NCMD%-65
end_if
SCORE%=SCORE%-NIV%-1
gosub recup
caption 11,"votre score : "+str$(SCORE%)
end_if
end_while
return

recup:
sx%=X%+mov%(CMD%,0)
sy%=Y%+mov%(CMD%,1)
while (MATA%(sx%,sy%)=MEM%) or (MATA%(sx%,sy%)=0)
SCORE%=SCORE%+MATA%(sx%,sy%)*10
MATA%(X%,Y%)=0:MATA%(sx%,sy%)=1
2d_fill_color 0,0,0
2d_circle BORDX%*X%,BORDY%*Y%,CIRDIM%
2d_fill_color 255,255,255
2d_circle BORDX%*sx%,BORDY%*sy%,CIRDIM%
wait 250
X%=X%+mov%(CMD%,0)
Y%=Y%+mov%(CMD%,1)
sx%=X%+mov%(CMD%,0)
sy%=Y%+mov%(CMD%,1)
SCORE%=SCORE%-1
caption 11,"votre score : "+str$(SCORE%)
end_while
return

totenerg:
ENERGTOT%=0
for I%=1 to COLDIM%
for J%=1 to LIGDIM%
ENERGTOT%=ENERGTOT%+MATA%(I%,J%)
next J%
next I%
caption 12,"Score max estimé : "+str$((ENERGTOT%-1)*10-COLDIM%*LIGDIM%-(NIV%+1)*8)
return
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

ROBLARECUB (casse-tête) Empty
MessageSujet: Re: ROBLARECUB (casse-tête)   ROBLARECUB (casse-tête) EmptyMar 17 Jan 2017 - 13:18

Bonjour Mimic

L’idée est bonne.

Code:
NPI=3.14159265359

Panoramic reconnait la constante PI, tu n’as pas besoin de la déclarer ni de lui affecter une valeur, il suffit de l’invoquer par son joli nom PI à l’endroit voulu.

Comme les ‘ordres’ à donner à ROB ne sont pas facilement mémorisables et que le programme attend de l’utilisateur une donnée bien précise, il est souhaitable de ‘blinder le code’.
Ceci pour éviter les désagréables messages d’erreur Not correct arithmetic expression : Error in function. Line : … lorsque l’utilisateur fournit une donnée de type autre que ce qui est attendu (une lettre au lieu d’un chiffre, par exemple).

Pour voir ce que j’avance, essaye de taper, par exemple, la lettre W comme donnée dans les MESSAGE_INPUT …

Dernière mini remarque :
Pour une meilleure lisibilité du code, il est fortement recommandé d’indenter les lignes dans les structures IF / END_IF, FOR / NEXT, WHILE / END_WHILE, REPEAT / UNTIL, etc..

Tu as tenté une chose, c’est bien.
Tu peux améliorer ton code, c’est mieux.
Bon plaisir avec Panoramic.

A+
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
 
ROBLARECUB (casse-tête)
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Un nouveau casse tête chinois
» Casse-tête : Echanger les positions des cavaliers
» Tête inversible
» CASSE : réécriture des mots-clés en majuscules ou minuscules

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les jeux faits avec Panoramic-
Sauter vers: