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
» Logiciel de planétarium.
Trop de gosub... - Page 3 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Trop de gosub... - Page 3 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Trop de gosub... - Page 3 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Trop de gosub... - Page 3 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Trop de gosub... - Page 3 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Trop de gosub... - Page 3 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Trop de gosub... - Page 3 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Trop de gosub... - Page 3 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Trop de gosub... - Page 3 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Trop de gosub... - Page 3 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Trop de gosub... - Page 3 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Trop de gosub... - Page 3 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Trop de gosub... - Page 3 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Trop de gosub... - Page 3 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Trop de gosub... - Page 3 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
Boutique Nike : -25% dès 50€ sur TOUT le ...
Voir le deal

 

 Trop de gosub...

Aller en bas 
5 participants
Aller à la page : Précédent  1, 2, 3
AuteurMessage
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Trop de gosub... - Page 3 Empty
MessageSujet: Re: Trop de gosub...   Trop de gosub... - Page 3 EmptyJeu 2 Aoû 2012 - 21:17

en effet le "trou" n'est pas à la meme place sur la form 700 que sur le jeu .... scratch
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Trop de gosub... - Page 3 Empty
MessageSujet: re   Trop de gosub... - Page 3 EmptyJeu 2 Aoû 2012 - 21:54

deux solutions me viennent à l'esprit:

soit modifier (essayer) le sens du tableau
soit "loader" les images sur les numéros après création du tableau

je préfère la première, mais... est ce possible ?... that is the question .
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Trop de gosub... - Page 3 Empty
MessageSujet: re   Trop de gosub... - Page 3 EmptyVen 3 Aoû 2012 - 0:54

cheers J'ai trouvé un paliatif, c'est pas beau mais çà fonctionne !

Attention! l'affichage dans la barre de menu est là pour verif et le message Youpi!!! est temporaire aussi

Code:
' ******************************************************************************
dim Dossier$,Doss_Sprite$,Doss_Fond$,Doss_Langue$
dim Langue$,def$(100),jeu%
dim M%
dim N%,T%,L%,T1%,L1%
dim x%,x$
dim img%,img$,Doss_img_select$,view$
dim mess%
dim Table%(4,4),R%,C%,a%,b%,z%,cpte%,i%,gagne%,G%,H%,VS$,sep%
' ------------------------------------------------------------------------------
label Init,Init_Dossier,Init_List,Init_Param,Init_Langue
label Change_Langue,New_Langue
label Menu,Jouer,Arreter,APp,Aide
label Select_Img,Preview,Choix,Creation,Placement,Verif,Selection
label Action_G,Action_D,Action_H,Action_B
label Create_Solution,Verif_Solution
' ******************************************************************************
caption 0,"Mon Puzzle":width 0,516:height 0,558:color 0,240,240,150

main_menu 1
 sub_menu 2:parent 2,1:on_click 2,Menu:caption 2,"Jouer"
 sub_menu 3:parent 3,1:on_click 3,Menu:caption 3,"Langue"
 sub_menu 4:parent 4,1:on_click 4,Menu:caption 4,"A Propos"
 sub_menu 5:parent 5,1:on_click 5,Menu:caption 5,"Aide"
 sub_menu 800:parent 800,1
 inactive 5
dlist 6 :' Liste des peramètres
dlist 7 :' Liste des langues dispo
dlist 8 :' Contenu de la langue choisie
dlist 9 :' Liste des Images
dlist 400
gosub Init
end
' ******************************************************************************
Init:
  gosub Init_Dossier
  gosub Init_List
  gosub Init_Param
  gosub Create_Solution
return
' ------------------------------------------------------------------------------
Init_Dossier:
  Dossier$=Dir_Current$
  Doss_Sprite$=Dossier$+"\Sprites"
  Doss_Fond$=Dossier$+"\Fonds"
  Doss_Langue$=Dossier$+"\Langue"
return
' ------------------------------------------------------------------------------
Init_List:
  ' langues disponibles
  dir_change Doss_Langue$
  x$=file_find_first$
  if x$<>"_" then item_add 7,x$
  x$=file_find_next$
  while x$<>"_"
      if x$<>"_" then item_add 7,x$
      x$=file_find_next$
  end_while
  file_find_close
  ' liste des images
  dir_change Doss_Fond$
  x$=file_find_first$
  if x$<>"_" then item_add 9,x$
  x$=file_find_next$
  while x$<>"_"
      if x$<>"_" then item_add 9,x$
      x$=file_find_next$
  end_while
  file_find_close
return
' ------------------------------------------------------------------------------
Init_Param:
  if file_exists(Dossier$+"\Param.inf")=1
      file_load 6,Dossier$+"\Param.inf"
      gosub Init_Langue
  else
      gosub Change_Langue
  end_if
return
' ------------------------------------------------------------------------------
Init_Langue:
  clear 8
  if count(6)>0
      Langue$=Doss_Langue$+"\"+item_read$(6,1)+".txt"
      file_load 8,Langue$
      for x%=1 to count(8):def$(x%)=item_read$(8,x%):next x%
      for x%=2 to 5:caption x%,def$(x%-1):next x%
      if jeu%=1 then caption 2,def$(5)
  end_if
return
' ------------------------------------------------------------------------------
Change_Langue:
  if object_exists(100)=1
      show 100
  else
      form 100
      width 100,200:height 100,130:top 100,(screen_y-130)/2:left 100,(screen_x-200)/2
      caption 100,"Paramètres":font_name 100,"Times new roman":font_size 100,10
      command_target_is 100
      alpha 101:top 101,10:left 101,10:caption 101,"Langue :"
      combo 102:top 102,30:left 102,10
      for x%=1 to count(7):item_add 102,left$(item_read$(7,x%),len(item_read$(7,x%))-4):next x%
      on_change 102,New_Langue
  end_if
return
'-------------------------------------------------------------------------------
New_Langue:
  If count(6)>0 and Text$(102)<>""
      item_delete 6,1
      item_insert 6,1,Text$(102)
  else
      if Text$(102)<>"" then item_insert 6,1,Text$(102)
  end_if
  file_save 6,Dossier$+"\Param.inf"
  gosub Init_Langue
  hide 100
return
'-------------------------------------------------------------------------------
Menu:
  for x%=2 to 5
      if clicked(x%)=1 then M%=x%
  next x%
  select M%
  case 2
      jeu%=jeu%+1
      if jeu%=1
        caption 2,def$(5)
        gosub Jouer
      else
        jeu%=0
        caption 2,def$(1)
        gagne%=0
        gosub Arreter
      end_if
  case 3
      gosub Change_Langue
  case 4
      gosub APp
  case 5
      gosub Aide
  end_select
return
' ------------------------------------------------------------------------------
Jouer:
  gosub Select_Img
return
' ------------------------------------------------------------------------------
Select_img:
  if object_exists(200)=1
      show 200
  else
      form 200:width 200,500:height 200,350:top 200,(screen_y-350)/2:left 200,(screen_x-500)/2
      caption 200,def$(6):font_name 200,"Times new roman":font_size 200,10
      command_target_is 200
      alpha 201:top 201,10:left 201,5:caption 201,def$(7)
      list 202 :top 202,30:left 202,5:width 202,170:height 202,230:cursor_point 202
      for x%=1 to count(9):item_add 202,item_read$(9,x%):next x%
      on_click 202,Preview
      picture 203:top 203,5:left 203,180:width 203,290:height 203,290:stretch_on 203
      button 204 :top 204,270:left 204,50:caption 204,def$(8):cursor_point 204
      inactive 204:on_click 204,Choix
  end_if
return
' ------------------------------------------------------------------------------
Preview:
  view$=Doss_Fond$+"\"+item_index$(202)
  file_load 203,view$
  active 204
return
' ------------------------------------------------------------------------------
Choix:
  img$=item_index$(202)
  Doss_img_select$=Doss_Sprite$+"\"+left$(img$,len(img$)-4)
  hide 200
  command_target_is 0
  gosub Creation
return
' ------------------------------------------------------------------------------
Creation:
  for x%=1 to 24
      img%=10+x%
      picture img%
      width img%,100 :height img%,100:cursor_point img%
      stretch_on img% :file_load img%,Doss_img_select$+"\"+str$(img%)+".bmp"
      on_click img%,Selection
  next x%
  gosub Placement
  active 5
return
' ------------------------------------------------------------------------------
Placement:
  Table%(4,4)=1
  for img%=11 to 34
      repeat
        R%=int(rnd(5))
        C%=int(rnd(5))
      until Table%(R%,C%)=0
      Table%(R%,C%)=img%
      left img%,R%*100
      top img%,C%*100
  next img%
  Table%(4,4)=0
return
' ------------------------------------------------------------------------------
Selection:
  for x%=1 to 24:off_click x%+10:next x%
  N%=number_click
  T%=Top(N%)
  L%=Left(N%)
  gosub Verif
  gosub Verif_Solution
return
' ------------------------------------------------------------------------------
Verif:
  T1%=T%/100
  L1%=L%/100
  ' pour se deplacer vers la gauche il faut au minimum etre dans la colonne 2
  if L1%>0
      if Table%(L1%-1,T1%)=0
        gosub Action_G
        Table%(L1%-1,T1%)=Table%(L1%,T1%)
        Table%(L1%,T1%)=0
      end_if
  end_if
  ' pour ce deplacer vers la droite il faut au maximum etre dans la colonne 4
  if L1%<4
      if Table%(L1%+1,T1%)=0
        gosub Action_D
        Table%(L1%+1,T1%)=Table%(L1%,T1%)
        Table%(L1%,T1%)=0
      end_if
  end_if
  ' pour ce deplacer vers le haut il faut etre au minimum sur la ligne 2
  if T1%>0
      if Table%(L1%,T1%-1)=0
        gosub Action_H
        Table%(L1%,T1%-1)=Table%(L1%,T1%)
        Table%(L1%,T1%)=0
      end_if
  end_if
  ' pour se deplacer vers le bas il faut au maximum etre sur la ligne 4
  if T1%<4
      if Table%(L1%,T1%+1)=0
        gosub Action_B
        Table%(L1%,T1%+1)=Table%(L1%,T1%)
        Table%(L1%,T1%)=0
      end_if
  end_if
  for x%=1 to 24:on_click x%+10,Selection :next x%
return
' ------------------------------------------------------------------------------
Action_G:
  if L%>=100
      for x%=L% to L%-100 step -5:top N%,T% :left N%,x% :wait 5 :next x%
  end_if
return
' ------------------------------------------------------------------------------
Action_D:
  if L%<400
      for x%=L% to L%+100 step 5:top N%,T% :left N%,x% :wait 5 :next x%
  end_if
return
' ------------------------------------------------------------------------------
Action_H:
  if T%>=100
      for x%=T% to T%-100 step -5:top N%,x% :left N%,L% :wait 5 :next x%
  end_if
return
' ------------------------------------------------------------------------------
Action_B:
  if T%<400
      for x%=T% to T%+100 step 5:top N%,x% :left N%,L% :wait 5 :next x%
  end_if
return
' ------------------------------------------------------------------------------
Arreter:
  if gagne%=1 then message "Youpi!!!!"
  for img%=11 to 34 : delete img% : next img%
  for R%=0 to 4: for C%=0 to 4 : Table%(R%,C%)=0 : next C%: next R%
return
' ------------------------------------------------------------------------------
APp:
return
' ------------------------------------------------------------------------------
Aide:
  if object_exists(300)=1
      show 300
  else
      form 300:height 300,328:width 300,306:caption 300,def$(4)
      command_target_is 300
      picture 301:height 301,290:width 301,290:file_load 301,view$
  end_if
  pause 5000
  hide 300
return
' ------------------------------------------------------------------------------
Create_Solution:
  H%=-100
  repeat
      G%=-100
      H%=H%+100
      for x%=1 to 5
        G%=G%+100
        item_add 400,str$(G%)+"|"+str$(H%)
      next x%
  until H%=400
return
' ------------------------------------------------------------------------------
Verif_Solution:
  cpte%=0
  for x%=11 to 34
  VS$=item_read$(400,x%-10)
  sep%=instr(VS$,"|")
  G%=val(left$(VS$,sep%-1))
  H%=val(right$(VS$,len(VS$)-sep%))
      if top(x%)=H% and left(x%)=G%
        cpte%=cpte%+1
        caption 800,str$(cpte%)
      end_if
  next x%
  if cpte%=24
      gagne%=1
      gosub arreter
  end_if
return
' ------------------------------------------------------------------------------
Revenir en haut Aller en bas
papydall

papydall


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

Trop de gosub... - Page 3 Empty
MessageSujet: Re: Trop de gosub...   Trop de gosub... - Page 3 EmptyVen 3 Aoû 2012 - 2:17

@ygeronimi

C’est un petit casse-tête.
Je n’ai pas encore reçu le ‘Youpi !!!!’ mais j’y étais presque, sauf que ma patience m’a fait défaut.

Petite remarque, (car il faut toujours faire des petites remarques) :
Lorsqu’on clique sur ‘Aide’, l’image s’affiche sur la fenêtre principale, ce qui cache un peu la vue.
J’ai ajouté (ligne 289) left 300,515 pour que l’image à reconstituer s’affiche en dehors, ce qui donne une aide ++ Idea
Code:

form 300:height 300,328:width 300,306:caption 300,def$(4): left 300,515

sunny Laughing Laughing sunny
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Trop de gosub... - Page 3 Empty
MessageSujet: re   Trop de gosub... - Page 3 EmptyVen 3 Aoû 2012 - 4:30

@ papydall,


Les positions sur l'écran sont temporaires,
je commence par essayer de résoudre
les problèmes fonctionnels d'abord... Laughing

Tiens une spéciale papydall , voilà le dernier *.bas :

Code:
' ******************************************************************************
dim Dossier$,Doss_Sprite$,Doss_Fond$,Doss_Langue$
dim Langue$,def$(100),jeu%
dim M%
dim N%,T%,L%,T1%,L1%
dim x%,x$,joueur$
dim img%,img$,Doss_img_select$,view$
dim mess%
dim Table%(4,4),R%,C%,a%,b%,z%,cpte%,i%,gagne%,G%,H%,VS$,sep%
dim heure%,minute%,secd%,Tps%,heure$,minute$,secd$,Chrono$,Donnee$
' ------------------------------------------------------------------------------
label Init,Init_Dossier,Init_List,Init_Param,Init_Langue,Init_Bdd
label Change_Langue,New_Langue
label Menu,Jouer,Arreter,APp,Aide
label Select_Joueur,choix_joueur,Ajout_Joueur,Valid_Joueur
label Select_Img,Preview,Choix,Creation,Placement,Verif,Selection
label Action_G,Action_D,Action_H,Action_B
label Create_Solution,Verif_Solution,Chrono,Close_Jeu,Continu_Jeu
label Visu_Score,Remp_Grid,Quit_Score
label Quitter
' ******************************************************************************
caption 0,"Mon Puzzle":width 0,516:height 0,558:color 0,240,240,150
top 0,(screen_y-558)/2:left 0,(screen_x-516)/2
font_name 0,"Times new roman":font_size 0,10
main_menu 1
 sub_menu 2:parent 2,1:on_click 2,Menu:caption 2,"Jouer"
 sub_menu 3:parent 3,1:on_click 3,Menu:caption 3,"Langue"
 sub_menu 4:parent 4,1:on_click 4,Menu:caption 4,"A Propos"
 sub_menu 5:parent 5,1:on_click 5,Menu:caption 5,"Aide"
 sub_menu 801:parent 801,1:on_click 801,Visu_Score
 sub_menu 800:parent 800,1
 Chrono$="00 : 00 : 00"
 caption 800,Chrono$
 inactive 5
 button 802:top 802,470:left 802,420:cursor_point 802:on_click 802,Quitter
dlist 6 :' Liste des peramètres
dlist 7 :' Liste des langues dispo
dlist 8 :' Contenu de la langue choisie
dlist 9 :' Liste des Images
dlist 400 :' Solution
dlist 402 :' Liste des scores
timer 401:timer_off 401
gosub Init
end
' ******************************************************************************
Init:
  gosub Init_Dossier
  gosub Init_List
  gosub Init_Param
  gosub Init_Bdd
  gosub Create_Solution
return
' ------------------------------------------------------------------------------
Init_Dossier:
  Dossier$=Dir_Current$
  Doss_Sprite$=Dossier$+"\Sprites"
  Doss_Fond$=Dossier$+"\Fonds"
  Doss_Langue$=Dossier$+"\Langue"
return
' ------------------------------------------------------------------------------
Init_List:
  ' langues disponibles
  dir_change Doss_Langue$
  x$=file_find_first$
  if x$<>"_" then item_add 7,x$
  x$=file_find_next$
  while x$<>"_"
      if x$<>"_" then item_add 7,x$
      x$=file_find_next$
  end_while
  file_find_close
  ' liste des images
  dir_change Doss_Fond$
  x$=file_find_first$
  if x$<>"_" then item_add 9,x$
  x$=file_find_next$
  while x$<>"_"
      if x$<>"_" then item_add 9,x$
      x$=file_find_next$
  end_while
  file_find_close
return
' ------------------------------------------------------------------------------
Init_Param:
  if file_exists(Dossier$+"\Param.inf")=1
      file_load 6,Dossier$+"\Param.inf"
      gosub Init_Langue
  else
      gosub Change_Langue
  end_if
return
' ------------------------------------------------------------------------------
Init_Langue:
  clear 8
  if count(6)>0
      Langue$=Doss_Langue$+"\"+item_read$(6,1)+".txt"
      file_load 8,Langue$
      for x%=1 to count(8):def$(x%)=item_read$(8,x%):next x%
      for x%=2 to 5:caption x%,def$(x%-1):next x%
      caption 801,def$(9)
      caption 802,def$(19)
      if jeu%=1 then caption 2,def$(5)
  end_if
return
' ------------------------------------------------------------------------------
Change_Langue:
  if object_exists(100)=1
      show 100
  else
      form 100
      width 100,200:height 100,130:top 100,(screen_y-130)/2:left 100,(screen_x-200)/2
      caption 100,"Paramètres":font_name 100,"Times new roman":font_size 100,10
      command_target_is 100
      alpha 101:top 101,10:left 101,10:caption 101,"Langue :"
      combo 102:top 102,30:left 102,10
      for x%=1 to count(7):item_add 102,left$(item_read$(7,x%),len(item_read$(7,x%))-4):next x%
      on_change 102,New_Langue
  end_if
return
'-------------------------------------------------------------------------------
New_Langue:
  If count(6)>0 and Text$(102)<>""
      item_delete 6,1
      item_insert 6,1,Text$(102)
  else
      if Text$(102)<>"" then item_insert 6,1,Text$(102)
  end_if
  file_save 6,Dossier$+"\Param.inf"
  gosub Init_Langue
  hide 100
return
'-------------------------------------------------------------------------------
Init_Bdd:
  if file_exists(Dossier$+"\Score.Bdd")=1
      file_load 402,Dossier$+"\Score.Bdd"
  end_if
return
' ------------------------------------------------------------------------------
Menu:
  for x%=2 to 5
      if clicked(x%)=1 then M%=x%
  next x%
  select M%
  case 2
      jeu%=jeu%+1
      if jeu%=1
        caption 2,def$(5)
        gosub Jouer
      else
        jeu%=0
        caption 2,def$(1)
        gagne%=0
        gosub Arreter
      end_if
  case 3
      gosub Change_Langue
  case 4
      gosub APp
  case 5
      gosub Aide
  end_select
return
' ------------------------------------------------------------------------------
Jouer:
  gosub Select_Joueur
return
' ------------------------------------------------------------------------------
Select_Joueur:
  Joueur$="Joueur inconnu"
  if object_exists(500)=1
      show 500
  else
      form 500:width 500,360:height 500,205:top 500,(screen_y-205)/2:left 500,(screen_x-360)/2
      caption 500,def$(10):font_name 500,"Times new roman":font_size 500,10
      command_target_is 500
      list 501:height 501,160:sort_on 501
      if file_exists(Dossier$+"\Joueur.Bdd")=1 then file_load 501,Dossier$+"\Joueur.Bdd"
      cursor_point 501:hint 501,def$(11):on_click 501,choix_joueur
      edit 502:text 502,"":top 502,20:left 502,140
      button 503:top 503,20:left 503,265:width 503,20:height 503,20:caption 503,"..."
      cursor_point 503:on_click 503,Ajout_Joueur:hint 503,def$(12)
      button 504:top 504,140:left 504,265:caption 504,def$(8)
      cursor_point 504:on_click 504,Valid_Joueur
  end_if
return
' ------------------------------------------------------------------------------
Choix_Joueur:
  text 502,item_index$(501)
return
' ------------------------------------------------------------------------------
Ajout_Joueur:
  a%=0
  if text$(502)<>""
      for x%=1 to count(501)
        if text$(502)=item_read$(501,x%) then a%=a%+1
      next x%
  end_if
  if a%=0
      item_add 501,text$(502)
      file_save 501,Dossier$+"\Joueur.Bdd"
  end_if
return
' ------------------------------------------------------------------------------
Valid_Joueur:
 if text$(502)<>"" then  Joueur$=text$(502)
 hide 500
 gosub Select_img
return
' ------------------------------------------------------------------------------
Select_img:
  if object_exists(200)=1
      show 200
  else
      form 200:width 200,500:height 200,350:top 200,(screen_y-350)/2:left 200,(screen_x-500)/2
      caption 200,def$(6):font_name 200,"Times new roman":font_size 200,10
      command_target_is 200
      alpha 201:top 201,10:left 201,5:caption 201,def$(7)
      list 202 :top 202,30:left 202,5:width 202,170:height 202,230:cursor_point 202
      for x%=1 to count(9):item_add 202,item_read$(9,x%):next x%
      on_click 202,Preview
      picture 203:top 203,5:left 203,180:width 203,290:height 203,290:stretch_on 203
      button 204 :top 204,270:left 204,50:caption 204,def$(8):cursor_point 204
      inactive 204:on_click 204,Choix
  end_if
return
' ------------------------------------------------------------------------------
Preview:
  view$=Doss_Fond$+"\"+item_index$(202)
  file_load 203,view$
  active 204
return
' ------------------------------------------------------------------------------
Choix:
  img$=item_index$(202)
  Doss_img_select$=Doss_Sprite$+"\"+left$(img$,len(img$)-4)
  hide 200
  command_target_is 0
  inactive 802
  hide 802
  gosub Creation
return
' ------------------------------------------------------------------------------
Creation:
  for x%=1 to 24
      img%=10+x%
      picture img%
      width img%,100 :height img%,100:cursor_point img%
      stretch_on img% :file_load img%,Doss_img_select$+"\"+str$(img%)+".bmp"
      on_click img%,Selection
  next x%
  gosub Placement
  Tps%=0
  timer_on 401
  on_timer 401,Chrono
  active 5
return
' ------------------------------------------------------------------------------
Placement:
  Table%(4,4)=1
  for img%=11 to 34
      repeat
        R%=int(rnd(5))
        C%=int(rnd(5))
      until Table%(R%,C%)=0
      Table%(R%,C%)=img%
      left img%,R%*100
      top img%,C%*100
  next img%
  Table%(4,4)=0
return
' ------------------------------------------------------------------------------
Selection:
  for x%=1 to 24:off_click x%+10:next x%
  N%=number_click
  T%=Top(N%)
  L%=Left(N%)
  gosub Verif
  gosub Verif_Solution
return
' ------------------------------------------------------------------------------
Verif:
  T1%=T%/100
  L1%=L%/100
  ' pour se deplacer vers la gauche il faut au minimum etre dans la colonne 2
  if L1%>0
      if Table%(L1%-1,T1%)=0
        gosub Action_G
        Table%(L1%-1,T1%)=Table%(L1%,T1%)
        Table%(L1%,T1%)=0
      end_if
  end_if
  ' pour ce deplacer vers la droite il faut au maximum etre dans la colonne 4
  if L1%<4
      if Table%(L1%+1,T1%)=0
        gosub Action_D
        Table%(L1%+1,T1%)=Table%(L1%,T1%)
        Table%(L1%,T1%)=0
      end_if
  end_if
  ' pour ce deplacer vers le haut il faut etre au minimum sur la ligne 2
  if T1%>0
      if Table%(L1%,T1%-1)=0
        gosub Action_H
        Table%(L1%,T1%-1)=Table%(L1%,T1%)
        Table%(L1%,T1%)=0
      end_if
  end_if
  ' pour se deplacer vers le bas il faut au maximum etre sur la ligne 4
  if T1%<4
      if Table%(L1%,T1%+1)=0
        gosub Action_B
        Table%(L1%,T1%+1)=Table%(L1%,T1%)
        Table%(L1%,T1%)=0
      end_if
  end_if
  for x%=1 to 24:on_click x%+10,Selection :next x%
return
' ------------------------------------------------------------------------------
Action_G:
  if L%>=100
      for x%=L% to L%-100 step -5:top N%,T% :left N%,x% :wait 5 :next x%
  end_if
return
' ------------------------------------------------------------------------------
Action_D:
  if L%<400
      for x%=L% to L%+100 step 5:top N%,T% :left N%,x% :wait 5 :next x%
  end_if
return
' ------------------------------------------------------------------------------
Action_H:
  if T%>=100
      for x%=T% to T%-100 step -5:top N%,x% :left N%,L% :wait 5 :next x%
  end_if
return
' ------------------------------------------------------------------------------
Action_B:
  if T%<400
      for x%=T% to T%+100 step 5:top N%,x% :left N%,L% :wait 5 :next x%
  end_if
return
' ------------------------------------------------------------------------------
Arreter:
  Timer_off 401
  if gagne%=0
      if message_confirmation_yes_no("Etes vous sûr de vouloir abandonner ?")=1
        gosub Close_Jeu
      else
        gosub continu_Jeu
      end_if
  else
      if gagne%=1
        message "Bravo !!!"+chr$(13)+"Vous avez résolu le puzzle en :"+chr$(13)+Chrono$
        item_add 402,Date$+";"+Time$+";"+Joueur$+";"+view$+";"+Chrono$
        file_save 402,Dossier$+"\Score.Bdd"
        gosub Close_Jeu
      end_if
  end_if
return
' ------------------------------------------------------------------------------
Close_Jeu:
  for img%=11 to 34 : delete img% : next img%
  for R%=0 to 4: for C%=0 to 4 : Table%(R%,C%)=0 : next C%: next R%
  Tps%=0
  Chrono$="00 : 00 : 00"
  caption 800,Chrono$
  show 802
  active 802
return
' ------------------------------------------------------------------------------
Continu_Jeu:
  jeu%=1
  caption 2,def$(5)
  Timer_on 401
return
' ------------------------------------------------------------------------------
APp:
return
' ------------------------------------------------------------------------------
Aide:
  if object_exists(300)=1
      show 300
  else
      form 300:height 300,328:width 300,306:caption 300,def$(4)
      command_target_is 300
      top 300,top(0):left 300,left(0)+520
      picture 301:height 301,290:width 301,290:file_load 301,view$
  end_if
  pause 5000
  hide 300
return
' ------------------------------------------------------------------------------
Create_Solution:
  H%=-100
  repeat
      G%=-100
      H%=H%+100
      for x%=1 to 5
        G%=G%+100
        item_add 400,str$(G%)+"|"+str$(H%)
      next x%
  until H%=400
return
' ------------------------------------------------------------------------------
Verif_Solution:
  cpte%=0
  for x%=11 to 34
  VS$=item_read$(400,x%-10)
  sep%=instr(VS$,"|")
  G%=val(left$(VS$,sep%-1))
  H%=val(right$(VS$,len(VS$)-sep%))
      if top(x%)=H% and left(x%)=G%
        cpte%=cpte%+1
      end_if
  next x%
  if cpte%=24
      gagne%=1
      gosub arreter
  end_if
return
' ------------------------------------------------------------------------------
Chrono:
  Tps%=Tps%+1
  heure%=int(Tps%/3600)
  minute%=int(Tps%/60)-(heure%*60)
  secd%=Tps% -((heure%*3600)+(minute%*60))
    if len(str$(heure%))<2
    heure$="0"+str$(heure%)
  else
    heure$=str$(heure%)
  end_if
  if len(str$(minute%))<2
    minute$="0"+str$(minute%)
  else
    minute$=str$(minute%)
  end_if
  if len(str$(secd%))<2
    secd$="0"+str$(secd%)
  else
    secd$=str$(secd%)
  end_if
  Chrono$=heure$+" : "+minute$+" : "+secd$
  caption 800,Chrono$
return
' ------------------------------------------------------------------------------
Visu_Score:
  if object_exists(600)=1
    show 600
    caption 600,def$(9):caption 602,def$(13)
    for x%=1 to 5:grid_write 601,1,x% ,def$(x%+13):next x%
  else
    form 600:width 600,425:height 600,210:caption 600,def$(9)
    font_name 600,"Times new roman":font_size 600,10
    command_target_is 600
    grid 601:top 601,15:left 601,5:width 601,398
    grid_column 601,5:grid_row 601,2:grid_row_height 601,20
    grid_one_column_width 601,3,80
    grid_one_column_width 601,4,100
    for x%=1 to 5:grid_write 601,1,x% ,def$(x%+13):next x%
    button 602:top 602,140:left 602,327:caption 602,def$(13):cursor_point 602
    on_click 602,Quit_Score
  end_if
  gosub Remp_Grid
return
' ------------------------------------------------------------------------------
Remp_Grid:
  if count(402)>0
      grid_row 601,count(402)+2
      for x%=1 to count(402)
        Donnee$=item_read$(402,x%)
        sep%=instr(Donnee$,";")
        grid_write 601,x%+1,1,left$(Donnee$,sep%-1)
        Donnee$=right$(Donnee$,len(Donnee$)-sep%)
        sep%=instr(Donnee$,";")
        grid_write 601,x%+1,2,left$(Donnee$,sep%-1)
        Donnee$=right$(Donnee$,len(Donnee$)-sep%)
        sep%=instr(Donnee$,";")
        grid_write 601,x%+1,3,left$(Donnee$,sep%-1)
        Donnee$=right$(Donnee$,len(Donnee$)-sep%)
        sep%=instr(Donnee$,";")
        grid_write 601,x%+1,4,file_extract_name$(left$(Donnee$,sep%-1))
        grid_write 601,x%+1,5,right$(Donnee$,len(Donnee$)-sep%)
      next x%
  end_if
return
' ------------------------------------------------------------------------------
Quit_Score:
  Hide 600
return
' ------------------------------------------------------------------------------
Quitter:
terminate

Pendant qu'il y en a qui dorment.... Laughing Laughing Laughing Laughing
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Trop de gosub... - Page 3 Empty
MessageSujet: re   Trop de gosub... - Page 3 EmptyVen 3 Aoû 2012 - 13:43

Je change la discussion de catégorie
car elle n'a plus rien à voir avec le titre du sujet.


https://panoramic.1fr1.net/t2397-jeu-puzzle#23497
Revenir en haut Aller en bas
Contenu sponsorisé





Trop de gosub... - Page 3 Empty
MessageSujet: Re: Trop de gosub...   Trop de gosub... - Page 3 Empty

Revenir en haut Aller en bas
 
Trop de gosub...
Revenir en haut 
Page 3 sur 3Aller à la page : Précédent  1, 2, 3
 Sujets similaires
-
» Utilitaire Designer: générer une structure Panoramic valide
» Gosub with while[resolu] oubli du END
» Aide (imprimable) sur PANORAMIC avec exemples
» un end_if en trop ?
» [Résolu]L'objet TIMER perturbe les GOSUB et/ou les FREE ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: