Tableau
Tableau
Bonjour !
Je suis en train d'apprendre le PureBasic et j'ai entrepris de faire une petite bataille navale.
Mon idée :
-un tableau de 20*20 (par exemple) si il n'y a rien j'y stocke 0, si il y a un bateau, 1.
-si l'utilisateur tire, j'augmente la valeur de 10, si une valeur de tableau est = ou supérieure à 10 le joueur à déjà tiré.
Le soucis, c'est que je me rends compte que les tableaux appelés par la fonction Dim ne sont en réalité que des listes !!
Existe-t-il des tableaux en deux dimensions ?
Merci d'avance
RobRock55
Je suis en train d'apprendre le PureBasic et j'ai entrepris de faire une petite bataille navale.
Mon idée :
-un tableau de 20*20 (par exemple) si il n'y a rien j'y stocke 0, si il y a un bateau, 1.
-si l'utilisateur tire, j'augmente la valeur de 10, si une valeur de tableau est = ou supérieure à 10 le joueur à déjà tiré.
Le soucis, c'est que je me rends compte que les tableaux appelés par la fonction Dim ne sont en réalité que des listes !!
Existe-t-il des tableaux en deux dimensions ?
Merci d'avance
RobRock55
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: Tableau
Comme cela 
Dim Tableau(20, 20)

Dim Tableau(20, 20)
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
- TazNormand
- Messages : 1297
- Inscription : ven. 27/oct./2006 12:19
- Localisation : Calvados (14)
Re: Tableau
Salut
un tableau en 2 dimensions se "taille" de cette façon :
Dim tableau.type(dim1,dim2)
bienvenu dans PureBasic en tout cas
Edit :
arf, grillé par LSI
un tableau en 2 dimensions se "taille" de cette façon :
Dim tableau.type(dim1,dim2)
bienvenu dans PureBasic en tout cas
Edit :
arf, grillé par LSI
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: Tableau
Et qu'en tu es juste grillé, tu deviens mangeable ou c'est pas encore assez cuit ?arf, grillé
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
- TazNormand
- Messages : 1297
- Inscription : ven. 27/oct./2006 12:19
- Localisation : Calvados (14)
Re: Tableau
Ah tout simplement lol
Merci beaucoup, et juste : incroyable la rapidité d'intervention
Encore merci et bonne journée !
RobRock55
Merci beaucoup, et juste : incroyable la rapidité d'intervention

Encore merci et bonne journée !
RobRock55
Re: Tableau
Les test tableaux sont-ils possibles ?
Code : Tout sélectionner
If montableau(0,0) = 1
; touché
else
; Dans l'eau
EndIf
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Re: Tableau
Testes et tu verras !
Mais la réponse est affirmative !
Mais la réponse est affirmative !
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
-
- Messages : 471
- Inscription : dim. 23/déc./2007 18:10
Re: Tableau
Salut.
Il faut que dans le menu "Débogueur -> Utiliser le débogueur" ce soit coché.
Et tu verras soit : "Touché" ou "Dans l'eau"
Code : Tout sélectionner
Dim montableau.i(20, 20)
montableau(0, 0) = 1 ; Valeur aux coordonnées x=0 y=0
If montableau(0, 0) = 1
Debug "Touché"
Else
Debug "Dans l'eau"
EndIf
Et tu verras soit : "Touché" ou "Dans l'eau"
Re: Tableau
Euh, ca n'a pas fonctionné, je réessaye ce soir et je vous tiens au courant merci 

Re: Tableau
Bon le test tableau marche, mais j'ai un problème dans mon code :
Et je n'ai aucun message !!
Je suppose que c'est normal, si vous pourriez me dire pourquoi je vous en serai reconnaissant
Code : Tout sélectionner
;*********************
;***Bataille navale***
;*********************
;Initialisation des variables
IDgagdget = 0
#Taille = 100
;Initialisation du tableau qui correspond à la grille de jeu
Dim grille_de_jeu_ennemie.b(2,2)
;Placement des bateaux (pour test)
grille_de_jeu_ennemie(1,1) = 1
OpenWindow(1,0,0,230,230,"Champ de bataille",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered)
;Création des gadgets
ButtonGadget(1,10,10,#Taille,#Taille,"A : 0")
ButtonGadget(2,20+#Taille,10,#Taille,#taille,"B : 0")
ButtonGadget(3,10,20+#Taille,#Taille,#Taille,"A : 1")
ButtonGadget(4,20+#Taille,20+#Taille,#Taille,#Taille,"B : 1")
Repeat
event = WaitWindowEvent()
If event = #PB_Event_Gadget
IDgagdget = EventGadget()
EndIf
If IDgadget = 1
If grille_de_jeu_ennemie(0,0) = 1
MessageRequester("Résultat","Touché")
Else
MessageRequester("Résultat","Dans l'eau !")
EndIf
EndIf
If Idgadget = 2
EndIf
If IDgadget = 3
EndIf
If IDgadget = 4
EndIf
Until event = #PB_Event_CloseWindow
CloseWindow(1)
Je suppose que c'est normal, si vous pourriez me dire pourquoi je vous en serai reconnaissant

-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: Tableau
Faute de frappe, tu as écris IDgagdget au lieu de IDgadget ligne 34
Mais il n'y a pas que cette erreur
Quand tu cliques sur le bouton 1, après tu as le message en boucle car IDgadget reste égale à 1, il faut que tu le remette à 0 à chaque tour de boucle
alors je change un peu l'écriture, c'est plus classique comme cela :
Mais il n'y a pas que cette erreur
Quand tu cliques sur le bouton 1, après tu as le message en boucle car IDgadget reste égale à 1, il faut que tu le remette à 0 à chaque tour de boucle
alors je change un peu l'écriture, c'est plus classique comme cela :
Code : Tout sélectionner
;*********************
;***Bataille navale***
;*********************
;Initialisation des variables
IDgagdget = 0
#Taille = 100
;Initialisation du tableau qui correspond à la grille de jeu
Dim grille_de_jeu_ennemie.b(2,2)
;Placement des bateaux (pour test)
grille_de_jeu_ennemie(1,1) = 1
OpenWindow(1,0,0,230,230,"Champ de bataille",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered)
;Création des gadgets
ButtonGadget(1,10,10,#Taille,#Taille,"A : 0")
ButtonGadget(2,20+#Taille,10,#Taille,#Taille,"B : 0")
ButtonGadget(3,10,20+#Taille,#Taille,#Taille,"A : 1")
ButtonGadget(4,20+#Taille,20+#Taille,#Taille,#Taille,"B : 1")
Repeat
event = WaitWindowEvent()
Select event
Case #PB_Event_Gadget
Select EventGadget()
Case 1
If grille_de_jeu_ennemie(0,0) = 1
MessageRequester("Résultat","Touché")
Else
MessageRequester("Résultat","Dans l'eau !")
EndIf
Case 2
Case 3
Case 4
EndSelect
EndSelect
Until event = #PB_Event_CloseWindow
CloseWindow(1)
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Re: Tableau
Essaye avec les "case", je trouve ça plus lisible
Code : Tout sélectionner
;*********************
;***Bataille navale***
;*********************
;Initialisation des variables
IDgagdget = 0
#Taille = 100
;Initialisation du tableau qui correspond à la grille de jeu
Dim grille_de_jeu_ennemie.b(2,2)
;Placement des bateaux (pour test)
grille_de_jeu_ennemie(1,1) = 1
OpenWindow(1,0,0,230,230,"Champ de bataille",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered)
;Création des gadgets
ButtonGadget(1,10,10,#Taille,#Taille,"A : 0")
ButtonGadget(2,20+#Taille,10,#Taille,#Taille,"B : 1")
ButtonGadget(3,10,20+#Taille,#Taille,#Taille,"A : 1")
ButtonGadget(4,20+#Taille,20+#Taille,#Taille,#Taille,"B : 0")
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case 1
If grille_de_jeu_ennemie(0,0) = 1
MessageRequester("Résultat","Touché")
Else
MessageRequester("Résultat","Dans l'eau !")
EndIf
Case 2
If grille_de_jeu_ennemie(1,1) = 1
MessageRequester("Résultat","Touché")
Else
MessageRequester("Résultat","Dans l'eau !")
EndIf
Case 3
Case 4
EndSelect
Case #PB_Event_CloseWindow
Select EventWindow()
Case 1
CloseWindow(1)
Break
EndSelect
EndSelect
ForEver
;
~~~~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: Tableau
Corrigé, mais le problème n'est pas là !! Il ne fait pas le MessageRequester()
EDIT : euh connais pas les cases ^^ Vais jeter un coup d'oeil dans l'aide de l'IDE
EDIT : euh connais pas les cases ^^ Vais jeter un coup d'oeil dans l'aide de l'IDE
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: Tableau
AR-S : tss, juste après moi, je poste et quand je visualise, et il y a ton message juste après, grillé pour un poil de c ....
Regarde ma réponse plus haut
Regarde ma réponse plus haut

Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]