FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» StratégoV8 et V9
par Minibug Aujourd'hui à 1:10

» Rotation d'une image d'un angle quelconque
par JL35 Hier à 23:02

» GRID_LOAD
par Jean Claude Hier à 21:04

» HVIEWER
par Yannick Hier à 20:31

» KGF_dll - nouvelles versions
par Klaus Mar 16 Jan 2018 - 21:28

» Déformation d'image en trapèze
par mindstorm Mar 16 Jan 2018 - 21:06

» Mah-Jong américain
par Jean Claude Lun 15 Jan 2018 - 19:37

» Problème avec Deepl
par Klaus Lun 15 Jan 2018 - 0:34

» Quelques nouvelles ...
par Jean Claude Ven 12 Jan 2018 - 22:40

» Renommer les instructions ITEM_... ?
par Jicehel Ven 12 Jan 2018 - 18:56

» Ludothèque Panoramic
par jjn4 Ven 12 Jan 2018 - 18:11

» sous-programmes et fonctions
par Jack Ven 12 Jan 2018 - 17:51

» Mah-Jong français
par Jean Claude Jeu 11 Jan 2018 - 22:15

» panoramic 0.9.28
par gigi75 Ven 5 Jan 2018 - 14:06

» Un jeu qui va vous énerver!
par Jean Claude Jeu 4 Jan 2018 - 22:05

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Janvier 2018
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
293031    
CalendrierCalendrier

Partagez | 
 

 Panoramincollable

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Panoramincollable   Sam 7 Jan 2012 - 3:42

bon aller, je me lance dans un jeu type incollables.
Je viens de faire le source pour dessiner le plateau (il évolura peut-être) et si des personnes ont des commentaires / améliorations / etc, n'hésitez pas.

PS: Pour l'instant on ne peut pas jouer, ça trace juste le plateau, mais bon, je viens de commencer ...
Ressources à télécharger (images et première ébauche du fichier 'question)
=> http://panoramic-rpg.e-monsite.com/medias/files/incollables.zip

Code:
 ' Les incollables
 
Dim w0,h0,nx,ny,hp,wp
Dim i,j,x,y, objets

nx=14 : ny = 14
w0 = SCREEN_X    : wp = INT(w0/(nx+2)) : h0 = SCREEN_Y-40 : hp = INT(h0/(ny+2))
WIDTH 0, w0: HEIGHT 0, h0: COLOR 0, 0,255,255: CAPTION 0, " - INCOLLABLES -"

Image 1 : hide 1: width 1,30: height 1,30 : File_load 1,"images\sourire.bmp"
Image 2 : hide 2: width 2,30: height 2,30 : File_load 2,"images\triste.bmp"
Image 3 : hide 3: width 3,30: height 3,30 : File_load 3,"images\pouce.bmp"
' sprite 4: sprite_File_load 4,"images\pouce"


Dim NbCases : NbCases = 46
Dim Parcours(NbCases,3)

Data 10, 1, 1,10, 2, 2, 9, 2, 2, 8, 2, 2  : ' 4 cases
Data  7, 2,19, 6, 2, 4, 6, 3, 4, 6, 4, 4
Data  6, 5,37, 7, 5, 6, 8, 5, 2, 9, 5,69
Data 10, 5, 7,11, 5, 8,11, 4, 4,12, 4,18
Data 13, 4,37,14, 4, 3,14, 5, 7,14, 6, 7
Data 14, 7, 7,14, 8,69,14, 9, 3,13, 9,22
Data 12, 9, 8,11, 9, 8,10, 9, 8, 9, 9,20
Data  8, 9, 7, 8,10,37, 8,11, 2, 8,12,24
Data  8,13, 6, 8,14, 6, 7,14, 6, 6,14,23
Data  5,14, 6, 4,14,69, 4,13, 3, 3,13, 3
Data  3,12, 3, 3,11,37, 3,10, 4, 3, 9,69
Data  2, 9, 8, 1, 9, 1

Font_Bold 0
For i = 1 to NbCases
  Read Parcours(i,1)
  Read Parcours(i,2)
  Read Parcours(i,3)
  j=bin_and(Parcours(i,3),15)
  Select J
      Case 1: 2D_FILL_COLOR 160, 60, 30:wait 1
      Case 2: 2D_FILL_COLOR 240,  0,  0
      Case 3: 2D_FILL_COLOR  0,  0,200
      Case 4: 2D_FILL_COLOR 240,200,  0
      Case 5: 2D_FILL_COLOR 250,160,160
      Case 6: 2D_FILL_COLOR 160, 10,130
      Case 7: 2D_FILL_COLOR  20,100, 20
      Case 8: 2D_FILL_COLOR  50,200, 50
  End_Select
  x= Parcours(i,1) : y= Parcours(i,2) - 0.3
  2D_RECTANGLE x*wp,y*hp,(x+1)*wp,(y+1)*hp
  if bin_and(Parcours(i,3),16) = 16
    x = Parcours(i,1)*wp + int((wp-30)/2)
    y = Parcours(i,2)*hp - int((hp-30)/2)
    2D_image_paste 3, x, y
  else
    if bin_and(Parcours(i,3),32) = 32
      x = Parcours(i,1)*wp + int((wp-30)/2)
      y = Parcours(i,2)*hp - int((hp-30)/2)
      2D_image_paste 1, x, y
    else
      if bin_and(Parcours(i,3),64) = 64
        x = Parcours(i,1)*wp + int((wp-30)/2)
        y = Parcours(i,2)*hp - int((hp-30)/2)
        2D_image_paste 2, x, y
      end_if
    end_if
  end_if
  IF i=1 then x= Parcours(i,1)*wp + 10: y= Parcours(i,2)*hp + 5: PRINT_LOCATE x,y: PRINT "Depart"
  IF i=NbCases then x= Parcours(i,1)*wp + 10: y= Parcours(i,2)*hp + 5: PRINT_LOCATE x,y: PRINT "Arrivée"
Next i
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
bignono

avatar

Nombre de messages : 1109
Age : 60
Localisation : Val de Marne
Date d'inscription : 13/11/2011

MessageSujet: Re: Panoramincollable   Sam 7 Jan 2012 - 9:04

Bonjour Jicehel, Smile

C'est pas mal pour un début. J'attends de voir la suite avec impatience bounce . Ma fille est justement en CE1 et cela correspond à ce qu'ils étudient cette année en classe.
Tu regarderas ton fichier questionnaire car je crois que tu as oublié un mot:
"Jeremy peche 6 Eric en pêche..." je crois que c'est plutôt: Jeremy pèche 6 poissons Eric en pêche..."

Cordialement et bonne programmation. Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
exdragon

avatar

Nombre de messages : 601
Date d'inscription : 05/01/2012

MessageSujet: Re: Panoramincollable   Sam 7 Jan 2012 - 9:10

Salut à tous Wink

Ce jeu est bonne idée qui amusera toute la famille grands et petits.

Ah tiens, tu me fais penser Bignono à l'orthographe, qui est importante dans l'aspect d'un jeu quand même, surtout dans un jeu qui se veut savant^^

EDIT1 :
Quand j'ai voulu le lancer, les fichiers d'images n'ont pas pus être chargés parce que chaque nom de fichier commence par une majuscule alors quand le code ils sont en minuscule.
C'est le chargeur de fichier de Panoramic qui fait attention à la casse.

EDIT2 :
Le trajet du jeu est beau, et sympa pour les enfants, mais moi je n'ai rien d'autre que le trajet, il ne se passe rien, ni sons, ni autres.

EDIT3 :
Je me rends compte dans ton programme que tu as placé les cases du jeu par des datas.
Il y a un autre moyen si tu veux, c'est de faire une image sur paint, de l'ensemble du trajet, et de l'afficher telle quelle.
Pour déterminer la position d'une case c'est très facile, tu fais comme j'ai fais dans le jeu de bataille navale, il faut que je le recherche sur le forum.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panoramincollable   Sam 7 Jan 2012 - 11:19

En fait je pense faire le programme rapidement dans un premier temps puis l'améliorer.
J'ai mis les cases dans des data par ce que j'ai pensé à plus tard Smile
L'idée de la structure du programme sera:
Page d'accueil avec une image et des boutons dont le principal, commencer une nouvelle partie, mais aussi continuer une partie (et oui, dans le menu pendant le jeu, je pense ajouter un sauvegarder la partie en cours (voir faire une sauvegarde auto, à voir)), mais aussi un bouton "enrichir données"

Dans la partie jouer, demande le nombre de joueurs, noms, puis niveau ou thème (niveau: tout petit (accompagné d'un adulte pour lire et surveiller), cp,ce1,ce2,cm1,cm2,..., adulte ,génie et thème, pas de niveau mais des sujets particuliers) et enfin couleur (ils auront le choix, même que la même couleur qu'un autre joueur si l'initiale du prénom est différente puisque l'initiale sera affichée dans le pion)
Choix du Parcours à utiliser
Sinon pendant le jeu, options disponible pendant le jeu mode sablier avec temps paramétrable, sauvegarde de la partie et enregistrement d'un log parental qui indique les questions et les réponses des enfants qui sera consultable hors du prog ou dans un bouton secret dans la partie "enrichir"

Enrichir permettrait d'éditer le questionnaire ou de créer une nouvelle série ou d'éditer un nouveau parcours (Tracé, choix de la couleur des cases, ...)

Hum, je crois que j'ai mis le plus gros des idées que j'ai eu hier ...
Sinon, après quand ça marchera bien, sur le principe du labyrinthe de bignono, je pense faire une version 3D assez simple (je garde le principe du parcours par le tableau pour connaitre les déplacements à effectuer) et je créais des cases côte à côte à la place de créer des murs comme dans le labyrinthe.
La différence serait que la caméra sera fixe (un peu comme la vue de dessus du labyrinthe)

Et voilu, vous avez plus d'éléments sur ce que je pense faire (je n'ai plus cas ...)

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
bignono

avatar

Nombre de messages : 1109
Age : 60
Localisation : Val de Marne
Date d'inscription : 13/11/2011

MessageSujet: Re: Panoramincollable   Sam 7 Jan 2012 - 13:07

Bonjour Jicehel,

OUAOUHHH!!!
Alors là, c'est génial comme idée de programme! Et je te souhaite de tout coeur de parvenir à finaliser le prog!
Ce serait très sympa pour les enfants! En plus par la suite si tu adaptes le parcours au principe de mon labyrinthe, c'est encore plus ludique! >Les enfants risquent d'adorer ce jeu. Very Happy Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
exdragon

avatar

Nombre de messages : 601
Date d'inscription : 05/01/2012

MessageSujet: Re: Panoramincollable   Sam 7 Jan 2012 - 13:16

Par contre je ne conseille pas l'ordi pour les enfants qui sont en dessous du CP, voire du CE1.
Il y a tellement déjà d'écrans partout dans la vie qu'ils vont vite se retrouver avec des lunettes, et puis il y a d'autres dangers éventuels comme la nervosité à force de consulter des écrans et d'autres encore que je ne n'ai pas en tête mais d'ordre plus psy.

Bon projet je l'ai dis et je suis content que tu te décide ^^

EDIT : Il faut toujours commencer par faire l'éditeur de maps, dans un jeu où il y a des maps à changer.
ça permet quand tu fais le jeu lui-même d'avoir la map à disposition et de la changer pour différents tests.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panoramincollable   Dim 8 Jan 2012 - 15:00

Bon, je m'y suis mis un peu.

Là, le programme n'est toujours pas jouable, mais j'ai rajouté la simulation de l'avancée des pions sur le jeu (pour le moment, comme on ne teste pas les bonnes réponse, on fini la démo à la fin du tour du premier qui atteint l'arrivée, c'est arbitraire, le but est juste d'afficher les pions et de simuler l'avancée des pions)

Code:
 ' Les incollables
 
Dim w0,h0,nx,ny,hp,wp
Dim i,j,x,y, objets, COULEUR_PION(4,3), POS_PION(4), PION, R_PION, Nb_PION_Case, PION_Case(4)
Dim PION_SAUVE
Label Fin, Trace_Pion

nx=14 : ny = 14
w0 = SCREEN_X    : wp = INT(w0/(nx+2)) : h0 = SCREEN_Y-40 : hp = INT(h0/(ny+2))
WIDTH 0, w0: HEIGHT 0, h0: color 0,0,255,255 : CAPTION 0, " - INCOLLABLES -"

PICTURE 9  : WIDTH  9, w0-20: HEIGHT  9, h0-40 : color 9,0,255,255 :  Hide 9
2D_Target_is 9

Image 1 : hide 1: width 1,30: height 1,30 : File_load 1,"images\sourire.bmp"
Image 2 : hide 2: width 2,30: height 2,30 : File_load 2,"images\triste.bmp"
Image 3 : hide 3: width 3,30: height 3,30 : File_load 3,"images\pouce.bmp"

Dim NbJoueurs, Arrivee, MaxJoueur : MaxJoueur = 4
Dim NbCases : NbCases = 46
Dim Parcours(NbCases,3)

NbJoueurs = 4 : For i=1 to 4 : POS_PION(i) = 1: Image 3+i: Hide 3+i: Width 3+i,wp: Height 3+i, hp : Next i
COULEUR_PION(1,1)=250 : COULEUR_PION(1,2) =  50 : COULEUR_PION(1,3) =  50
COULEUR_PION(2,1)= 50 : COULEUR_PION(2,2) = 250 : COULEUR_PION(2,3) =  50
COULEUR_PION(3,1)= 50 : COULEUR_PION(3,2) =  50 : COULEUR_PION(3,3) = 250
COULEUR_PION(4,1)=250 : COULEUR_PION(4,2) =  50 : COULEUR_PION(4,3) = 250

if wp< hp then R_PION=int(wp/3):else:R_PION=int(hp/3)

 2D_TARGET_IS 0 : 2D_IMAGE_PASTE 4, 50,50
Data 10, 1, 1,10, 2, 2, 9, 2, 2, 8, 2, 2  : ' 4 cases
Data  7, 2,19, 6, 2, 4, 6, 3, 4, 6, 4, 4
Data  6, 5,37, 7, 5, 6, 8, 5, 2, 9, 5,69
Data 10, 5, 7,11, 5, 8,11, 4, 4,12, 4,18
Data 13, 4,37,14, 4, 3,14, 5, 7,14, 6, 7
Data 14, 7, 7,14, 8,69,14, 9, 3,13, 9,22
Data 12, 9, 8,11, 9, 8,10, 9, 8, 9, 9,20
Data  8, 9, 7, 8,10,37, 8,11, 2, 8,12,24
Data  8,13, 6, 8,14, 6, 7,14, 6, 6,14,23
Data  5,14, 6, 4,14,69, 4,13, 3, 3,13, 3
Data  3,12, 3, 3,11,37, 3,10, 4, 3, 9,69
Data  2, 9, 8, 1, 9, 1

Font_Bold 0
For i = 1 to NbCases
  Read Parcours(i,1)
  Read Parcours(i,2)
  Read Parcours(i,3)
  j=bin_and(Parcours(i,3),15)
  Select J
      Case 1: 2D_FILL_COLOR 160, 60, 30:wait 1
      Case 2: 2D_FILL_COLOR 240,  0,  0
      Case 3: 2D_FILL_COLOR  0,  0,200
      Case 4: 2D_FILL_COLOR 240,200,  0
      Case 5: 2D_FILL_COLOR 250,160,160
      Case 6: 2D_FILL_COLOR 160, 10,130
      Case 7: 2D_FILL_COLOR  20,100, 20
      Case 8: 2D_FILL_COLOR  50,200, 50
  End_Select
  x= Parcours(i,1) : y= Parcours(i,2) - 0.3
  2D_RECTANGLE x*wp,y*hp,(x+1)*wp,(y+1)*hp
  if bin_and(Parcours(i,3),16) = 16
    x = Parcours(i,1)*wp + int((wp-30)/2)
    y = Parcours(i,2)*hp - int((hp-30)/2)
    2D_image_paste 3, x, y
  else
    if bin_and(Parcours(i,3),32) = 32
      x = Parcours(i,1)*wp + int((wp-30)/2)
      y = Parcours(i,2)*hp - int((hp-30)/2)
      2D_image_paste 1, x, y
    else
      if bin_and(Parcours(i,3),64) = 64
        x = Parcours(i,1)*wp + int((wp-30)/2)
        y = Parcours(i,2)*hp - int((hp-30)/2)
        2D_image_paste 2, x, y
      end_if
    end_if
  end_if
  IF i=1 then x= Parcours(i,1)*wp + 10: y= Parcours(i,2)*hp + 5: PRINT_LOCATE x,y: PRINT "Depart"
  IF i=NbCases then x= Parcours(i,1)*wp + 10: y= Parcours(i,2)*hp + 5: PRINT_LOCATE x,y: PRINT "Arrivée"
Next i

Arrivee = 0
While Arrivee = 0
  For i=1 to NbJoueurs
    PION = i : PION_SAUVE = i
    if Pos_Pion(i) > 1
      x= Parcours(Pos_pion(Pion),1) : y = Parcours(Pos_pion(Pion),2)- 0.3
      2D_IMAGE_PASTE 3+PION,x*wp,y*hp
      for j = 1 to NbJoueurs
        if j<> PION and Pos_Pion(Pion) = Pos_Pion(j) then PION_SAUVE = J
      next j
    end_if
    Pos_Pion(i)= Pos_Pion(i)+int(rnd(6))+1
    if Pos_Pion(i) > NbCases then Pos_Pion(i) = NbCases
    Gosub Trace_Pion
    If Pos_Pion(i) = NbCases then Arrivee = 1
    If PION_SAUVE <> i
      PION = PION_SAUVE
      Gosub Trace_Pion
    End_if
    wait 500
  Next i
End_while
end

Trace_Pion:
  Nb_PION_Case = 1 : PION_Case(1) = PION
  for j = 1 to NbJoueurs
    if j<> PION
      if Pos_Pion(Pion) = Pos_Pion(j)
        Nb_PION_Case = Nb_PION_Case + 1
        PION_Case(Nb_PION_Case) = J
        x= Parcours(Pos_pion(J),1) : y = Parcours(Pos_pion(J),2)- 0.3
        2D_IMAGE_PASTE 3+J,x*wp,y*hp
        2D_image_copy 3+PION,x*wp, y*hp, (x+1)*wp,(y+1)*hp
        2D_Target_is 0
      end_if
    end_if
  next j
  Select Nb_PION_Case
  Case 1
    2D_FILL_COLOR COULEUR_PION(PION,1),COULEUR_PION(PION,2),COULEUR_PION(PION,3)
    x= Parcours(Pos_pion(Pion),1) : y = Parcours(Pos_pion(Pion),2)- 0.3
    2D_Image_copy 3+PION, x*wp, y*hp, (x+1)*wp,(y+1)*hp
    2D_Circle (x+0.5)*wp,(y+0.5)*hp,R_PION
  Case 2
    2D_FILL_COLOR COULEUR_PION(PION_Case(2),1),COULEUR_PION(PION_Case(2),2),COULEUR_PION(PION_Case(2),3)
    x= Parcours(Pos_pion(Pion_Case(2)),1) : y = Parcours(Pos_pion(Pion_case(2)),2)- 0.3
    2D_Circle (x+0.3)*wp,(y+0.35)*hp,R_PION
    2D_FILL_COLOR COULEUR_PION(PION_Case(1),1),COULEUR_PION(PION_Case(1),2),COULEUR_PION(PION_Case(1),3)
    x= Parcours(Pos_pion(Pion_Case(1)),1) : y = Parcours(Pos_pion(Pion_case(1)),2)- 0.3
    2D_Circle (x+0.8)*wp,(y+0.6)*hp,R_PION
  Case 3
    2D_FILL_COLOR COULEUR_PION(PION_Case(3),1),COULEUR_PION(PION_Case(3),2),COULEUR_PION(PION_Case(3),3)
    x= Parcours(Pos_pion(Pion_Case(3)),1) : y = Parcours(Pos_pion(Pion_case(3)),2)- 0.3
    2D_Circle (x+0.5)*wp,(y+0.5)*hp,R_PION
    2D_FILL_COLOR COULEUR_PION(PION_Case(2),1),COULEUR_PION(PION_Case(2),2),COULEUR_PION(PION_Case(2),3)
    x= Parcours(Pos_pion(Pion_Case(2)),1) : y = Parcours(Pos_pion(Pion_case(2)),2)- 0.3
    2D_Circle (x+0.3)*wp,(y+0.35)*hp,R_PION
    2D_FILL_COLOR COULEUR_PION(PION_Case(1),1),COULEUR_PION(PION_Case(1),2),COULEUR_PION(PION_Case(1),3)
    x= Parcours(Pos_pion(Pion_Case(1)),1) : y = Parcours(Pos_pion(Pion_case(1)),2)- 0.3
    2D_Circle (x+0.8)*wp,(y+0.6)*hp,R_PION
  Case 4
    2D_FILL_COLOR COULEUR_PION(PION_Case(4),1),COULEUR_PION(PION_Case(4),2),COULEUR_PION(PION_Case(4),3)
    x= Parcours(Pos_pion(Pion_Case(4)),1) : y = Parcours(Pos_pion(Pion_case(4)),2)- 0.3
    2D_Circle (x+0.8)*wp,(y+0.35)*hp,R_PION
    2D_FILL_COLOR COULEUR_PION(PION_Case(3),1),COULEUR_PION(PION_Case(3),2),COULEUR_PION(PION_Case(3),3)
    x= Parcours(Pos_pion(Pion_Case(3)),1) : y = Parcours(Pos_pion(Pion_case(3)),2)- 0.3
    2D_Circle (x+0.3)*wp,(y+0.6)*hp,R_PION
    2D_FILL_COLOR COULEUR_PION(PION_Case(2),1),COULEUR_PION(PION_Case(2),2),COULEUR_PION(PION_Case(2),3)
    x= Parcours(Pos_pion(Pion_Case(2)),1) : y = Parcours(Pos_pion(Pion_case(2)),2)- 0.3
    2D_Circle (x+0.3)*wp,(y+0.35)*hp,R_PION
    2D_FILL_COLOR COULEUR_PION(PION_Case(1),1),COULEUR_PION(PION_Case(1),2),COULEUR_PION(PION_Case(1),3)
    x= Parcours(Pos_pion(Pion_Case(1)),1) : y = Parcours(Pos_pion(Pion_case(1)),2)- 0.3
    2D_Circle (x+0.8)*wp,(y+0.6)*hp,R_PION

  End_select
 
return

fin:
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
exdragon

avatar

Nombre de messages : 601
Date d'inscription : 05/01/2012

MessageSujet: Re: Panoramincollable   Dim 8 Jan 2012 - 22:04

Même si tu ne programmes pas, le jeu doit se préparer d'abord sur papier bien longtemps, afin de bien cerner tout ce que le jeu a besoin comme fonctions et comme apparence.
Ensuite tu fais chaque fonction à tes moments perdus, comme ça tu progresses plus rapidement et moins casse-tête qu'en continuant ton code selon les idées que tu as en tête et qui peuvent malheureusement varier au fil de ta programmation et te rendre la programmation encore plus fastidieuse.
Moi j'utilise cette méthode même pour un jeu très simple comme le jeu de cartes que je prépare en ce moment.

Je vois que là tu as fais la simulation de l'avancée des pions, c'est bien, mais ça pourrait être par exemple fait non pas par le programme simplement mais par des joueurs virtuels qui vont remplacer les joueurs absents quand il n'y a qu'un seul joueur par exemple.

Donc une des fonctions est la réalisation de joueurs virtuels pouvant être sélectionné au lancement du jeu.

EDIT : Attention, je sais que tu sais bien programmer, je donne ce conseil juste parce que la programmation des jeux c'est spécifique.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panoramincollable   Dim 8 Jan 2012 - 23:18

Pas de soucis exdragon ^^ et ne t'inquiète pas, je n'y consacre pas beaucoup de temps mais quand je suis sur un truc, à moins d'être vraiment bloqué, ça avance jusqu'à ce que j'obtienne un truc qui me convienne (et après je peux encore l'améliorer). Pour ton info, je griffone quelques idées quand je me lance (c'est pour ça que j'ai pu parler des fonctions que je pensais implémenter. Je n'ai pas pensé à écrire que je pensais faire des joueurs non humains, mais c'est en effet prévu. J'en ai parlé hier à mon garçon, il y aura le niveau: Nul (ne répond jamais bien), Moyen (1 bonne réponse sur 2), Bon (3 bonne réponse sur 5) et génie (toujours bon). Mais c'est vrai que j'aurais pu ne pas y penser, donc n'hésite pas pour tes remarques, si j'y ai pensé, ce n'est pas grave et si ce n'était pas le cas, si ça va dans le sens où je veux aller (je fais aussi mon Jack Smile ) je prends ^^
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
exdragon

avatar

Nombre de messages : 601
Date d'inscription : 05/01/2012

MessageSujet: Re: Panoramincollable   Lun 9 Jan 2012 - 0:33

ça c'est cool de "faire ton Jack" ^^

J'avais oublié de te dire que on faire rarement attention à la façon dont les autres (surtout les moins expérimentés) peuvent percevoir ce que nous disons, et il faut y faire attention dans ce genre de jeu que tu prépares, car une question doit être exprimée de façon à ce qu'il n'y ait pas d’ambiguïté sur le sens, et si cela n'est pas possible (car le français est complexe) alors au moins en préciser le sens dans la question.
Voilà, ceci pour que ton jeu soit le plus apprécié Wink
Moi par exemple j'ai horreur de perdre sur une question qui a été mal formulée ou dont la réponse aurait très bien pu être autre.

Tiens compte de ça c'est important.

EDIT : Correction de mon orthographe^^
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panoramincollable   Lun 9 Jan 2012 - 1:22

De toute façon, je compte bien sur vos contributions pour enrichir les questions et faire des jeux de questions complet (Il peut y avoir un thème Panoramic, Vieux jeux, Politique contemporaine, Histoire de l'art, Histoire antique, Histoire de l'informatique, ... Perso, je ferais sans doute les questions CE1 et adultes, le reste viendra sans doute plus tard ou avec votre aide ^^
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
exdragon

avatar

Nombre de messages : 601
Date d'inscription : 05/01/2012

MessageSujet: Re: Panoramincollable   Lun 9 Jan 2012 - 2:30

OKI chief Wink

Je te ferais des questions sur les jeux Wink

Ah oui, il faudra des questions par niveau de difficulté je pense ?
Parce que si les grands jouent contre des petits ça va pas le faire ? (donc par tranche d'âge alors ?)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panoramincollable   Lun 9 Jan 2012 - 3:06

Le principe de base sera le niveau scolaire / adulte mais après on peu faire aussi des thèmes. Au début il suffira de choisir les questionnaires qui vont bien. Par contre, ce sera 100% texte, pas de gestion de multimédia dans cette version et pas avant que le jeu soit finalisé
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panoramincollable   Dim 5 Fév 2012 - 1:52

J'ai repris un peu mon programme et là, je vous mets le code d'un éditeur de questions pour le jeu, je l'ai un peu bridé à 2 types de questions pour pouvoir vous le donner de suite.
Prochain objectif, gérer les questions dans le jeu, mais là, mon lit m'appelle...
Edit: (gloups, mauvais code collé)


Dernière édition par Jicehel le Dim 5 Fév 2012 - 10:09, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
exdragon

avatar

Nombre de messages : 601
Date d'inscription : 05/01/2012

MessageSujet: Re: Panoramincollable   Dim 5 Fév 2012 - 4:12

Il manque le fichier "parcourt.txt"
Il n'est pas non plus dans le zip du premier post.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panoramincollable   Dim 5 Fév 2012 - 10:07

Gloups, c'était déjà tard, je me suis planté de code, j'ai mis celui que je viens de commencer à modifier pour mettre les questions dans le jeu. Désolé, je mets le bon code là ... Je me réveille ...
Code:
' Editeur de question et tests

Label Init : Gosub init
Gosub Init_objets

' Programme principal, on attend un clic dans le menu principal
Programme:
Show F_menu_principal%
On_Click Butt_Consulter_Questionnaire%,Voir_Formulaire
On_click Butt_Creer_Questionnaire%, Creer_Formulaire
On_Click Butt_Quitter%,Sub_Quitter
On_Click Butt_Supprimer_Questionnaire%,Supprimer_Questionnaire
end

Ouvre_questionnaire:
' Ouverture et chargement d'un formulaire sélectionné
  Gosub Ouvre_Questionnaire2
  Show Q_Terminer%: On_click Q_Terminer%, Ferme_question
  Show Q_Nouvelle%: On_click Q_Nouvelle%, Ajouter_question
  Show Q_supprimer%: On_click Q_supprimer%, Sub_Q_supprimer
  If Nb_Questions% > 0
    i%=1: Gosub Affiche_Question
  Else
    message "Ce questionnaire est vide ou incorrect"
    goto programme
  End_if

return

Affiche_Question:
    if len(Questionnaire$(i%, 2)) < 100
      caption  Q_L_Question%,Questionnaire$(i%, 2) + " ?"
    else
      temp$= mid$(Questionnaire$(i%, 2),85,30)
      Test%=instr(temp$," ")
      caption  Q_L_Question%,left$(Questionnaire$(i%, 2),84+Test%)
      caption  Q_L_Question2%, mid$(Questionnaire$(i%, 2),85+Test%, len(Questionnaire$(i%, 2))-(84+Test%)) + " ?"
      show Q_L_Question2%
    end_if
    TypeQuestion% = asc(Questionnaire$(i%, 1)) - 64
    Select TypeQuestion%
      case 4:  ' Type de question 'D' => Question directe
          caption Q_L_Reponse%, "Réponse enregistrée :"
          Caption Q_Alpha%(2), Questionnaire$(i%, 3) + " "+ Questionnaire$(i%, 4)
          Caption Q_Alpha%(3), "Bonus de déplacement : " + Questionnaire$(i%, 5)+ " cases"
          '  Caption Q_Check_Alpha%, "Bonus de déplacement : " + Questionnaire$(i%, 5)+ " cases"
          '  Show Q_L_Reponse% : show Q_S_Reponse% : show Q_L_Question% : Hide Q_S_Question%
          Show Q_L_Reponse%: Hide Q_S_Question% : Hide Q_S_Question2% : show Q_Alpha%(2) : show Q_Alpha%(3)
          '  Caption Q_Check_Alpha%, "Cochez la ou les bonnes réponses"  : ' Ligne servant de commentaires / explications
          '  button  Q_Precedent%:  button  Q_Suivant%  :  button  Q_nouvelle% :  button  Q_Terminer%
        case 17:  ' Type de question 'Q' => Question de type QCM
          for j%=1 to  Questionnaire$(i%, 3)
            Caption Q_Alpha%(j%), Questionnaire$(i%, 3+j%): Show Q_Alpha%(j%) : Show Q_Option%(j%)
          next j%
          Caption Q_Alpha%(6),"Bonne réponse enregistrée: " +Questionnaire$(i%, 9) : Show Q_Alpha%(6)
          Caption Q_Alpha%(7),"Déplacement bonus " +Questionnaire$(i%, 10)+" cases" : Show Q_Alpha%(7)
    End_select
    if i% < Nb_Questions%
      show Q_suivant% : On_Click Q_suivant%,Sub_Q_suivant
    else
      Off_click Q_suivant% : hide Q_suivant%
    end_if
    if i% > 1
      show  Q_Precedent% : On_Click Q_Precedent%,Sub_Q_Precedent
    else
      Off_click Q_precedent% : hide Q_Precedent%
    end_if
    Show Q_editer% : on_click Q_editer%, Edite_question
    Caption F_Questionnaire%, "Questionnaire: "+chaine$+"  Question n°"+str$(i%)
    show  F_Questionnaire%
 Return

Sub_Q_supprimer:
if message_confirmation_yes_no("Voulez-vous vraiment supprimer la question n°"+str$(i%)+" ?")=1
  if i%<>Nb_Questions%
    for j%=1 to 14 : Questionnaire$(i%,j%)=Questionnaire$(Nb_Questions%,j%) :next j%
  else
    i% = i% - 1
  end_if
  for j%=1 to 14 : Questionnaire$(Nb_Questions%,j%)="" :next j%
  Nb_Questions% = Nb_Questions% - 1
  Q_Modifie% = 1
  gosub Affiche_Question
end_if
return

Sub_Q_suivant:
  i%=i%+1
  gosub eff_question
  gosub Affiche_Question
return

Sub_Q_precedent:
  i%=i%-1
  gosub eff_question
  gosub Affiche_Question
return

Eff_question:
  Hide Q_L_Reponse%: Hide Q_L_Question2% : Hide Q_S_Question%: Hide Q_S_Question2%
  Hide Q_Check_Alpha%
  For j%=1 to 5 : Hide Q_Alpha%(j%) : Hide Q_Saisie%(j%) : Hide Q_Option%(j%): next j%
  Hide Q_Alpha%(6) : Hide Q_Saisie%(6): Hide Q_Alpha%(7) : Hide Q_Saisie%(7)
return

Ajouter_question:
  Nb_Questions%= Nb_Questions%+1
  i%=Nb_Questions%
  Hide F_Questionnaire%
  gosub eff_question
  show F_Type_Questionnaire%
  On_click TQ_Valider%, Ajouter_question2
return

Ajouter_question2:
  if checked(TQ_Radio%(1))=1 then Questionnaire$(i%,1)="D"
  if checked(TQ_Radio%(2))=1 then Questionnaire$(i%,1)="Q"
'  if checked(TQ_Radio%(3))=1 then Questionnaire$(i%,1)="M"
'  if checked(TQ_Radio%(4))=1 then Questionnaire$(i%,1)="V"
  hide F_Type_Questionnaire%
  show F_Questionnaire%
  Text  Q_S_Question%,"" : Text  Q_S_Question2%,""
  Gosub Edite_Question
return

Edite_question:
  ' Par choix, on ne modifie pas le type d'une question. Si mauvais choix, on la supprime et on en créé une nouvelle
  Gosub Eff_question
  hide Q_suivant% : hide Q_precedent% : hide Q_editer% : hide Q_supprimer% : hide Q_nouvelle% : off_click Q_Terminer%
  Caption F_Questionnaire%, "Edition de la question n°"+str$(i%)
  caption  Q_L_Question%, "Veuillez modifier la question ci dessous:"

  if len(Questionnaire$(i%, 2)) < 100
    Text  Q_S_Question%,Questionnaire$(i%, 2)
  else
    temp$= mid$(Questionnaire$(i%, 2),85,30)
    Test%=instr(temp$," ")
    Text  Q_S_Question%,left$(Questionnaire$(i%, 2),84+Test%)
    Text  Q_S_Question2%, mid$(Questionnaire$(i%, 2),85+Test%, len(Questionnaire$(i%, 2))-(84+Test%))
    show Q_S_Question2%
  end_if
  caption Q_L_Reponse%, "Quelle est la  bonne réponse ?"
    TypeQuestion% = asc(Questionnaire$(i%, 1)) - 64
    Select TypeQuestion%
      case 4:  ' Type de question 'D' => Question directe
          Caption Q_Alpha%(2), "Réponse :"
          Text Q_Saisie%(2),Questionnaire$(i%, 3)
          Caption Q_Alpha%(3), "Texte a efficher après :"
          Text Q_Saisie%(3),Questionnaire$(i%, 4)
          Caption Q_Alpha%(4), "Bonus de déplacement : "
          Text Q_Saisie%(4),Questionnaire$(i%, 5)
          Show Q_Alpha%(2) : Show Q_Saisie%(2) : Show Q_Alpha%(3) : Show Q_Saisie%(3) : Show Q_Alpha%(4) : Show Q_Saisie%(4)
      case  17 : ' Type de question 'Q' => QCM à une réponse
          j%=0
          while j%=0
            Questionnaire$(i%, 3) = message_input$("Nombre de propositions ","Nombre de choix (entre 2 et 5):","")
            if val(Questionnaire$(i%, 3)) > 1 and val(Questionnaire$(i%, 3))<6 then j%=1
          end_while
          for j%= 1 to val(Questionnaire$(i%, 3))
            caption Q_Alpha%(j%), "Texte du choix n°" + STR$(j%)+" :"
            Text Q_Saisie%(j%),Questionnaire$(i%, 3+j%)
            show Q_Alpha%(j%) : Show Q_Saisie%(j%) : show Q_Option%(j%)
          next j%
          if val(Questionnaire$(i%, 3)) < 5
            for j%= val(Questionnaire$(i%, 3)) +1 to 5
              caption Q_Alpha%(j%),"": Text Q_Saisie%(j%),"" : hide Q_Alpha%(j%) : hide Q_Saisie%(j%)
            next j%
          end_if
          Caption Q_Check_Alpha%, "Cochez la bonne réponse": show Q_Check_Alpha%
          Caption Q_Alpha%(7), "Nb de cases bonus:"
          Show Q_Alpha%(7) : Show Q_Saisie%(7)
    End_Select
    show Q_S_Question%
    On_click Q_Terminer%, Modifie_question
return

Ferme_question:
  Gosub Eff_question
  if Q_Modifie% = 1 then gosub Sauve_questionnaire
  Q_Modifie% = 0
  Off_click Q_Terminer%
  Hide F_Questionnaire%
  Gosub Programme
return

Modifie_question:
  ' Enregistrer dans le tableau les données modifiées et indiquer que le questionnaire a était modifié
  ' Attention la sauvegarde du ne s'effectue qu'à la fin
  Q_Modifie% = 1
  TypeQuestion% = asc(Questionnaire$(i%, 1)) - 64
    Select TypeQuestion%
      case 4:  ' Type de question 'D' => Question directe
        Questionnaire$(i%, 2) = Text$(Q_S_Question%) + Text$(Q_S_Question2%)
        Questionnaire$(i%, 3) = Text$(Q_Saisie%(2))
        Questionnaire$(i%, 4) = Text$(Q_Saisie%(3))
        Questionnaire$(i%, 5) = Text$(Q_Saisie%(4))
      case  17 : ' Type de question 'Q' => QCM à une réponse
        Questionnaire$(i%, 2) = Text$(Q_S_Question%) + Text$(Q_S_Question2%)
        for j% = 1 to val(Questionnaire$(i%, 3)): Questionnaire$(i%, 3 + j%) = Text$(Q_Saisie%(j%)) : next j%
        if val(Questionnaire$(i%, 3)) < 5 then for j% = val(Questionnaire$(i%, 3))+1 to 5: Questionnaire$(i%, 3 + j%) = "" : next j%
        for j%=1 to 5
          if checked(Q_Option%(j%)) = 1 then Questionnaire$(i%, 9) = Str$(j%)
        next j%
        Questionnaire$(i%, 10) = Text$(Q_Saisie%(7))
    End_Select
  Gosub Eff_question
  Show Q_editer% : show Q_nouvelle% : show Q_supprimer%
  On_click Q_Terminer%, Ferme_question
  gosub Affiche_Question
return

Q_directe:
    Questionnaire$(Nb_Questions%, 1)= left$(temp$,1)
    temp$ = right$(temp$, Long_Chaine% - 2)
    Pos%  = instr(temp$,";")
    Long_Chaine% = Len(temp$)
    if Pos%>0
      Questionnaire$(Nb_Questions%, 2)= left$(temp$,Pos% -1)
      temp$ = right$(temp$,Long_Chaine% - Pos%)
    end_if
    Pos%  = instr(temp$,";")
    Long_Chaine% = Len(temp$)
    if Pos%>0
      Questionnaire$(Nb_Questions%, 3)= left$(temp$,Pos% -1)
      temp$ = right$(temp$,Long_Chaine% - Pos%)
      Pos%  = instr(temp$,";")
      Long_Chaine% = Len(temp$)
      if Pos%>0
        Questionnaire$(Nb_Questions%, 4)= left$(temp$,Pos% -1)
        temp$ = right$(temp$,Long_Chaine% - Pos%)
      end_if
    end_if
    Questionnaire$(Nb_Questions%, 5)= temp$
    If Debug% = 1 then message "Question " + str$(Nb_Questions%) + " : " +Chr$(10)+ Questionnaire$(Nb_Questions%, 2) + " ?" + Chr$(10) + CHR$(10) + "Réponse : " + Questionnaire$(Nb_Questions%, 3) +" "+Questionnaire$(Nb_Questions%, 4)+ Chr$(10) +"Avance bonus de " + temp$ + " cases"
return

Q_QCM:
    Questionnaire$(Nb_Questions%, 1)= left$(temp$,1)
    temp$ = right$(temp$, Long_Chaine% - 2)
    for k% = 2 to 9
      Pos%  = instr(temp$,";")
      Long_Chaine% = Len(temp$)
      if Pos%>0
        Questionnaire$(Nb_Questions%, k%)= left$(temp$,Pos% -1)
        temp$ = right$(temp$,Long_Chaine% - Pos%)
      end_if
    next k%
    Questionnaire$(Nb_Questions%, 10)= temp$
    If Debug% = 1 then message "Question " + str$(Nb_Questions%) + " : " +Chr$(10)+ Questionnaire$(Nb_Questions%, 2) + " ?" + Chr$(10) + CHR$(10) + "Nb Choix : " + Questionnaire$(Nb_Questions%, 3) + Chr$(10) +"Avance bonus de " + Questionnaire$(Nb_Questions%, 10) + " cases"
return


Sub_Ferme_Dirlist:
' Gestion de la sortie par le bouton de la fenêtre de sélection de formulaire
  Hide F_Dirlist%
  Show F_menu_principal%
return

' Type de questions
' D: Question directe => D;Question;Réponse;Texte après la réponse;Déplacement
' I: Question + image (non implémenté à ce jour)
' V: Vrai / faux
' Q: QCM (3,4 ou 5 choix - 1 seule réponse) => Q;Question;NbChoix;Choix1;..;Choix5;Réponse;Déplacement bonus
' S: Question + son (non implémenté à ce jour)
' M: Question à choix multiples => M;Question;NbChoix;Choix1;..;Choix5;Nb Réponses,Rép1;..;RépN;Déplacement bonus

Supprimer_Questionnaire:
' Affiche les formulaires disponibles pour en supprimer un
  Hide F_menu_principal%
  Show F_Dirlist%
  On_Click Butt_Dirlist%,Sub_Ferme_Dirlist
  Gosub Rep_List
  on_click List_File_List%,Supp_questionnaire
 end

Supp_questionnaire:
  test%= item_Index(List_File_List%)
  chaine$=item_read$ (List_File_List%,test%)
  if message_confirmation_yes_no("Voulez-vous vraiment supprimer " + chaine$+ " ?")=1
    If Debug% = 1 then Message "Supprime  "+chaine$
    FILE_DELETE  chaine$
  end_if
  Hide F_DirList%
  goto programme
end

Ouvre_Questionnaire2:
  test%= item_Index(List_File_List%)
  chaine$=item_read$ (List_File_List%,test%)
  Hide F_DirList%
  If Debug% = 1 then Message "Ouvre  "+chaine$
  Caption F_Questionnaire%, "Questionnaire: "+chaine$+"  Question n°"+str$(i%)
  FILE_OPEN_READ Fichier% , chaine$
  FILE_READLN Fichier% , temp$  : ' Le titre qui doit être "Fichier de définition des questions"
  FILE_READLN Fichier%, F_Theme$ : ' Le thème du questionnaire
  Fin_Formulaire% = 0 : Nb_Questions% = 0
  WHILE Fin_Formulaire% = 0
    FILE_READLN Fichier% , temp$ : ' Lire une ligne de question
    Long_Chaine% = len(temp$)
    if Long_Chaine% > 10
      Nb_Questions% = Nb_Questions% + 1
      TypeQuestion% = asc(left$(temp$,1)) - 64
      If TypeQuestion% > 0 and TypeQuestion% < 27
        If Debug% = 1 then Message "Type de question " + str$(TypeQuestion%)
        Select TypeQuestion%
          case 4 :  Gosub Q_directe :' Type de question 'D' => Question directe
          case 17:  Gosub Q_QCM    :' Type de question 'Q' => Question type QCM
        End_select
      end_if
    else
      Fin_Formulaire% = 1
    end_if
  END_WHILE
  FILE_CLOSE Fichier%
return


Sauve_questionnaire:
  if message_confirmation_yes_no("Voulez-vous enregistrer vos modifications ?")=1
    Caption F_Questionnaire%, "Sauvegarde du questionnaire: "+chaine$
    FILE_OPEN_WRITE Fichier% , chaine$
    FILE_WRITELN Fichier% , "Fichier de définition des questions"  : ' Sauvegarde du titre
    FILE_WRITELN Fichier%, F_Theme$ : ' Sauvegarde le thème du questionnaire
    For j%=1 to Nb_Questions%
    TypeQuestion% = asc(Questionnaire$(j%, 1)) - 64
    Select TypeQuestion%
      case 4:  ' Type de question 'D' => Question directe
        FILE_WRITELN Fichier% , Questionnaire$(j%, 1)+";"+Questionnaire$(j%, 2)+";"+Questionnaire$(j%, 3)+";"+Questionnaire$(j%, 4)+";"+Questionnaire$(j%, 5)
      case 17: ' Type de question 'Q' => QCM à une réponse possible
        temp$ = "" : For k%=1 to 9:temp$=temp$+Questionnaire$(j%, k%)+";":next k%
        temp$ = temp$+Questionnaire$(j%, 10)
        FILE_WRITELN Fichier% , temp$
    End_Select
    Next j%
    FILE_CLOSE Fichier%
  end_if
Return

Creer_Formulaire:
  Hide F_DirList%
  k%=0
  while k%=0
    chaine$ = message_input$("Nom du questionnaire","Entrez le nom du questionnaire à créer","Nouveau")
    chaine$ = chaine$+".txt"
    if file_exists(chaine$)=1
        message "Désolé, ce nom est déjà utilisé"
    else
        k%=1
    end_if
  End_while
  If Debug% = 1 then Message "Créé  "+chaine$
  Caption F_Questionnaire%, "Création du Questionnaire: "+chaine$
  FILE_OPEN_WRITE Fichier% , chaine$
  FILE_WRITELN Fichier% , "Fichier de définition des questions"  : ' Le titre d'un formulaire
  F_Theme$=message_input$("Thème du questionnaire", "Entrez le thème du questionnaire à créer","Nouveau questionnaire")
  FILE_WRITELN Fichier%, F_Theme$ : ' Le thème du questionnaire
  Nb_Questions% = 0
  FILE_CLOSE Fichier%
  Show Q_Terminer%: On_click Q_Terminer%, Ferme_question
  Show Q_Nouvelle%: On_click Q_Nouvelle%, Ajouter_question
  Show Q_supprimer%: On_click Q_supprimer%, Sub_Q_supprimer
  Gosub Ajouter_question
end

Init:
Label Sub_Ferme_Dirlist,Rep_list,Ouvre_questionnaire,Voir_Formulaire, Programme
Label Sub_Quitter, Init_objets, Affiche_Question, Sub_Q_suivant, Sub_Q_precedent
Label Ouvre_Questionnaire2, Q_directe, Eff_question, Edite_question, Ferme_question
Label Modifie_question, Sauve_questionnaire, Ajouter_question, Ajouter_question2
Label Sub_Q_supprimer, Q_QCM, Creer_Formulaire, Supprimer_Questionnaire, Supp_Questionnaire

Dim w0,h0, TypeQuestion%, Fin_Formulaire%, Debug%
Dim Nb_Questions%, Q_L_Question2%, j%,k%, Butt_Creer_Questionnaire% , Butt_Supprimer_Questionnaire%
Dim F_menu_principal%, Butt_Consulter_Questionnaire%, Butt_Quitter%, F_Type_Questionnaire%,TQ_Alpha%
Dim F_DirList%, Butt_Dirlist% ,List_File_list%, Fichier%,  TQ_Nb_Prop_Alpha%, TQ_Nb_Prop_Spin%
Dim F_QuestionsList%, Butt_QuestionsList%, List_Questions_List%, TQ_Valider%, F_Questionnaire%
Dim a$,Test% ,chaine$, temp$, Long_Chaine%,Pos%, Sous_Chaine$,i%, Q_L_Question%, Q_S_Question%, Q_Check_Alpha%
Dim Questionnaire$(500, 14),TQ_AlphaC%(5), TQ_Radio%(5), TQ_Check%(5), Q_Alpha%(7), Q_Saisie%(7), Q_Check%(5),Q_Option%(5)
Dim Q_S_Reponse%, Q_Vrai_Alpha%, Q_Faux_Alpha%,  Q_Precedent%, Q_suivant%, Q_nouvelle%, Q_Terminer%
Dim Q_L_Reponse%, Q_S_Question2%, Q_Editer%, Q_Modifie%, Q_supprimer%, F_Theme$

  F_menu_principal% = 2001    :  Butt_Consulter_Questionnaire% = 2002
  Butt_Creer_Questionnaire% = 2003 :  Butt_Supprimer_Questionnaire% = 2004 : Butt_Quitter% = 2009
  F_DirList%            = 2011 :  F_QuestionsList%              = 2012 :  Fichier%      = 2013
  Butt_Dirlist%        = 2014 :  List_File_list%              = 2015
  F_Type_Questionnaire% = 2020 :  TQ_Alpha%    = 2021
  For i%=1 to 5 : TQ_AlphaC%(i%) = 2021 + i% : TQ_Radio%(i%) = 2026 + i% : next i%
  TQ_Nb_Prop_Alpha% = 2037 : TQ_Nb_Prop_Spin% = 2038 : TQ_Valider% = 2039

  F_Questionnaire%      = 2040 :  Q_L_Question% = 2041 : Q_S_Question% = 2042 : Q_Check_Alpha% = 2053
  For i%=1 to 5
    Q_Alpha%(i%)  = 2042 + i% : Q_Saisie%(i%) = 2047 + i% : Q_Check%(i%) = 2053 + i% : Q_Option%(i%) = 2058 + i%
  Next i%
  Q_L_Reponse% = 2071  :  Q_S_Reponse%  = 2064 : Q_Vrai_Alpha% = 2065 : Q_Faux_Alpha% = 2066
  Q_Precedent% = 2067  :  Q_suivant%    = 2068 : Q_nouvelle%  = 2069 : Q_Terminer% = 2070
  Q_L_Question2% = 2072: Q_S_Question2% = 2073  : Q_editer%    = 2074 : Q_supprimer% = 2075
  Q_Alpha%(6)  = 2076  : Q_Saisie%(6)  = 2077  : Q_Alpha%(7)  = 2078  : Q_Saisie%(7) = 2079
  Debug% = 0
  Hide 0
  chaine$ = Dir_Current$ + "\Questionnaires"
  dir_change chaine$

return

Init_objets:

' Création de la fenêtre de création et d'affichage des questions
'
  Form F_Questionnaire% : Hide F_Questionnaire%
  Caption F_Questionnaire%, "Création d'une nouvelle question"
  left  F_Questionnaire%,350: top  F_Questionnaire%,140 : width F_Questionnaire%,525 : height F_Questionnaire%,350
  Command_Target_is  F_Questionnaire%
  Alpha Q_L_Question%: left  Q_L_Question%, 10: top  Q_L_Question%,10 : width Q_L_Question%,335 : height Q_L_Question%,17
  caption  Q_L_Question%, "Veuillez saisir la question dans la ligne ci dessous:"
  Edit  Q_S_Question%: left  Q_S_Question%, 10: top  Q_S_Question%,30 : width Q_S_Question%,490 : height Q_S_Question%,20
  Edit  Q_S_Question2%: left  Q_S_Question2%, 10: top  Q_S_Question2%,50 : width Q_S_Question2%,490 : height Q_S_Question2%,20
  Alpha  Q_L_Question2%: hide Q_L_Question2% : left  Q_L_Question2%, 10: top  Q_L_Question2%,30 : width Q_L_Question2%,450 : height Q_L_Question2%,20

  For i%=1 to 5
    Check Q_Check%(i%)  : Hide Q_Check%(i%) :  Top Q_Check%(i%), 50 + 25*i% : Left Q_Check%(i%), 140 : width Q_Check%(i%), 10
    Option Q_Option%(i%) : hide Q_Option%(i%) : Top Q_Option%(i%), 50 + 25*i% : Left Q_Option%(i%), 140 : width Q_Option%(i%), 10
  Next i%
  For i%=1 to 7
    Alpha Q_Alpha%(i%) : Hide Q_Alpha%(i%) : Top Q_Alpha%(i%), 52 + 25*i% : Left Q_Alpha%(i%), 40 : width Q_Alpha%(i%), 200
    Edit  Q_Saisie%(i%) : Hide Q_Saisie%(i%) : Top Q_Saisie%(i%), 48 + 25*i% : Left Q_Saisie%(i%), 160 : width Q_Saisie%(i%), 300
  Next i%
  Caption Q_Alpha%(7), "Bonus de déplacement :"
  Alpha Q_L_Reponse% :  Hide Q_L_Reponse% : Top Q_L_Reponse%, 75 : Left Q_L_Reponse%, 10 : width Q_L_Reponse%, 450
  caption Q_L_Reponse%, "Quelle est la  bonne réponse ?"
  Edit Q_S_Reponse% :  Hide Q_S_Reponse% : Top Q_S_Reponse%, 95 : Left Q_S_Reponse%, 10 : width Q_S_Reponse%, 450

  Alpha Q_Check_Alpha% : Hide Q_Check_Alpha% : Top Q_Check_Alpha%, 200 : Left Q_Check_Alpha%, 40 : width Q_Check_Alpha%, 500
  Caption Q_Check_Alpha%, "Cochez la ou les bonnes réponses"  : ' Ligne servant de commentaires / explications
  button  Q_Precedent%: Hide Q_Precedent% : Left Q_Precedent%,20: top Q_Precedent%,250: Caption Q_Precedent%,"< Précédent"
  button  Q_Suivant%  : Hide Q_Suivant% :  Left Q_Suivant%, 110: top Q_Suivant%,250  : Caption Q_Suivant%,"> Suivant"
  button  Q_Editer%  : Hide Q_Editer%  :  Left Q_Editer%, 200 : top Q_Editer%,250  : Caption Q_Editer%,"Editer"
  button  Q_nouvelle% : Hide Q_nouvelle%:  Left Q_nouvelle%,290: top Q_nouvelle%,250 : Width  Q_nouvelle%,120 : Caption Q_nouvelle%,"Nouvelle question"
  button  Q_Terminer% : Hide Q_Terminer%:  Left Q_Terminer%,420: top Q_Terminer%,250 : Caption Q_Terminer%,"Terminer"
  button  Q_Supprimer%: Hide Q_Supprimer%:  Left Q_Supprimer%, 200 : top Q_Supprimer%,280  : Caption Q_Supprimer%,"Supprimer"


' Création de la fenêtre de choix du type de question à créer
'
  Form  F_Type_Questionnaire% : Hide F_Type_Questionnaire% : Caption F_Type_Questionnaire%, "Choix du type de question à créer"
  left  F_Type_Questionnaire%,450: top  F_Type_Questionnaire%,240 : width F_Type_Questionnaire%,285 : height F_Type_Questionnaire%,260
  Command_Target_is  F_Type_Questionnaire%
  Alpha TQ_Alpha%: left  TQ_Alpha%, 10: top  TQ_Alpha%,10 : width TQ_Alpha%,165 : height TQ_Alpha%,17
  caption  TQ_Alpha%, "Quel type de question voulez-vous créer ?"
  For i%=1 to 2 : ' Pour le moment uniquement les questions simples et les QCM dans les formulaires, on verra le reste plus tard
    Alpha  TQ_AlphaC%(i%): Top TQ_AlphaC%(i%), 30 + 25*i% : Left TQ_AlphaC%(i%), 50 : width TQ_AlphaC%(i%), 200
    Option TQ_Radio%(i%) : Top TQ_Radio%(i%) , 30 + 25*i% : Left TQ_Radio%(i%),  20 : width TQ_Radio%(i%),20
  Next i%
  caption TQ_AlphaC%(1),"Question simple"                : caption TQ_AlphaC%(2),"QCM à 1 réponse unique"
  ' caption TQ_AlphaC%(3),"QCM à plusieurs bonnes réponses": caption TQ_AlphaC%(4),"Vrai ou Faux"
  button  TQ_Valider% : Left    TQ_Valider%,90: top    TQ_Valider%,180 : Caption TQ_Valider%,"Valider"

' Fenêtre de sélection du formulaire
'
  Form  F_DirList% : Hide F_DirList%: caption F_DirList%,"Ouvrir Questionnaire"
  left  F_DirList%,650: top  F_DirList%,240 : width F_DirList%,185 : height F_DirList%,320
  Command_Target_is F_DirList%
  List  List_File_list% : left  List_File_list%,10: top    List_File_list%,10: width  List_File_list%,150 : height  List_File_list%,230
  button  Butt_Dirlist%: Left  Butt_Dirlist%,10  : top    Butt_Dirlist%,250 : Caption Butt_Dirlist%,"Quitter"
  Command_Target_is 0

' Fenêtre du menu principal
  Form  F_menu_principal% : caption F_menu_principal%,"Menu Principal"
  left  F_menu_principal%,650: top  F_menu_principal%,240 : width F_menu_principal%,185
' Hide  F_menu_principal%
' Show  F_Type_Questionnaire%
  Command_Target_is F_menu_principal% : i% = 1
  button  Butt_Consulter_Questionnaire% : Left Butt_Consulter_Questionnaire%,10: top Butt_Consulter_Questionnaire%,i%*35-20 : width Butt_Consulter_Questionnaire%,145
  Caption  Butt_Consulter_Questionnaire%,"Consulter un questionnaire" : i%=i%+1
  button  Butt_Creer_Questionnaire% : Left Butt_Creer_Questionnaire%,10: top Butt_Creer_Questionnaire%,i%*35 -20 : width Butt_Creer_Questionnaire%,145
  Caption  Butt_Creer_Questionnaire%,"Créer un questionnaire" : i%=i%+1
  button  Butt_Supprimer_Questionnaire% : Left  Butt_Supprimer_Questionnaire%,10: top Butt_Supprimer_Questionnaire%,i%*35 -20 : width Butt_Supprimer_Questionnaire%,145
  Caption  Butt_Supprimer_Questionnaire%,"Supprimer un questionnaire" : i%=i%+1

  i%=i%+1 :' Passage d'une ligne
  button  Butt_Quitter% :  Left    Butt_Quitter%,50: top    Butt_Quitter%,i%*35 - 20 : Caption Butt_Quitter%,"Quitter"
  i%=i%+1
  height F_menu_principal%,i% * 35 + 20
return

Voir_Formulaire:
' Affiche les formulaires disponibles pour en ouvrir ou modifier un
  Hide F_menu_principal%
  Show F_Dirlist%
  On_Click Butt_Dirlist%,Sub_Ferme_Dirlist
  Gosub Rep_List
  on_click List_File_List%,Ouvre_questionnaire
End

Rep_List:
' Affichage de la liste des répertoire a gauche et des fichiers a droites
  clear List_File_List%
  a$ = file_find_first$
  while a$<>"_"
    Test%=File_Exists(a$)
    if test%>0 then item_add  List_File_List%,a$
    a$ = file_find_next$
  end_while
  file_find_close
return

Sub_Quitter:
' Gestion de la fin de programme
 if message_confirmation_yes_no("Voulez-vous vraiment quitter?")=1 then terminate
return
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panoramincollable   Dim 5 Fév 2012 - 10:12

Par-contre je te mets le contenu du fichier parcours:

Code:
' PARCOURS CLASSIQUE
' PARAMETRES GENERAUX (Nb CASES du parcours, Nb de colonnes, Nb de lignes)
46,14,14

' CASES (X,Y,CARACTERISTIQUE)
10, 1, 1
10, 2, 2
 9, 2, 2
 8, 2, 2
 7, 2,19
 6, 2, 4
 6, 3, 4
 6, 4, 4
 6, 5,37
 7, 5, 6
 8, 5, 2
 9, 5,69
10, 5, 7
11, 5, 8
11, 4, 4
12, 4,18
13, 4,37
14, 4, 3
14, 5, 7
14, 6, 7
14, 7, 7
14, 8,69
14, 9, 3
13, 9,22
12, 9, 8
11, 9, 8
10, 9, 8
 9, 9,20
 8, 9, 7
 8,10,37
 8,11, 2
 8,12,24
 8,13, 6
 8,14, 6
 7,14, 6
 6,14,23
 5,14, 6
 4,14,69
 4,13, 3
 3,13, 3
 3,12, 3
 3,11,37
 3,10, 4
 3, 9,69
 2, 9, 8
 1, 9, 1
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
exdragon

avatar

Nombre de messages : 601
Date d'inscription : 05/01/2012

MessageSujet: Re: Panoramincollable   Dim 5 Fév 2012 - 12:35

Cool, merci Wink
Je vais pouvoir tester ^^

EDIT :

Variable non définie en DIM ligne 294 et 297
Je supposais que c'était fichier$ et temp$ puisque je voyais pas de dim en haut de ton code.
Quand je les aie mises, au lancement il me dit variables déjà déclarées.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panoramincollable   Dim 5 Fév 2012 - 15:50

Exdragon, tu testes le jeu mais le jeu, j'ai juste commencé à le modifier hier soir avant de me coucher et j'ai viré le code et j'ai mis le source de l'éditeur de question qui lui fonctionne (enfin normalement Smile )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
exdragon

avatar

Nombre de messages : 601
Date d'inscription : 05/01/2012

MessageSujet: Re: Panoramincollable   Dim 5 Fév 2012 - 19:07

Je ne comprends rien^^
Je teste juste les deux derniers codes que tu as affiché pour qu'on les teste non ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panoramincollable   Dim 5 Fév 2012 - 19:57

Woui, mais le jeu les incollables dont j'avais mis le source (que j'ai retiré suite à ton message, merci), ne le teste pas c'était une erreur de copier coller dû à la télé + heure tardive / fatigue. Tu peux juste tester l'éditeur de question, le jeu, il faudra que je travaille dessus (j'avais fais une routine automatique pour faire marcher les pion, le code que j'ai mis, c'est juste le début de ce code modifié mais pas du tout fini, c'est pour ça que je l'ai viré du forum, c'est pas du tout prêt...)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
exdragon

avatar

Nombre de messages : 601
Date d'inscription : 05/01/2012

MessageSujet: Re: Panoramincollable   Lun 6 Fév 2012 - 2:05

Ok Wink
Je vais voir demain ce qu je peux apporter^^

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Panoramincollable   

Revenir en haut Aller en bas
 
Panoramincollable
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

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: