[Résolu] Revenir au départ d'un programme
[Résolu] Revenir au départ d'un programme
Bonjour à tous,
dans le contexte de mon programme "Capitales", j'aimerais savoir comment on peut relancer un programme de façon interne pour changer de rubrique dans le menu.
Je vous remercie par anticipation.
dans le contexte de mon programme "Capitales", j'aimerais savoir comment on peut relancer un programme de façon interne pour changer de rubrique dans le menu.
Je vous remercie par anticipation.
Dernière modification par Micoute le sam. 23/janv./2016 15:38, modifié 1 fois.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Revenir au départ d'un programme
Sans voir ton projet pas évident de te répondre cette fois..
Normalement tu crées une proce pour initialiser ton programme.
Normalement tu crées une proce pour initialiser ton programme.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Revenir au départ d'un programme
@Micoute: tu devrais mettre toutes les questions qui concernent le même projet dans le même topic pour que ceux qui t'aident puissent voir l'historique (et le code initial en premier, que tu peux mettre à jour) 

Re: Revenir au départ d'un programme
Oui, c'est une très bonne idée, mais mon programme évolue et possède maintenant des images et des sons, il faudra donc que je mette les mises à jours et les fichiers annexes.
Pour mon problème de relancement, j'ai juste ajouter un MessageRequester et ça fonctionne très bien.
Pour mon problème de relancement, j'ai juste ajouter un MessageRequester et ça fonctionne très bien.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
- microdevweb
- Messages : 1802
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: Revenir au départ d'un programme
Relancer un programme es cours d'exécution, je ne penses pas que cela soit possible. Par contre si tu place le moteur principal de ton programme dans une procédure, tu peux sans problème appeler la procédure depuis n'importe quel endroit. Procédure qui en appelle une autre qui mettra à jour ton menu. Si tu ajoute des option à ton menu tu sera obligé de fermer et réouvrir la fenêtre à nouveau
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
Re: Revenir au départ d'un programme
Ok, c'est noté.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
- JohnJohnsonSHERMAN
- Messages : 648
- Inscription : dim. 13/déc./2015 11:05
- Localisation : Allez, cherche...
- Contact :
Re: Revenir au départ d'un programme
Si tu veux relancer totalement ton programme, il existe une solution toute simple :
Et voilà, c´est tout !
Code : Tout sélectionner
RunProgram(NomDeTonProg$)
End
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.
CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
Votre expert national en bogage et segfaults.
CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
- Windows 10 x64 - PB 5.61 x64
- Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
- TazNormand
- Messages : 1297
- Inscription : ven. 27/oct./2006 12:19
- Localisation : Calvados (14)
Re: Revenir au départ d'un programme
@JohnJohnsonSHERMAN : ta méthode lance une autre instance du programme, rien à voir avec la demande de Micoute.
@Micoute : tu dois repenser ta logique, on ne relance pas un programme, on revient à un niveau précédent ou initial dans la logique de celui-ci.
De manière simpliste, ton programme tourne dans une boucle principale, et chaque action (menu/bouton) appelle une procédure. Si tu veux relancer, tu dois prévoir la possibilité de quitter la procédure en cours, ce qui te ramène à l'état précédent de ton programme, et qui permet également d'appeler à nouveau cette procédure.
Tu imagines si dans Word/Excel après avoir imprimé/sauvegardé (par exemple) il fallait quitter pour revenir au mode "édition" ?
@Micoute : tu dois repenser ta logique, on ne relance pas un programme, on revient à un niveau précédent ou initial dans la logique de celui-ci.
De manière simpliste, ton programme tourne dans une boucle principale, et chaque action (menu/bouton) appelle une procédure. Si tu veux relancer, tu dois prévoir la possibilité de quitter la procédure en cours, ce qui te ramène à l'état précédent de ton programme, et qui permet également d'appeler à nouveau cette procédure.
Tu imagines si dans Word/Excel après avoir imprimé/sauvegardé (par exemple) il fallait quitter pour revenir au mode "édition" ?
- JohnJohnsonSHERMAN
- Messages : 648
- Inscription : dim. 13/déc./2015 11:05
- Localisation : Allez, cherche...
- Contact :
Re: Revenir au départ d'un programme
@Taz : en effet ca lance une seconde instance du prog (tout en fermant la premiére), mais au moins ca fait le travail demandé, tous les fichiers, les menus et autres éléments qui auraient été modifiés sont de ce fait rechargés... je le fais avec le Shermavigator, et ca marche trés bien d´ailleurs.
@Micoute : Aprés ca dépend de ce que tu veux faire exatement, s´il s´agit simplement de relancer un élément pour y appliquer des modifications, on peut peut etre aussi juste le détruire puis le recréer juste aprés, ou alors le modifier si cela est possible. En tout as avec un redémarrage total du prog a partir d´une autre instance, la au moins t´est sur que tout les éléments seront actualisés...
Edit : Difficile aussi de savoir préciséement ce qu´il faut sans connaissance du projet... peut tu nous en dire plus a son sujet? (A moins que tu ne veule garder la surprise
))
@Micoute : Aprés ca dépend de ce que tu veux faire exatement, s´il s´agit simplement de relancer un élément pour y appliquer des modifications, on peut peut etre aussi juste le détruire puis le recréer juste aprés, ou alors le modifier si cela est possible. En tout as avec un redémarrage total du prog a partir d´une autre instance, la au moins t´est sur que tout les éléments seront actualisés...
Edit : Difficile aussi de savoir préciséement ce qu´il faut sans connaissance du projet... peut tu nous en dire plus a son sujet? (A moins que tu ne veule garder la surprise

Dernière modification par JohnJohnsonSHERMAN le sam. 23/janv./2016 12:30, modifié 2 fois.
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.
CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
Votre expert national en bogage et segfaults.
CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
- Windows 10 x64 - PB 5.61 x64
- Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Re: Revenir au départ d'un programme
Bonjour à tous,
finalement, j'ai simplifié avec un MessageRequester.
Je joins le code qui comporte beaucoup de commentaires pour qu'il fonctionne sans musique et sans carte, ni drapeau pour qu'il soit malgré tout fonctionnel. Je suis sûr qu'on peut encore l'améliorer.
finalement, j'ai simplifié avec un MessageRequester.
Je joins le code qui comporte beaucoup de commentaires pour qu'il fonctionne sans musique et sans carte, ni drapeau pour qu'il soit malgré tout fonctionnel. Je suis sûr qu'on peut encore l'améliorer.
Code : Tout sélectionner
;Capitales 2.pb
;Thèmes
;Capitales européennes
;France
;Allemagne
;Royaume-uni
;Belgique
;Irlande
;Luxembourg
;Danemark
;Pays-bas
;Suède
;Espagne
;Portugal
;Italie
;Autriche
;Grèce
;Slovaquie
;Pologne
;Hongrie
;Tchéquie
;Finlande
;Chypre
; On peut quitter avec le bouton "Quitter" ou la touche "Echap"
; On peut revenir au menu avec le bouton "Menu"
Global.s ChefLieu, Region
Enumeration Fenetre
#Fenetre_principale
EndEnumeration
Enumeration Gadgets
#Ctn
#Cvs
#Cvs2
#Cvs3
#Titre
#Question
#tChefLieu
#tIndication
#Bouton_Ok
#Bouton_Quitter
#Bouton_Menu
#Bonne_Reponse
#Mauvaise_Reponse_1
#Mauvaise_Reponse_2
EndEnumeration
Enumeration sprites
#sprite
#Drapeau
#Carte
EndEnumeration
Enumeration Musiques
#Son
EndEnumeration
Enumeration Polices
#Police
#Police1
#Police2
#Police3
EndEnumeration
Enumeration Images
#Image
EndEnumeration
#LargEcr = 800
#HautEcr = 600
Declare RemplirTableau()
Declare Menu()
Declare Musique()
Declare Aide()
Declare Questionnaire()
Declare Tirer_au_sort()
Declare Bonne_reponse()
Declare Mauvaise_reponse()
Declare.s Reponses()
Declare PlacerBoutons()
Declare.s RepeterChaine(Chaine.s, Multiplicateur.i)
Declare Rejouer()
Declare Init()
Global NewList Question_Deja_Posee()
Global x, X1, X2, X3, Bonne_Reponse, Mauvaise_Reponse1, Mauvaise_Reponse2, Compteur, Niveau.f, CouleurNettoyage, Hasard
Global Index = 0, Oui = 1, Non = 0, ListeTerminee = Non, Total, Nb_Questions
Global Choix, Reponse.s, Texte$, largEcr, HautEcr, MonDrapeau, MaCarte
Global Fichier$
Global Police = LoadFont(#Police, "Arial", 15, #PB_Font_Bold)
Global Police1 = LoadFont(#Police1, "Arial", 20, #PB_Font_Bold)
Global Police2 = LoadFont(#Police2, "Calibri", 10)
Global Police3 = LoadFont(#Police3, "Calibri", 30)
ExamineDesktops()
largEcr = DesktopWidth(0)
HautEcr = DesktopHeight(0)
UseOGGSoundDecoder()
UseJPEGImageDecoder()
UsePNGImageDecoder()
;==========================================================================================================
;Procédures
Procedure RemplirTableau()
Total = 0
Nb_Questions = 0
ListeTerminee = Non
;Paramètres divers pour le jeu
If Choix = 1 ; capitales européennes
Restore Capitales_europeenne
Total = 26
Nb_Questions = 27
ElseIf Choix = 2 ;Régions françaises
Restore Prefectures
Total = 11
Nb_Questions = 12
ElseIf Choix = 3 ; lands allemands
Restore regions_allemandes
Total = 14
Nb_Questions = 15
ElseIf Choix = 4 ; royaume-uni
Restore Royaume_uni
Total = 3
Nb_Questions = 4
ElseIf Choix = 5 ;Belgique
Restore Belgique
Total = 10
Nb_Questions = 11
ElseIf Choix = 6 ;Irlande
Restore Irlande
Total = 3
Nb_Questions = 4
ElseIf Choix = 7 ;Luxembourg
Restore luxembourg
Total = 2
Nb_Questions = 3
ElseIf Choix = 8 ;Danemark
Restore Danemark
Total = 5
Nb_Questions = 6
ElseIf Choix = 9 ;Pays bas
Restore PaysBas
Total = 11
Nb_Questions = 12
ElseIf Choix = 10 ;Suède
Restore Suede
Total = 23
Nb_Questions = 24
ElseIf Choix = 11 ;Espagne
Restore Espagne
Total = 48
Nb_Questions = 49
ElseIf Choix = 12 ;Portugal
Restore Portugal
Total = 4
Nb_Questions = 5
ElseIf Choix = 13 ; Italie
Restore Italie
total = 19
Nb_Questions = 20
ElseIf Choix = 14 ; Autriche
Restore Autriche
Total = 8
Nb_Questions = 9
ElseIf Choix = 15 ; Grèce
Restore Grece
Total = 135
Nb_Questions = 136
ElseIf Choix = 16 ;Slovaquie
Restore Slovaquie
Total = 7
Nb_Questions = 8
ElseIf Choix = 17 ;Pologne
Restore Pologne
Total = 16
Nb_Questions = 16
ElseIf Choix = 18 ;Hongrie
Restore Hongrie
Total = 18
Nb_Questions = 19
ElseIf Choix = 19 ; Tchéquie
Restore Tchequie
Total = 13
Nb_Questions = 14
ElseIf Choix = 20 ; Finlande
Restore Finlande
Total = 18
Nb_Questions = 19
ElseIf Choix = 21
Restore Chypre
Total = 5
Nb_Questions = 6
EndIf
;Dimensionner notre tableau indice()
Global Dim indice.s(Total,1)
While ListeTerminee = Non
;Lire les données du tableau
Read.s Region
Read.s ChefLieu
If Region = "STOP" And ChefLieu = "STOP"
ListeTerminee = Oui
Else
ChefLieu = UCase(ChefLieu)
Region = UCase(Region)
;Attribuer les valeurs au tableau
indice(index, 0) = Region
indice(index, 1) = ChefLieu
EndIf
;Incrémenter l'index du tableau
Index + 1
Wend
EndProcedure
Procedure Menu()
Protected Ligne = 10, Colonne
CouleurNettoyage = $FFFFFF
; Initialiser le sprite et le clavier du système et un écran #LargEcr x #HautEcr, 32 bits
If InitSprite() = 0 Or InitKeyboard() = 0 Or OpenScreen(#LargEcr,#HautEcr,32,"") = 0 Or InitSound() = 0
MessageRequester("Erreur!", "Impossible d'initialiser l'environnement", #PB_MessageRequester_Ok)
End
EndIf
;Musique menu
; MaMusiqueMenu = CatchSound(#Son, ?Musique_Menu, ?Fin_Musique_Menu - ?Musique_Menu)
; SoundVolume(#son, 50)
; PlaySound(#Son, #PB_Sound3D_Loop)
; Dimensionner notre tableau TableauNom
Global Dim TableauNom.s(20)
; Attribuer nos valeurs au tableau
TableauNom(0) = "A - union européenne"
TableauNom(1) = "B - France"
TableauNom(2) = "C - Allemagne"
TableauNom(3) = "D - royaume-uni"
TableauNom(4) = "E - Belgique"
TableauNom(5) = "F - Irlande"
TableauNom(6) = "G - Luxembourg"
TableauNom(7) = "H - Danemark"
TableauNom(8) = "I - Pays-bas"
TableauNom(9) = "J - Suède"
TableauNom(10) = "K - Espagne"
TableauNom(11) = "L - Portugal"
TableauNom(12) = "M - Italie"
TableauNom(13) = "N - Autriche"
TableauNom(14) = "O - Grèce"
TableauNom(15) = "P - Slovaquie"
TableauNom(16) = "Q - Pologne"
TableauNom(17) = "R - Hongrie"
TableauNom(18) = "S - Tchéquie"
TableauNom(19) = "T - Finlande"
TableauNom(20) = "U - Chypre"
; Maintenant charger le sprite
; CatchSprite(#sprite, ?Carte_UE_adhesion, #PB_Sprite_AlphaBlending)
ClearScreen(CouleurNettoyage) ; vider la mémoire tampon de sortie en vert
; ZoomSprite(#sprite, 800, 600)
; DisplayTransparentSprite(#sprite, 0, 0)
StartDrawing(ScreenOutput())
BackColor(CouleurNettoyage)
DrawingMode(#PB_2DDrawing_Transparent)
DrawingFont(Police1)
; Afficher le texte à l'écran demandant à l'utilisateur l'entrée
Texte$ = "CAPITALES D'EUROPE"
Ligne + TextHeight(" ")
Colonne = (#LargEcr-TextWidth(Texte$))/2
DrawText(Colonne,Ligne, Texte$, $0)
DrawingMode(#PB_2DDrawing_Transparent)
Ligne = 150
For x = 0 To 10
Texte$ = TableauNom(x)
Ligne + TextHeight(" ")
Colonne = 150
DrawText(Colonne, Ligne, Texte$,$0)
Next x
Ligne = 150
For x = 11 To 20
Texte$ = TableauNom(x)
Ligne + TextHeight(" ")
Colonne = 450
DrawText(Colonne, Ligne, Texte$,$0)
Next x
StopDrawing()
FlipBuffers() ; basculer les tampons pour montrer à l'utilisateur la demande
; Initialiser une variable de type chaîne et la définir comme vide
Global.s Reponse = ""
; Maintenant, dire à PB d'attendre jusqu'à ce qu'une touche soit enfoncée avant d'aller plus loin
While Reponse = ""
; Appeler PB pour examiner la fonction clavier pour voir s'il y a une activité du clavier
ExamineKeyboard()
; S'il ya une activité, attribuer à n'importe quelle touche qui a été pressée, notre variable Reponse.s
Reponse = UCase(KeyboardInkey())
Wend
ClearScreen(CouleurNettoyage) ; vider la mémoire tampon de sortie en vert
; Commencer à dessiner dans le tampon de sortie
; DisplayTransparentSprite(#sprite, 0, 0)
StartDrawing(ScreenOutput())
DrawingFont(Police1)
DrawingMode(#PB_2DDrawing_Transparent)
BackColor(CouleurNettoyage)
FrontColor(0)
; vérifier pour voir si l'utilisateur entre un nombre entre 1 et 6 ou non
Ligne = 250
If Reponse = "A"
Texte$ = "Tu as choisi les capitales européennes !"
; si c'est le cas, alors écrire le texte à ce sujet
ElseIf Reponse = "B"
Texte$ = "Tu as choisi les régions françaises !"
ElseIf Reponse = "C"
Texte$ = "Tu as choisi les lands allemands !"
ElseIf Reponse = "D"
Texte$ = "Tu as choisi le royaume-uni !"
ElseIf Reponse = "E"
Texte$ = "Tu as choisi la Belgique !"
ElseIf Reponse = "F"
Texte$ = "Tu as choisi l'Irlande !"
ElseIf Reponse = "G"
Texte$ = "Tu as choisi le Luxembourg !"
ElseIf Reponse = "H"
Texte$ = "Tu as choisi le Danemark !"
ElseIf Reponse = "I"
Texte$ = "Tu as choisi les Pays-bas !"
ElseIf Reponse = "J"
Texte$ = "Tu as choisi la Suède !"
ElseIf Reponse = "K"
Texte$ = "Tu as choisi l'Espagne !"
ElseIf Reponse = "L"
Texte$ = "Tu as choisi le Portugal !"
ElseIf Reponse = "M"
Texte$ = "Tu as choisi l'Italie !"
ElseIf Reponse = "N"
Texte$ = "Tu as choisi l'Autriche !"
ElseIf Reponse = "O"
Texte$ = "Tu as choisi la Grèce !"
ElseIf Reponse = "P"
Texte$ = "Tu as choisi la Slovaquie !"
ElseIf Reponse = "Q"
Texte$ = "Tu as choisi la Pologne !"
ElseIf Reponse = "R"
Texte$ = "Tu as choisi la Hongrie !"
ElseIf Reponse = "S"
Texte$ = "Tu as choisi la Tchéquie !"
ElseIf Reponse = "T"
Texte$ = "Tu as choisi la Finlande !"
ElseIf Reponse = "U"
Texte$ = "Tu as choisi Chypre !"
Else
Texte$ = "Tu N'AS PAS fait de choix, ce sera donc:"
; sinon, juste lui dire qu'il n'a pas entré un numéro de question
DrawText((#LargEcr-TextWidth(Texte$))/2,Ligne, Texte$)
Ligne + TextHeight(" ")
Texte$ = "les régions françaises ! "
EndIf
DrawText((#LargEcr-TextWidth(Texte$))/2,Ligne, Texte$)
Ligne + TextHeight(" ")
Texte$ = "Appuie sur une la >BARRE ESPACE< pour continuer."
DrawText((#LargEcr-TextWidth(Texte$))/2,Ligne, Texte$)
Ligne + TextHeight(" ")
Texte$ = "ou la >touche Echap< pour annuler."
DrawText((#LargEcr-TextWidth(Texte$))/2,Ligne, Texte$)
Texte$ = ""
StopDrawing()
FlipBuffers() ; basculer le tampon pour montrer le résultat à l'utilisateur
; attendre qu'une touche soit pressée
Repeat
ExamineKeyboard()
If KeyboardReleased(#PB_Key_Space) Or
KeyboardReleased(#PB_Key_Escape)
Resultat = 1
EndIf
Until Resultat = 1
Choix = Asc(Reponse)-64 ;parce que Asc("A") - 64 = 1
If Reponse < "@" Or Reponse > "U"
Choix = 2
EndIf
CloseScreen()
RemplirTableau()
; StopSound(#son)
ProcedureReturn Choix
EndProcedure
Procedure Musique()
;Musique
; MaMusique = CatchSound(#Son, ?Musique, ?FinMusique - ?Musique)
; SoundVolume(#son, 50)
; PlaySound(#Son, #PB_Sound3D_Loop)
EndProcedure
Procedure Questionnaire()
OpenWindow(#Fenetre_principale, 0,0, largEcr, HautEcr, "Question n°"+Str(Compteur), #PB_Window_ScreenCentered | #PB_Window_BorderLess)
OpenWindowedScreen(WindowID(#Fenetre_principale), 0, 0, largEcr, HautEcr)
CouleurNettoyage = $FF7400
ClearScreen(CouleurNettoyage)
CanvasGadget(#Cvs2, 0, 720, largEcr, 60) ; Titre
StartDrawing(CanvasOutput(#Cvs2))
DrawingFont(FontID(#Police3))
Box(0, 0, largEcr, HautEcr, CouleurNettoyage)
DrawText((largEcr-TextWidth(TableauNom(Choix-1)))/2, 10, Mid(TableauNom(Choix-1),5), $00FFFF, CouleurNettoyage)
StopDrawing()
;-Note
CanvasGadget(#Cvs3, largEcr - 520, HautEcr - 230, 500, 100) ;Note
StartDrawing(CanvasOutput(#Cvs3))
Box( 0, 0, 500, 100, CouleurNettoyage)
DrawingFont(Police1)
DrawText(10, 10, "Note: "+StrF(Niveau,2)+"/20", $00FFFF, CouleurNettoyage)
StopDrawing()
ContainerGadget(#Ctn, (largEcr-800) / 2, HautEcr-210, 800, 200, #PB_Container_Double)
ButtonGadget(#Titre, 300, 10, GadgetWidth(#Ctn)-560, 30, "Question n°"+Str(Compteur) + "/" + Nb_Questions, #PB_Text_Center)
If Choix = 1 ;a
;Question Europe
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Europe)
; MaCarte = CatchSprite(#Carte, ?Carte_Europe)
If Left(indice(Bonne_Reponse, 0), 1) = "A" Or Left(indice(Bonne_Reponse, 0), 1) = "E" Or Left(indice(Bonne_Reponse, 0), 1) = "I" Or
Left(indice(Bonne_Reponse, 0), 1) = "O" Or Left(indice(Bonne_Reponse, 0), 1) = "U"
Texte$ = "de l'"
ElseIf indice(Bonne_Reponse, 0) = "Chypre" Or indice(Bonne_Reponse, 0) = "Malte"
Texte$ = "de "
ElseIf indice(Bonne_Reponse, 0) = "Pays-Bas"
Texte$ = "des "
ElseIf indice(Bonne_Reponse, 0) = "Portugal" Or indice(Bonne_Reponse, 0) = "Royaume-Uni" Or indice(Bonne_Reponse, 0) = "Luxembourg"
Texte$ = "du "
Else
Texte$ = "de la "
EndIf
ElseIf Choix = 2 ;b
;Question France
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_France)
; MaCarte = CatchSprite(#Carte, ?Carte_France)
ElseIf Choix = 3 Or Choix = 14
If Choix = 3 ;c
;Question Allemagne
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Allemagne)
; MaCarte = CatchSprite(#Carte, ?Carte_Allemagne)
ElseIf Choix = 14 ;n
;Question Autriche
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Autriche)
; MaCarte = CatchSprite(#Carte, ?Carte_Autriche)
EndIf
Texte$ = "du land "
ElseIf Choix = 4 ;d
;Question Royaume uni
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Royaume_Uni)
; MaCarte = CatchSprite(#Carte, ?Carte_Royaume_Uni)
Texte$ = "de la nation "
ElseIf Choix = 5 ;e
;Question Belgique
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Belgique)
; MaCarte = CatchSprite(#Carte, ?Carte_Belgique)
Texte$ = "de la "
ElseIf Choix = 6 Or Choix = 7 Or Choix = 8 Or Choix = 9 Or Choix = 10 Or Choix = 11 Or Choix = 15
If Choix = 6 ;f
;Question Irlande
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Irlande)
; MaCarte = CatchSprite(#Carte, ?Carte_Irlande)
ElseIf Choix = 7 ;g
;Question Luxembourg
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Luxembourg)
; MaCarte = CatchSprite(#Carte, ?Carte_Luxembourg)
ElseIf Choix = 8 ;h
;Question Danemark
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Danemark)
; MaCarte = CatchSprite(#Carte, ?Carte_Danemark)
ElseIf Choix = 9 ;i
;Question Pays bas
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Pays_Bas)
; MaCarte = CatchSprite(#Carte, ?Carte_Pays_Bas)
ElseIf Choix = 10 ;j
;Question Suède
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Suede)
; MaCarte = CatchSprite(#Carte, ?Carte_Suede)
ElseIf Choix = 11 ;k
;Question Espagne
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Espagne)
; MaCarte = CatchSprite(#Carte, ?Carte_Espagne)
ElseIf Choix = 15 ;o
;Question Grèce
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Grece)
; MaCarte = CatchSprite(#Carte, ?Carte_Grece)
EndIf
Texte$ = "de la province "
ElseIf Choix = 12 Or Choix = 13 Or Choix = 16 Or Choix = 17 Or Choix = 18 Or Choix = 19 Or Choix = 20 Or Choix = 21
If Choix = 12 ;l
;Question Portugal
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Portugal)
; MaCarte = CatchSprite(#Carte, ?Carte_Portugal)
ElseIf Choix = 13 ;m
;Question Italie
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Italie)
; MaCarte = CatchSprite(#Carte, ?Carte_Italie)
ElseIf Choix = 16 ;p
;Question Slovaquie
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Slovaquie)
; MaCarte = CatchSprite(#Carte, ?Carte_Slovaquie)
ElseIf Choix = 17 ;q
;Question Pologne
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Pologne)
; MaCarte = CatchSprite(#Carte, ?Carte_Pologne)
ElseIf Choix = 18 ;r
;Question Hongrie
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Hongrie)
; MaCarte = CatchSprite(#Carte, ?Carte_Hongrie)
ElseIf Choix = 19 ;s
;Question Tchéquie
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Tchequie)
; MaCarte = CatchSprite(#Carte, ?Carte_Tchequie)
ElseIf Choix = 20 ;t
;Question Finlande
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Finlande)
; MaCarte = CatchSprite(#Carte, ?Carte_Finlande)
ElseIf Choix = 21 ;u
;Question Chypre
; MonDrapeau = CatchSprite(#Drapeau, ?Drapeau_Chypre)
; MaCarte = CatchSprite(#Carte, ?Carte_Chypre)
EndIf
Texte$ = "de la région "
EndIf
;Gadgets communs
ButtonGadget(#Question, 10, 55, GadgetWidth(#Ctn) - 20, 30, "Quelle est la capitale "+ Texte$ + indice(Bonne_Reponse, 0), #PB_Text_Center)
ButtonGadget(#Bouton_Quitter, GadgetWidth(#Ctn) - 90, 150, 80, 30, "Quitter")
ButtonGadget(#Bouton_Menu, 10, 150, 80, 30, "Menu")
ButtonGadget(#Bonne_Reponse, X1, 105, 250, 30, Left(indice(Bonne_Reponse, 1), 1) + LCase(Right(indice(Bonne_Reponse, 1), Len(indice(Bonne_Reponse, 1)) - 1)))
ButtonGadget(#Mauvaise_Reponse_1, X2, 105, 250, 30, Left(indice(Mauvaise_reponse1, 1), 1) + LCase(Right(indice(Mauvaise_Reponse1, 1), Len(indice(Mauvaise_Reponse1, 1)) - 1)))
ButtonGadget(#Mauvaise_Reponse_2, x3, 105, 250, 30, Left(indice(Mauvaise_reponse2, 1), 1) + LCase(Right(indice(Mauvaise_Reponse2, 1), Len(indice(Mauvaise_Reponse2, 1)) - 1)))
CloseGadgetList()
; IsSprite(#Drapeau)
; If MonDrapeau <> 0
; ZoomSprite(#Drapeau, SpriteWidth(#Drapeau) / 2, SpriteHeight(#Drapeau) / 2)
; DisplaySprite(#Drapeau, 10,HautEcr-SpriteHeight(#Drapeau) - 10)
; EndIf
; IsSprite(#Carte)
; If MaCarte <> 0
; DisplaySprite(#Carte, (largEcr-SpriteWidth(#Carte)) / 2, 10)
; EndIf
SetGadgetColor(#Titre, #PB_Gadget_BackColor, $FFFFFF)
SetGadgetFont(#Titre, FontID(#Police))
SetGadgetColor(#Question, #PB_Gadget_BackColor, $FFFFFF)
SetGadgetFont(#Question, FontID(#Police))
SetGadgetFont(#tIndication, FontID(#Police))
SetGadgetFont(#Bouton_Quitter, FontID(#Police))
SetGadgetFont(#Bouton_Menu, FontID(#Police))
SetGadgetFont(#Bonne_Reponse, FontID(#Police))
SetGadgetFont(#Mauvaise_Reponse_1, FontID(#Police))
SetGadgetFont(#Mauvaise_Reponse_2, FontID(#Police))
AddKeyboardShortcut(#Fenetre_principale, #PB_Shortcut_Escape, #Bouton_Quitter) ;pour sortir en pressant échap
;-Boucle principale
Repeat
;grepondu$ = "mal"
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #Bouton_Ok
grepondu$="bien"
Case #Bouton_Quitter
CloseWindow(#Fenetre_principale)
End
Case #Bouton_Menu
Rejouer()
Case #Bonne_Reponse
grepondu$ = "bien"
Case #Mauvaise_Reponse_1, #Mauvaise_Reponse_2
grepondu$ = "mal"
EndSelect
Case #PB_Event_Menu
Select EventMenu()
Case #Bouton_Ok
grepondu$="bien"
Case #Bouton_Quitter
CloseWindow(#Fenetre_principale)
End
EndSelect
EndSelect
Until grepondu$="bien" Or grepondu$ = "mal"
If grepondu$ = "bien"
rep1$=GetGadgetText(#Bonne_Reponse)
Niveau + (20 / Nb_Questions)
AddElement(Question_Deja_Posee())
Question_Deja_Posee() = Bonne_Reponse
EndIf
If grepondu$ = "mal"
Mauvaise_reponse()
EndIf
EndProcedure
Init()
Procedure Tirer_au_sort()
Bonne_Reponse = Random(Total)
Mauvaise_Reponse1 = Random(Total)
Mauvaise_Reponse2 = Random(Total)
If Mauvaise_Reponse1 = Bonne_Reponse
Tirer_au_sort()
EndIf
If Mauvaise_Reponse2 = Bonne_Reponse
Tirer_au_sort()
EndIf
If Mauvaise_Reponse2 = Mauvaise_Reponse1
Tirer_au_sort()
EndIf
PlacerBoutons()
ForEach Question_Deja_Posee()
If Question_Deja_Posee() = Bonne_Reponse
Tirer_au_sort()
EndIf
Next
EndProcedure
Procedure Bonne_reponse()
MessageRequester("Cool", "Trop fort !", #MB_OK)
EndProcedure
Procedure Mauvaise_reponse()
MessageRequester("Désolé", "la réponse, c'était " + indice(Bonne_Reponse, 1) +
#LF$ +
"Retiens-le pour la pochaine fois !", #MB_OK)
EndProcedure
Procedure.s Reponses()
Protected Texte.s
Select niveau
Case 0
Texte = "Tu n'as répondu à aucune question"
Case 1 To 3
Texte = " nul"
Case 4 To 8
Texte = " médiocre"
Case 9 To 12
Texte = " moyen"
Case 13 To 15
Texte = " assez bon"
Case 16 To 18
Texte = " très bon"
Case 19 To 20
Texte = " excellent"
EndSelect
MessageRequester("Bilan", "Ta note est de " + StrF(Niveau) + "/20" + #LF$ + #LF$ + "Résulat : " + Texte)
EndProcedure
Procedure PlacerBoutons()
Hasard = Random(3, 1)
Select Hasard
Case 1
X1 = 10
X2 = 275
X3 = 540
Case 2
X1 = 275
X2 = 540
X3 = 10
Case 3
X1 = 540
X2 = 275
X3 = 10
EndSelect
EndProcedure
Procedure.s RepeterChaine(Chaine.s, Multiplicateur.i)
; répète une chaîne un nombre demandé de fois
Protected Resultat.s
If Multiplicateur > 0
Protected Longueur_chaine.i, Nouvelle_longueur.i, i.i
Protected *Pointeur_resultat
Longueur_chaine = Len(Chaine)
Nouvelle_longueur = Multiplicateur *Longueur_chaine
Resultat = Space(Nouvelle_longueur)
*Pointeur_resultat = @Resultat
For x = 1 To Multiplicateur
PokeS(*Pointeur_resultat, Chaine)
If i < Multiplicateur
CompilerIf #PB_Processor_x64
*Pointeur_resultat + (Longueur_chaine * 2)
CompilerElse
*Pointeur_resultat + Longueur_chaine
CompilerEndIf
EndIf
Next x
Else
Resultat = ""
EndIf
ProcedureReturn Resultat
EndProcedure
Procedure Rejouer()
Niveau = 0
Index = 0
ListeTerminee = Non
Select MessageRequester("Question", "Veux-tu rejouer ?", #PB_MessageRequester_YesNo)
Case #IDYES
If ListSize(Question_Deja_Posee()) > 0
FreeList(Question_Deja_Posee())
Global NewList Question_Deja_Posee()
EndIf
If ArraySize(indice()) > 0
FreeArray(indice())
EndIf
If ArraySize(TableauNom()) > 0
FreeArray(TableauNom())
EndIf
If IsWindow(#Fenetre_principale)
CloseWindow(#Fenetre_principale)
CloseScreen()
EndIf
Init()
Case #IDNO
MessageRequester("Capitales", "Merci d'avoir joué, à très bientôt !", #PB_MessageRequester_Ok)
ExamineDesktops()
End
EndSelect
EndProcedure
Procedure Init()
;-Début du jeu
Select MessageRequester("Question", "Veux-tu tester tes capacités dans ce questionnaire ?", #PB_MessageRequester_YesNo)
Case #IDYES
Menu()
Musique()
;-debut du Questionnaire
For Compteur = 1 To Nb_Questions
Tirer_au_sort()
Questionnaire()
Next
Reponses()
Rejouer()
Case #IDNO
MessageRequester("A bientôt","Reviens quand même tester tes compétences plus tard!")
End
EndSelect
EndProcedure
DataSection
;Europe
Capitales_europeenne:
Data.s "Pays-Bas","Amsterdam"
Data.s "Grece", "Athenes"
Data.s "Allemagne", "Berlin"
Data.s "Slovaquie", "Bratislava"
Data.s "Belgique", "Bruxelles"
Data.s "Roumanie", "Bucarest"
Data.s "Hongrie", "Budapest"
Data.s "Danemark", "Copenhague"
Data.s "Irlande", "Dublin"
Data.s "Finlande", "Helsinki"
Data.s "Malte", "La Valette"
Data.s "Portugal", "Lisbonne"
Data.s "Slovénie", "Ljubljana"
Data.s "Royaume-Uni", "Londres"
Data.s "Luxembourg", "Luxembourg"
Data.s "Espagne", "Madrid"
Data.s "Chypre", "Nicosie"
Data.s "France", "Paris"
Data.s "République Tchèque", "Prague"
Data.s "Lettonie", "Riga"
Data.s "Italie", "Rome"
Data.s "Bulgarie", "Sofia"
Data.s "Suède", "Stockholm"
Data.s "Estonie", "Talinn"
Data.s "Pologne", "Varsovie"
Data.s "Autriche", "Vienne"
Data.s "Lituanie", "Vilnius"
Data.s "STOP", "STOP"
;France
Prefectures:
Data.s "Nord-Pas-de-Calais-Picardie","Lille"
Data.s "Ile de France", "Paris"
Data.s "Champagne-Ardennes-Lorraine-Alsace", "Strasbourg"
Data.s "Bourgogne-Franche-Comté", "Dijon"
Data.s "Centre", "Orléans"
Data.s "Auvergne-Rhône-Alpes", "Lyon"
Data.s "Provence-Alpes-Côtes d'azur", "Marseille"
Data.s "Midi-Pyrénées-Languedoc-Roussillon", "Toulouse"
Data.s "Poitou-Charente-Limousin-Aquitaine", "Bordeaux"
Data.s "Pays de la Loire", "Nantes"
Data.s "Bretagne", "Rennes"
Data.s "Normandie", "Rouen"
Data.s "STOP", "STOP"
;Allemagne
regions_allemandes:
Data.s "Bade-Wurtenberg", "Stuttgart"
Data.s "Basse-Saxe", "Hanovre"
Data.s "Bavière", "Munich"
Data.s "Berlin", "Berlin"
Data.s "Brandebourg", "Potsdam"
Data.s "Brême", "Brême"
Data.s "Hambourg", "Hambourg"
Data.s "Hesse", "Wiesbaden"
Data.s "Mecklembourg-Poméranie-Occidentale", "Schwerin"
Data.s "Rhénanie-Palatinat", "Mayence"
Data.s "Sarre", "Sarrebruck"
Data.s "Saxe", "Dresde"
Data.s "Saxe-Anhalt", "Magdebourg"
Data.s "Schleswig-Holstein", "Kiel"
Data.s "Thuringe", "Erfurt"
Data.s "STOP", "STOP"
;Royaume uni
Royaume_uni:
Data.s "Angleterre", "Londres"
Data.s "Ecosse", "Edimbourg"
Data.s "Pays de galles", "Cardiff"
Data.s "Irlande du Nord", "Belfast"
Data.s "STOP", "STOP"
;Belgique
Belgique:
Data.s "Wallonie Brabant", "Wavre"
Data.s "Wallonie Hainaut", "Mons"
Data.s "Wallonie Liège", "Liège"
Data.s "Wallonie Luxembourg", "Mons"
Data.s "Wallonie Namur", "Namur"
Data.s "Flandre Anvers", "Anvers"
Data.s "Flandre Brabant", "Louvain"
Data.s "Flandre occidentale", "Bruges"
Data.s "Flandre orientale", "Gand"
Data.s "Flandre Limbourg", "Hassell"
Data.s "Belgique", "Bruxelles"
Data.s "STOP", "STOP"
;Irlande
Irlande:
Data.s "Leinster", "Dublin"
Data.s "Munster", "Cork"
Data.s "Connacht", "Galway"
Data.s "Ulster", "Belfast"
Data.s "STOP", "STOP"
;Luxembourg
Luxembourg:
Data.s "Diekirch", "Diekirch"
Data.s "Grevenmacher", "Grevenmacher"
Data.s "Luxembourg", "Luxembourg"
Data.s "STOP", "STOP"
;Danemark
Danemark:
Data.s "Jutland du nord", "Alborg"
Data.s "Jutland central", "Viborg"
Data.s "Danemark du sud", "Vejle"
Data.s "Hovedstaden", "Hillerod"
Data.s "Sjaelland", "Soro"
Data.s "Danemark", "Copenhague"
Data.s "STOP", "STOP"
;Pays bas
PaysBas:
Data.s "Brabant du nord", "Bois-le-Duc"
Data.s "Drenthe", "Assen"
Data.s "Flevoland", "Lelystad"
Data.s "Fise", "Leeuwarden"
Data.s "Groningue", "Groningue"
Data.s "Gueldre", "Amhem"
Data.s "Hollande méridionale", "La Haye"
Data.s "Hollande septentrionale", "Haarlem"
Data.s "Limbourg", "Maastricht"
Data.s "Overijssel", "Zwolle"
Data.s "Utrecht", "Utrecht"
Data.s "Zélande", "Middelbourg"
Data.s "STOP", "STOP"
;Suède
Suede:
Data.s "Bleking", "Karlskrona"
Data.s "Bohuslaen", "Göteborg"
Data.s "Botnie septentrionale", "Lulea"
Data.s "Botnie occidentale", "Umea"
Data.s "Dalécarlie", "Falun"
Data.s "Gothlande", "Visbi"
Data.s "Hallande", "Halmstad"
Data.s "Lempterland", "Östersund"
Data.s "Ostrogothie", "Linköping"
Data.s "Scanie", "Helsingborg"
Data.s "Sudermanie", "Nyköping"
Data.s "Wermelande", "Karlstad"
Data.s "Westmanie", "Västeras"
Data.s "Angermanie", "Hämösand"
Data.s "Dalie", "Amai"
Data.s "Gestriclande", "Gävle"
Data.s "Helsingie", "Söderhamm"
;Data.s "Herdalie", ""
Data.s "Laponie", "Kiruna"
Data.s "Madelpadie", "Sundsvall"
Data.s "Néricie", "Örebro"
Data.s "OElande", "Borgholm"
Data.s "Smaulande", "Jönköping"
Data.s "Uplande", "Stockholm"
Data.s "Westrogothie", "Göteborg"
Data.s "STOP", "STOP"
;Espagne
Espagne:
Data.s "Alava", "Vitoria-Gasteiz"
Data.s "Albacete", "Albacete"
Data.s "Alicante", "Alicante"
Data.s "Almeria", "Almeria"
Data.s "Asturies", "Oviedo"
Data.s "Avila", "Avila"
Data.s "Badajoz", "Badajoz"
Data.s "Iles Baléares", "Palma de Majorque"
Data.s "Barcelone", "Barcelone"
Data.s "Biscaye", "Bilbao"
Data.s "Burgos", "Burgos"
Data.s "Caceres", "Caceres"
Data.s "Cadix", "Cadix"
Data.s "Cantabrie", "Santander"
Data.s "Castellon", "Castellon de la Plana"
Data.s "Ciudad Real", "Ciudad Real"
Data.s "Cordoue", "Cordoue"
Data.s "La Corogne", "La Corogne"
Data.s "Cuenca", "Cuenca"
Data.s "Gérone", "Gérone"
Data.s "Grenade", "Grenade"
Data.s "Guadalajara", "Guadalejara"
Data.s "Guipuscoa", "Saint-Sébastien"
Data.s "Huelva", "Huelva"
Data.s "Huesca", "Huesca"
Data.s "Jaen", "Jaen"
Data.s "Leon", "Leon"
Data.s "Lérida", "Lleida"
Data.s "Madrid", "Madrid"
Data.s "Malaga", "Malaga"
Data.s "Murcie", "Murcie"
Data.s "Navarre", "Pampelune"
Data.s "Ourense", "Ourense"
Data.s "Palencia", "Palencia"
Data.s "Las Palmas", "Las Palmas de Gran Canaria"
Data.s "Pontevedra", "Pontevedra"
Data.s "La rioja", "Logroño"
Data.s "Salamanque", "Salamanque"
Data.s "Santa Cruz de ténérife", "Santa Cruz de Ténérife"
Data.s "Saragosse", "Saragosse"
Data.s "Ségovie", "Ségovie"
Data.s "Séville", "Séville"
Data.s "Soria", "Soria"
Data.s "Tarragone", "Tarragone"
Data.s "Teruel", "Teruel"
Data.s "Tolède", "Tolède"
Data.s "Valence", "Valence"
Data.s "Valladolid", "Valladolid"
Data.s "Zamora", "Zamora"
Data.s "STOP", "STOP"
;Portugal
Portugal:
Data.s "Nord", "Porto"
Data.s "Centre", "Coimbra"
Data.s "Lisbonne", "Lisbonne"
Data.s "Alentejo", "Evora"
Data.s "Algarve", "Fara"
Data.s "STOP", "STOP"
;Italie
Italie:
Data.s "Abruzzes", "L'Aquila"
Data.s "Vallée d'Aoste", "Aoste"
Data.s "Basilicate", "Potenza"
Data.s "Calabre", "Cantanzaro"
Data.s "Campanie", "Naples"
Data.s "Emilie-Romagne", "Bologne"
Data.s "Frioul-Vénétie julienne", "Trieste"
Data.s "Latium", "Rome"
Data.s "Ligurie", "Gênes"
Data.s "Lombardie", "Milan"
Data.s "Marches", "Ancône"
Data.s "Molise", "Campobasso"
Data.s "Ombrie", "Pérouse"
Data.s "Piémont", "Turin"
Data.s "Pouilles", "Bari"
Data.s "Sardaigne", "Cagliari"
Data.s "Sicile", "Palerme"
Data.s "Toscane", "Florence"
Data.s "Trentin-Haut-Adige", "Trente"
Data.s "Vénétie", "Venise"
Data.s "STOP", "STOP"
;Autriche
Autriche:
Data.s "Basse-Autriche", "Sankt Pölten"
Data.s "Burgenland", "Eisenstadt"
Data.s "Carinthie", "KLagenfurt"
Data.s "Haute-Autriche", "Linz"
Data.s "Salzbourg", "Salzbourg"
Data.s "Styrie", "Graz"
Data.s "Tyrol", "Innsbruck"
Data.s "Vienne", "Vienne"
Data.s "Vorarlberg", "Bregenz"
Data.s "STOP", "STOP"
;Grèce
Grece:
;Nome d'Achaïe
Data.s "Aigialeia", "Aigion"
Data.s "Kalavryta", "Kalavryta"
Data.s "Patras", "Patras"
;Nome d'Étolie-Acarnanie
Data.s "Missolonghi", "Missolonghi"
Data.s "Naupactie", "Naupacte"
Data.s "Triconis", "Agrinio"
Data.s "Valtos", "Amfilochia"
Data.s "Xiromera", "Vonitza"
;Arcadie
Data.s "Gortynia", "Dimitsana"
Data.s "Kinouria", "Leonidio"
Data.s "Mantinée", "Mégapolis"
;Nome d'Argolide
Data.s "Argos", "Argos"
Data.s "Hermionide", "Kranidi"
Data.s "Nauplie", "Nauplie"
;Nomarchie d'Athènes
;Attique de l'Est
Data.s "Attique", "Marathon"
Data.s "Mésogée", "Koropi"
Data.s "Lauréotique", "Lavrion"
;Attique ouest
Data.s "Mégare", "Mégare"
Data.s "Eleusis", "Eleusis"
;Nomarchie du Pirée
Data.s "Pirée", "Le Pirée"
Data.s "Egine", "Egine"
Data.s "Cythère", "Cythère"
Data.s "Salamine", "Salamine"
Data.s "Hydra & Spetses", "Hydra"
Data.s "Trézénie", "Poros"
;Nome de Béotie
Data.s "Thèbes", "Thèbes"
Data.s "Livadia", "Livadia"
;Nome de Chalcidique
Data.s "Polygyros", "Polygyros"
Data.s "Arnaia", "Arnaia"
;Nome de la Canée
Data.s "Apokoronas", "Vamos"
Data.s "Kydonia", "La Canée"
Data.s "Kissamos", "Kissamos"
Data.s "Sélino", "Kandanos"
Data.s "Sfakia", "Chora Sfakion"
;Nome de Corfou (Kérkyra)
Data.s "Corfou", "Corfou"
Data.s "Paxos", "Gaios"
;Nome des Cyclades
Data.s "Kéa", "Kéa"
Data.s "Naxos", "Naxos"
Data.s "Tinos", "Tinos"
Data.s "Andros", "Andros"
Data.s "Syros", "Ermoupoli"
Data.s "Paros", "Parikia"
Data.s "Milos", "Milos"
Data.s "Amorgos", "Amorgos"
Data.s "Théra", "Fira"
;Nome du Dodécanèse
Data.s "Patmos", "Patmos"
Data.s "Kalymnos", "Kalymnos"
Data.s "Kos", "Kos"
Data.s "Rhodes", "Rhodes"
Data.s "Karpathos", "Karpathos"
;Nome d'Élide
Data.s "Elidie", "Pyrgos"
Data.s "Olympie", "Andritsaina"
;Nome d'Eubée
Data.s "Chalcis", "Chalcis"
Data.s "Histiée", "Histiée"
Data.s "Karystie", "Kymi"
;Nome d'Évros
Data.s "Alexandroupoli", "Alexandroupoli"
Data.s "Didymotique", "Dydimotique"
Data.s "Soufli", "Soufli"
Data.s "Orestiada", "Orestiada"
Data.s "Samothrace", "Samothrace"
;Nome d'Héraklion
Data.s "Téménos", "Héraklion"
Data.s "Malevizi", "Agios Myron"
Data.s "Pediada", "Kasteli"
Data.s "Kenourgion", "Mires"
Data.s "Pyrgiotissa", "Vori"
Data.s "Viannos", "Pefkos"
Data.s "Moofatsi", "Tylissos"
;Nome d'Imathie
Data.s "Imathie", "Béroia"
Data.s "Naoussa", "Naoussa"
;Nome de Ioannina
Data.s "Dodone", "Ionnina"
Data.s "Konitsa", "Konitsa"
Data.s "Metsovo", "Metsovo"
Data.s "Pogoni", "Delvinaki"
Data.s "Pangéo", "Eleftheroupolis"
Data.s "Nestos", "Chrysoupoli"
Data.s "Thasos", "Thasos"
;Céphalonie
Data.s "Kranéa", "Argostoli"
Data.s "Paliki", "Lixouri"
Data.s "Ithaque", "Ithaque"
;Nome de Kilkís
Data.s "Kilkis", "Kilkis"
Data.s "Péonie", "Goumenissa"
;Nome de Kozani
Data.s "Kozani", "Kozani"
Data.s "Eordée", "Ptoleaïda"
Data.s "Voïo", "Siatista"
;Nome de Laconie
Data.s "Gythio", "Gythio"
Data.s "Epidaure Limira", "Malaoi"
Data.s "Lacédémone", "Sparte"
Data.s "Itylo", "Areopoli"
;Nome de Larissa
Data.s "Pharsale", "Pharsale"
Data.s "Agia", "Agia"
Data.s "Larissa", "Larissa"
Data.s "Tyrnavos", "Tyrnavos"
Data.s "Olympe", "Elassona"
;Nome de Lasithi
Data.s "Ierapetra", "Ierapetra"
Data.s "Sitia", "Sitia"
Data.s "Mirambélos", "Agios Nikolaos"
;Nome de Lesbos
Data.s "Lemnos", "Myrina"
Data.s "Méthymne", "Méthymne"
Data.s "Mytilène", "Mytilène"
Data.s "Plomari", "Plomari"
;Nome de Magnésie
Data.s "Almyros", "Almyros"
Data.s "Iles Sporades du nord", "Skopelos"
Data.s "Volos", "Pélion - Volos"
;Nome de Messénie
Data.s "Kalamata", "Kalamata"
Data.s "Messène", "Messène"
Data.s "Pylia", "Pylos"
Data.s "Triphylie", "Kyparissia"
;Nome de Pella
Data.s "Almopia", "Aridaia"
Data.s "Edesse", "Edessa"
Data.s "Giannitsa", "Giannitsa"
;Nome de Phocide
Data.s "Doride", "Lidoriki"
Data.s "Parnasside", "Amfissa"
;Nome de Phthiotide
Data.s "Phthiotide", "Lamia"
Data.s "Domokos", "Domokos"
Data.s "Lokroi", "Atalanti"
;Nome de Préveza
Data.s "Nicopolis & Parga", "Parga"
;Nome de Réthymnon
Data.s "Rethumna", "Réthymnon"
Data.s "Agios Vasilioq", "Lampi"
Data.s "Amari", "Amari"
Data.s "Mylopotamos", "Perema"
;Nome de Rhodope
Data.s "Komotini", "Komotini"
Data.s "Sapes", "Sapes"
;Nome de Samos
Data.s "Ikaria", "Agios Kyrikos"
Data.s "Samos", "Samos"
;Nome de Serrès
Data.s "Serrès", "Serrès"
Data.s "Visaltia", "Nigrita"
Data.s "Phylida", "Nea Zichni"
Data.s "Sindiki", "Sidirokastro"
;Nome de Thesprotie
Data.s "Filiates", "Filiates"
Data.s "Thyamis", "Igoumenitsa"
Data.s "Margariti", "Margariti"
Data.s "Souli", "Paramythia"
;Nome de Thessalonique
Data.s "Thessalonique", "Thessalonique"
Data.s "Langadas", "Langadas"
;Nome de Trikala
Data.s "Trikala", "Trikala"
Data.s "Kalambaka", "Kalambaka"
Data.s "STOP", "STOP"
;Slovaquie
Slovaquie:
Data.s "Bratislava", "Bratislava"
Data.s "Tmava", "Tmava"
Data.s "Trencin", "Trencin"
Data.s "Nitra", "Nitra"
Data.s "Zilina", "Zilina"
Data.s "Banska Bystrica", "Banska Bystrica"
Data.s "Presov", "Presov"
Data.s "Kosice", "Kosice"
Data.s "STOP", "STOP"
;Pologne
Pologne:
Data.s "Basse-Silésie", "Wroclaw"
Data.s "Basses-Carpates", "Rzeazow"
Data.s "Cujavie-Poméranie ", "Bydgoszcz"
Data.s "Grande-Pologne ", "Poznan"
Data.s "Lublin", "Lublin"
Data.s "Lubusz", "Gorzow Wielkopolski"
Data.s "Lodz", "Lodz"
Data.s "Mazovie", "Varsovie"
Data.s "Opole", "Opole"
Data.s "Petite-Pologne", "Cracovie"
Data.s "Podlachie", "Bialystok"
Data.s "Poméranie", "Gdansk"
Data.s "Poméranie occidentale", "Szczecin"
Data.s "Sainte-Croix", "Kielce"
Data.s "Silésie", "Katowice"
Data.s "Varmie-Mazurie", "Olsztyn"
Data.s "STOP", "STOP"
;Hongrie
Hongrie:
Data.s "Bacs-Kiskun", "Kecskemét"
Data.s "Baranya", "Pécs"
Data.s "Békés", "Békéscsaba"
Data.s "Borsod-Abauj-Zemplén", "Miskolc"
Data.s "Csongrad", "Szeged"
Data.s "Fejér", "Székesfehérvar"
Data.s "Győr-Moson-Sopron", "Gyor"
Data.s "Hajdu-Bihar", "Debrecen"
Data.s "Heves", "Eger"
Data.s "Jasz-Nagykun-Szolnok", "Szolnok"
Data.s "Komárom-Esztergom", "Tatabanya"
Data.s "Nógrád", "Salgotarjan"
Data.s "Pest", "Budapest"
Data.s "Somogy", "Kaposvar"
Data.s "Szabolcs-Szatmár-Bereg", "Nyíregyhaza"
Data.s "Tolna", "Szekszard"
Data.s "Vas", "Szombathely"
Data.s "Veszprém", "Veszprém"
Data.s "Zala", "Zalaegerszeg"
Data.s "STOP", "STOP"
;Tchéquie
Tchequie:
Data.s "Prague", "Prague"
Data.s "Bohême-du-Sud", "Ceské Budéjovice"
Data.s "Moravie du Sud", "Brno"
Data.s "Karlovy Vary", "Karlovy Vary"
Data.s "Hradec Kralové", "Hradec Kralové"
Data.s "Liberec", "Liberec"
Data.s "Moravie-Silésie", "Ostrava"
Data.s "Olomouc", "Olomouc"
Data.s "Pardubice", "Pardubice"
Data.s "Pilsen", "Pilsen"
Data.s "Bohême centrale", "Prague"
Data.s "Ustí nad Labem", "Ustí nad Labem"
Data.s "Vysočina", "Jihlava"
Data.s "Zlín", "Zlín"
Data.s "STOP", "STOP"
;Finlande
Finlande:
Data.s "Åland", "Mariehamn"
Data.s "Carélie du Nord", "Joensuu"
Data.s "Carélie du Sud", "Lappeenranta"
Data.s "Finlande-Centrale", "Jyväskylä"
Data.s "Finlande du Sud-Ouest", "Turku"
Data.s "Kainuu", "Kajaani"
Data.s "Kanta-Häme", "Hämeenlinna"
Data.s "Laponie", "Rovaniemi"
Data.s "Ostrobotnie", "Vaasa"
Data.s "Ostrobotnie-Centrale", "Kokkola"
Data.s "Ostrobotnie du Nord", "Oulu"
Data.s "Ostrobotnie du Sud", "Seinäjoki"
Data.s "Päijät-Häme", "Lahti"
Data.s "Pirkanmaa", "Tampere"
Data.s "Satakunta", "Pori"
Data.s "Savonie du Nord", "Kuopio"
Data.s "Savonie du Sud", "Mikkeli"
Data.s "Uusimaa", "Helsinki"
Data.s "Vallée de la Kymi", "Kouvola"
Data.s "STOP", "STOP"
;Chypre
Chypre:
Data.s "Nicosie", "Nicosie"
Data.s "Limassol", "Limassol"
Data.s "Larnaca", "Larnaca"
Data.s "Famagouste", "Famagouste"
Data.s "Paphos", "Paphos"
Data.s "Kyrenia", "Kyrenia"
Data.s "STOP", "STOP"
Drapeau_Europe:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Europe.png"
Drapeau_France:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_France.png"
Drapeau_Allemagne:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Allemagne.png"
Drapeau_Autriche:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Autriche.png"
Drapeau_Royaume_Uni:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Royaume_Uni.png"
Drapeau_Belgique:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Belgique.png"
Drapeau_Irlande:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Irlande.png"
Drapeau_Luxembourg:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Luxembourg.png"
Drapeau_Danemark:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Danemark.png"
Drapeau_Pays_Bas:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Pays_Bas.png"
Drapeau_Suede:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Suede.png"
Drapeau_Espagne:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Espagne.png"
Drapeau_Grece:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Grece.png"
Drapeau_Portugal:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Portugal.png"
Drapeau_Italie:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Italie.png"
Drapeau_Slovaquie:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Slovaquie.png"
Drapeau_Pologne:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Pologne.png"
Drapeau_Hongrie:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Hongrie.png"
Drapeau_Tchequie:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Tchequie.png"
Drapeau_Finlande:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Finlande.png"
Drapeau_Chypre:
IncludeBinary #PB_Compiler_FilePath + "\Drapeaux\Drapeau_Chypre.png"
Carte_UE_adhesion:
IncludeBinary "carte_UE_annees_adhesion.png"
Carte_Europe:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\union-europeenne.png"
Carte_France:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\France.png"
Carte_Allemagne:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\Allemagne.png"
Carte_Autriche:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\Autriche.png"
Carte_Royaume_Uni:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\Royaume_Uni.png"
Carte_Belgique:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\Belgique.png"
Carte_Irlande:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\Irlande.png"
Carte_Luxembourg:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\Luxembourg.png"
Carte_Danemark:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\Danemark.png"
Carte_Pays_Bas:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\Pays_Bas.png"
Carte_Suede:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\Suede.png"
Carte_Espagne:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\Espagne.png"
Carte_Grece:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\Grece.png"
Carte_Portugal:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\Portugal.png"
Carte_Italie:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\Italie.png"
Carte_Slovaquie:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\Slovaquie.png"
Carte_Pologne:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\Pologne.png"
Carte_Hongrie:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\Hongrie.png"
Carte_Tchequie:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\Tchequie.png"
Carte_Finlande:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\Finlande.png"
Carte_Chypre:
IncludeBinary #PB_Compiler_FilePath + "\Cartes\Chypre.png"
Musique_Menu:
IncludeBinary #PB_Compiler_FilePath + "le reve de la mer.Ogg"
Fin_Musique_Menu:
Musique:
IncludeBinary #PB_Compiler_FilePath + "l'eau c'est la vie.Ogg"
FinMusique:
EndDataSection
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
- JohnJohnsonSHERMAN
- Messages : 648
- Inscription : dim. 13/déc./2015 11:05
- Localisation : Allez, cherche...
- Contact :
Re: [Résolu] Revenir au départ d'un programme
Franchement bien ce code... c´est aéré, commenté, bien construit (enfin bref tout ce que je ne fait pas
)...
Bravo a toi micoute!
Je vais aller le regarder un peu sur pb et essayer de le tester (t´as pas un zip avec les images, ou un exe déja compilé?)
Pour en revenir a ton probléme, je pense que si tu veux revenir a un point du code (je suppose pour recharger de nouvelles données), sans pour autant fermer le programme, le mieux est sans doute de faire appel a une procédure ou a une macro (les macros me semblent une bonne alternative, tu met dedans le code pour charger tes données, et tu le rapelles ensuite quand tu en as besoin)
(PS : Euh t´as du passer du temps a écrire tous les noms de villes...)

Bravo a toi micoute!
Je vais aller le regarder un peu sur pb et essayer de le tester (t´as pas un zip avec les images, ou un exe déja compilé?)
Pour en revenir a ton probléme, je pense que si tu veux revenir a un point du code (je suppose pour recharger de nouvelles données), sans pour autant fermer le programme, le mieux est sans doute de faire appel a une procédure ou a une macro (les macros me semblent une bonne alternative, tu met dedans le code pour charger tes données, et tu le rapelles ensuite quand tu en as besoin)
(PS : Euh t´as du passer du temps a écrire tous les noms de villes...)
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.
CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
Votre expert national en bogage et segfaults.
CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
- Windows 10 x64 - PB 5.61 x64
- Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé