Tableau

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Robrock55
Messages : 65
Inscription : lun. 01/févr./2010 17:04
Localisation : Meuse
Contact :

Re: Tableau

Message par Robrock55 »

Je vais regarder a quoi correspond les cases dans l'IDE (j'ai pas encore vu ca dans mon tuto et je crois pas qu'il y est ^^)
Au passage, je tourné avec le tuto de tripamort
Et le message en boucle donc il s'affiche pas... ok
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Message par TazNormand »

Salut

un case, cela te permet de tester plusieurs possibilités de valeurs d'une variable.
Prenons un exemple de test de variable contenant un animal, en "français" cela se traduit par :

Code : Tout sélectionner

variable Animal type chaîne
variable Cri type chaîne

SELON valeur de "Animal"
   CAS où Animal égal à "Chien"
      Cri = "Ouaf"
   CAS où Animal égal à "Chat"
      Cri = "Miaouh"
   CAS où Animal égal à "Canard"
      Cri = "Coin"
   CAS où Animal égal à Autre Chose
      Cri = "???"
FIN_SELON
Traduisible en Purebasic par :

Code : Tout sélectionner

Dim Animal.s
Dim Cri.s

Select Animal
   Case "Chien"
      Cri = "Ouaf"
   Case "Chat"
      Cri = "Miaouh"
   Case "Canard"
      Cri = "Coin"
   Default
      Cri = "???"
EndSelect
Concernant ton code, enfin plutôt celui du Soldat Inconnu, il marche bien, j'ai bien le messagerequester "dans l'eau" compte tenu que tu teste la valeur du tableau en (0,0) et que tu as affecté au tableau en (1,1)
Image
Image
Robrock55
Messages : 65
Inscription : lun. 01/févr./2010 17:04
Localisation : Meuse
Contact :

Re: Tableau

Message par Robrock55 »

Ok ok merci bien, je vais tester ca quand j'aurais le temps et je vous redirais, merci encore :)

(par contre je sens que j'aurais encore d'autre problèmes lol pas aussi simple que je ne le pensais, comme quoi faut pas se fier aux apparences !!!)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Tableau

Message par Ar-S »

rholala ça sent le cochon grillé à une minute près LSI :mrgreen:
Juste parce que j'ai rempli le Case 2 chuis sûr Image
~~~~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
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Tableau

Message par TazNormand »

Bon, je vais me coucher tard avec tout ça, mais voilà un exemple de ce que tu peux faire :

Code : Tout sélectionner

; Hit Me !!!
; Simili bataille navale

; ©.2010 TazNormand aka "il était temps que tu te serves de PB"



; Pas de procedures pour ne pas compliquer la compréhension
; les "bateaux" sont représentés par un gadget bouton sans label (texte), il ne font qu'un bouton de large/haut
; un bouton enfoncé le reste (désactivé)
; si un bateau se trouve sous le bouton enfoncé, le bouton voit un X dans son label
; quand tout les bateaux ont été trouvé et/ou que tous les boutons ont été cliqués ==> fin du jeu


; PureBasic Visual Designer v3.95 build 1485 (PB4Code)
;
;- Gadget Constants
;
Enumeration  
  #Button_01 =1
  #Button_02
  #Button_03
  #Button_04
  #Button_05
  #Button_06  
  #Button_07
  #Button_08
  #Button_09
  #Button_10
  #Button_11
  #Button_12
  #Button_13
  #Button_14
  #Button_15
  #Button_16
  #Button_17
  #Button_18
  #Button_19
  #Button_20
  #Button_21
  #Button_22
  #Button_23
  #Button_24
  #Button_25
  #Text_1
  #Text_2
  #Text_3
  #Text_4
  #Text_5  
  #Text_A
  #Text_B
  #Text_C
  #Text_D
  #Text_E
  #Text_NbTouch
  #Text_NbRest
  #Text_NbCoup
  #Text_LbT
  #Text_LbR
  #Text_LbC
  #Titre_Fenetre
EndEnumeration


Procedure Ouvre_Fenetre()
  If OpenWindow(#Titre_Fenetre, 340, 65, 184, 240, "Hit Me !!!",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
      ButtonGadget(#Button_01, 45, 35, 20, 20, "")
      ButtonGadget(#Button_02, 70, 35, 20, 20, "")
      ButtonGadget(#Button_03, 95, 35, 20, 20, "")
      ButtonGadget(#Button_04, 120, 35, 20, 20, "")
      ButtonGadget(#Button_05, 145, 35, 20, 20, "")
      ButtonGadget(#Button_06, 45, 60, 20, 20, "")
      ButtonGadget(#Button_07, 70, 60, 20, 20, "")
      ButtonGadget(#Button_08, 95, 60, 20, 20, "")
      ButtonGadget(#Button_09, 120, 60, 20, 20, "")
      ButtonGadget(#Button_10, 145, 60, 20, 20, "")
      ButtonGadget(#Button_11, 45, 85, 20, 20, "")
      ButtonGadget(#Button_12, 70, 85, 20, 20, "")
      ButtonGadget(#Button_13, 95, 85, 20, 20, "")
      ButtonGadget(#Button_14, 120, 85, 20, 20, "")
      ButtonGadget(#Button_15, 145, 85, 20, 20, "")
      ButtonGadget(#Button_16, 45, 110, 20, 20, "")
      ButtonGadget(#Button_17, 70, 110, 20, 20, "")
      ButtonGadget(#Button_18, 95, 110, 20, 20, "")
      ButtonGadget(#Button_19, 120, 110, 20, 20, "")
      ButtonGadget(#Button_20, 145, 110, 20, 20, "")
      ButtonGadget(#Button_21, 45, 135, 20, 20, "")
      ButtonGadget(#Button_22, 70, 135, 20, 20, "")
      ButtonGadget(#Button_23, 95, 135, 20, 20, "")
      ButtonGadget(#Button_24, 120, 135, 20, 20, "")
      ButtonGadget(#Button_25, 145, 135, 20, 20, "")      
      
      TextGadget(#Text_1, 20, 35, 20, 20, "1", #PB_Text_Center | #PB_Text_Border)
      TextGadget(#Text_2, 20, 60, 20, 20, "2", #PB_Text_Center | #PB_Text_Border)
      TextGadget(#Text_3, 20, 85, 20, 20, "3", #PB_Text_Center | #PB_Text_Border)
      TextGadget(#Text_4, 20, 110, 20, 20, "4", #PB_Text_Center | #PB_Text_Border)
      TextGadget(#Text_5, 20, 135, 20, 20, "5", #PB_Text_Center | #PB_Text_Border)
      TextGadget(#Text_A, 45, 15, 20, 20, "A", #PB_Text_Center | #PB_Text_Border)
      TextGadget(#Text_B, 70, 15, 20, 20, "B", #PB_Text_Center | #PB_Text_Border)
      TextGadget(#Text_C, 95, 15, 20, 20, "C", #PB_Text_Center | #PB_Text_Border)
      TextGadget(#Text_D, 120, 15, 20, 20, "D", #PB_Text_Center | #PB_Text_Border)
      TextGadget(#Text_E, 145, 15, 20, 20, "E", #PB_Text_Center | #PB_Text_Border)
      TextGadget(#Text_LbT, 25, 165, 95, 20, "Bateaux Touchés :")
      TextGadget(#Text_LbR, 25, 190, 95, 20, "Bateaux Restants :")
      TextGadget(#Text_LbC, 25, 215, 95, 20, "Nombre de coups :")
      TextGadget(#Text_NbTouch, 125, 165, 35, 20, "", #PB_Text_Border)
      TextGadget(#Text_NbRest, 125, 190, 35, 20, "", #PB_Text_Border)
      TextGadget(#Text_NbCoup, 125, 215, 35, 20, "", #PB_Text_Border)    
  EndIf
EndProcedure

; Structures
Structure Bateau
  Numero.b        ; N° du bateau
  Abscisse.b      ; Coordonnées horizontales (A,B,C,D ou E)
  Ordonnee.b      ; Coordonnées verticales (1,2,3,4 ou 5)
EndStructure

; Ouverture de l'écran
ecran=Ouvre_Fenetre()


; Variables
Dim Barques.Bateau(5)   ; Représente nos bateaux sur la grille, du type Bateau qu'on a défini ci-dessus
Dim Grille.b(5,5)       ; Représente la grille, qi nous permettra de savoir s'il y a un bateau en x,y


; C'est la que tout commence vraiment
Debut:

NbCoup.b=0              ; Nombre de coups joués
NbTouche.b=0            ; Nombre de coups gagnés
NbReste.b=5             ; Nombre de cases gagnantes restant à trouver, 25 au début
PosX.b=0                ; Position X et Y aléatoires
PosY.b=0
i.b=0                   ; variable compteur
j.b=0                   ; variable compteur
bat.b=1                 ; variable compteur

; Initialiser la grille
For i=1 To 5
  For j=1 To 5
    Grille(i,j)=0
  Next j
Next i

; Générer aléatoirement la position de 5 "bateaux" sur la grille
While Not bat>5   ; Tant que bat n'est pas > 5  
  Barques(bat)\Numero=bat    ; Comme on boucle 5 fois de 1 en 1, on affecte la valeur de "bat" à notre n° de barque
  PosX=Random(4)+1             ; Position en X aléatoire sur la grille (+1 au cas ou on aurait 0)
  PosY=Random(4)+1             ; Position en Y aléatoire sur la grille (+1 au cas ou on aurait 0)
  
  ; Tester si la place n'est pas déjà prise
  If Grille(PosX,PosY)=0        ; Rien à cet endroit, on affecte la position à un bateau
    Barques(bat)\Abscisse=PosX
    Barques(bat)\Ordonnee=PosY
    grille(PosX,PosY)=1         ; On "marque" la grille comme occupée à cet endroit
    bat+1                       ; et on passe au bateau suivant en incrémentant bat de 1
  EndIf

  ; Pas de else dans ce cas, car on recommence tant que la place est occupée
Wend

; On a nos 5 bateaux de positionnés, on peut attaquer la partie intéressante
SetGadgetText(#Text_NbTouch,"0")
SetGadgetText(#Text_NbCoup,"0")
SetGadgetText(#Text_NbRest,"5")

; Boucler tant qu'on a pas trouvé tous les bateaux et/ou qu'il ne reste plus de case à "cocher"

Repeat
  evenement=WaitWindowEvent() ; attendre un évenement type clic sur bouton

  Select evenement  
		Case #PB_Event_Gadget
		  QuelGadget=EventGadget()
		  
		  
		  ; Incrémenter le nombre de coups
		  NbCoup+1
		  
		  ; astuce : on sait que nos gadgets(boutons) sont répertoriés de 1 à 25 (cf énumération)
			; on va donc se servir de cela pour tester si le bouton "cache" un bateau
			
			; Pour les Pos X, faire un module (%) du n° de gadget par 5
			 BtnX=QuelGadget % 5
			 If BtnX = 0 ; si le modulo donne 0, alors on est sur la 5eme colonne (la colonne E)
			  BtnX=5
			 EndIf
			
			; Pour les pos Y, il faut tester en fonction du n° de gadget
			Select QuelGadget
			  Case 1 To 5
			    BtnY=1
			   Case 6 To 10
			    BtnY=2
			   Case 11 To 15
			    BtnY=3
			   Case 16 To 20
			    BtnY=4
			   Case 21 To 25
			    BtnY=5
			EndSelect
			  
			If Grille(BtnX,BtnY)=1
			  ; Touché !!! On incrémente le nb de touché, on décrémente le nb de coups restants
			  ; On inscrit un X
			  NbTouche+1
			  NbReste-1
			  
			  SetGadgetText(QuelGadget,"X")			  
			  SetGadgetText(#Text_NbTouch,Str(NbTouche))        
        SetGadgetText(#Text_NbRest,Str(NbReste))
			EndIf
			
			; Dans tous les cas on le désactive
			DisableGadget(QuelGadget,1)
			SetGadgetText(#Text_NbCoup,Str(NbCoup))
			
		;Case #PB_Event_CloseWindow
			;Select EventWindow()
				;Case 1
					;CloseWindow(1)
					;Break
			;EndSelect
	EndSelect
Until evenement=#PB_Event_CloseWindow Or NbTouche=5

If Nbcoup<25 ; Gagné sans avoir découvert toutes les cases
  msg=MessageRequester("Gagné !!!","Bravo, vous avez décimé la flotte ennemie, Rejouer ?",#PB_MessageRequester_YesNo)
 Else
  msg=MessageRequester("Perdu !!!","Vous avez été obligé de cliquer sur toutes les cases, Rejouer ?",#PB_MessageRequester_YesNo)
EndIf

If msg=#PB_MessageRequester_Yes
  ; Remettre tous les boutons à leur état initial
  For i=1 To 25
    DisableGadget(i,0)
    SetGadgetText(i,"")
  Next i
  Goto Debut
EndIf

; Sinon on se casse
CloseWindow(#Titre_Fenetre)
End
Image
Image
Robrock55
Messages : 65
Inscription : lun. 01/févr./2010 17:04
Localisation : Meuse
Contact :

Re: Tableau

Message par Robrock55 »

Pas de procédures pour ne pas compliquer la compréhension, c'est quoi ce petit procédure alors ? :mrgreen:
Perso, j'essaie avec les tableaux histoire de comprendre un peu le stockage de données :)

Voici mon code actuel

Code : Tout sélectionner

;****************************
;*** Bataille navale v0.2 ***
;****************************


;Initialisation des variables
#Taille_bouton = 100
a = 1
b = 1
Colonegadget = 0
Lignegadget = 0
Numerogadget = 1
IDgadget = 0
x = 5
y = 5


;Création du tableau
Dim grille1.b(x,y)


;Affectation des bateaux
grille1(0,0) = 1
grille1(4,4) = 1


OpenWindow(1,0,0,(#Taille_bouton+10)*x+10,(#Taille_bouton+10)*y+10,"Champ de bataille",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered)


;Création des 25 gadgets
For b=1 To y 
  For a=1 To x
    ButtonGadget(Numerogadget,(#Taille_bouton+10)*Lignegadget+10,(#Taille_bouton+10)*Colonegadget+10,#Taille_bouton,#Taille_bouton,"")
    Lignegadget = Lignegadget + 1
    Numerogadget = Numerogadget + 1
  Next a
  Colonegadget = Colonegadget + 1
  Lignegadget = 0
Next b


Repeat

event = WaitWindowEvent()

Until event = #PB_Event_CloseWindow

CloseWindow(1)
Après il faut que je m'occupe de la relation boutton et tableau et les tests etc...


Mais ton code Taznormand, c'est pas de la POO ?
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Tableau

Message par TazNormand »

Oui, c'est vrai qu'il y a une procédure, celle générée par l'éditeur visuel.

Et non, c'est pas franchement de la Programmation Orientée Objet, mais du bon vieux code procédurale (sans procédure :? )

Il faut savoir qu'un programme avec des goto/gosub/return à l'ancienne est dit abusivement procédural, c'est à dire qu'on des "espèces" de procédures/sous-programmes.

vas jeter un oeil ici pour connaître les différents type de programmation : Wikipedia La programmation
Image
Image
Robrock55
Messages : 65
Inscription : lun. 01/févr./2010 17:04
Localisation : Meuse
Contact :

Re: Tableau

Message par Robrock55 »

Voilà je l'ai finis !!! :D
Bon aspect graphique c'est pas le top c'est vrai :mrgreen:

Manque plus que le placement des bateaux et d'un mode deux joueurs :p


http://www.mediafire.com/?zjymzt0i22n
Robrock55
Messages : 65
Inscription : lun. 01/févr./2010 17:04
Localisation : Meuse
Contact :

Re: Tableau

Message par Robrock55 »

Salut à tous !!!!

Ma petite bataille navale avance petit à petit. Je travaille actuellement le placement aléatoire des bateaux.

Code : Tout sélectionner

m = Random(x-3)
n = Random(y-3)
o = Random(10)
Debug o
grille1(m,n) = 4
 If o > 4 
   grille1(m,n+1) = 4
   grille1(m,n+2) = 4
   grille1(m,n+3) = 4
 Else
   grille1(m+1,n) = 4
   grille1(m+2,n) = 4
   grille1(m+3,n) = 4
 EndIf
 
m = Random(x-2)
n = Random(y-2)
o = Random(10)
Debug o
grille1(m,n) = 3
 If o > 4 
   grille1(m,n+1) = 3
   grille1(m,n+2) = 3
 Else
   grille1(m+1,n) = 3
   grille1(m+2,n) = 3
 EndIf 
 
m = Random(x-2)
n = Random(y-2)
o = Random(10)
Debug o
 grille1(m,n) = 2
 If o > 4 
   grille1(m,n+1) = 2
   grille1(m,n+2) = 2
 Else
   grille1(m+1,n) = 2
   grille1(m+2,n) = 2
 EndIf 
   
m = Random(x-1)
n = Random(y-1)
o = Random(10)
Debug o
 grille1(m,n) = 1
 If o > 4 
   grille1(m,n+1) = 1
 Else
   grille1(m+1,n) = 1
 EndIf
J'ai fait ca pour placer 4 bateaux : un de 2, deux de 3 et un de 4.

Mais j'ai la mauvaise impression que certain bateaux s'emboitent et que mon code est quelque peu... minable, je pense que j'aurai pu faire avec des boucles, histoire que ca soit plus clair et plus simple.

Alors la question qui se pose, ai-je bien fait avec mon code actuel ? Comment auriez-vous fait ?

PS : les debug o sont pour un test perso
Robrock55
Messages : 65
Inscription : lun. 01/févr./2010 17:04
Localisation : Meuse
Contact :

Re: Tableau

Message par Robrock55 »

up :mrgreen:
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: Tableau

Message par case »

ca n'as pas l'air de bien fonctionner ton code ;)
il doit manquer un truc je pense
ImageImage
Robrock55
Messages : 65
Inscription : lun. 01/févr./2010 17:04
Localisation : Meuse
Contact :

Re: Tableau

Message par Robrock55 »

Tu sais ce qu'il manque ou tu me torture en me laissant chercher ? :mrgreen:
Good07
Messages : 308
Inscription : ven. 23/avr./2004 18:08
Localisation : Hérault 34190 Laroque

Re: Tableau

Message par Good07 »

Bonjour,

Je n'ai pas exécuté le code en entier, mais rien que la première ligne me fait douté qu'il fonctionne.
Exécute ce code en mode débug et tu devrais comprendre:

Code : Tout sélectionner

 m=random(x-3)
debug m
Puis regarde dans l'aide la fonction random, c'est pas compliqué.
Robrock55
Messages : 65
Inscription : lun. 01/févr./2010 17:04
Localisation : Meuse
Contact :

Re: Tableau

Message par Robrock55 »

Il te manque une grande partie du code. Entre autre :

Code : Tout sélectionner

;*************************************************
;*** Bataille Navale v1.0 codée par RobRock 55 ***
;*************************************************


;-Initialisation des variables
#taille = 70
colf = RGB(36,192,255)
IDgadget = 0
nbbateau = 4
colonegadget = 0
lignegadget = 0
numerogadget = 0
x.b = 10 : y.b = 10 ;Dimension du tableau
i.b = 0 : j.b = 0 : k.b = 0 ; Pour test dans le tableau
m.b = 0 : n.b = 0 : o.b = 0;¨Pour affectation aléatoire des bateaux
a.b = 1 : b.b = 1 ; Pour boucle for/next des créations de gadgets
c.b = 3 ;Pour boucle de vérification si coulé


;-Chargement des images
LoadImage(1,"Touché.bmp")
LoadImage(2,"Dansleau.bmp")

;-Création des tableaux
Dim grille1.b(x,y)


;-Affectation des bateaux

m = Random(x-3)
n = Random(y-3)
o = Random(10)
grille1(m,n) = 4
 If o > 4 
   grille1(m,n+1) = 4
   grille1(m,n+2) = 4
   grille1(m,n+3) = 4
 Else
   grille1(m+1,n) = 4
   grille1(m+2,n) = 4
   grille1(m+3,n) = 4
 EndIf
 
m = Random(x-2)
n = Random(y-2)
o = Random(10)
grille1(m,n) = 3
 If o > 4 
   grille1(m,n+1) = 3
   grille1(m,n+2) = 3
 Else
   grille1(m+1,n) = 3
   grille1(m+2,n) = 3
 EndIf 
 
m = Random(x-2)
n = Random(y-2)
o = Random(10)
 grille1(m,n) = 2
 If o > 4 
   grille1(m,n+1) = 2
   grille1(m,n+2) = 2
 Else
   grille1(m+1,n) = 2
   grille1(m+2,n) = 2
 EndIf 
   
m = Random(x-1)
n = Random(y-1)
o = Random(10)
 grille1(m,n) = 1
 If o > 4 
   grille1(m,n+1) = 1
 Else
   grille1(m+1,n) = 1
 EndIf


;-Procédure pour test quand l'utilisateur tire
Procedure test_bateau()

Shared IDgadget : Shared x : Shared y : Shared nbbateau : Shared c : Shared grille1() ;Récupération des variables et des tableaux

i = Int(IDgadget/x)        ;calculs pour relation entre le boutton et le tableau
j = IDgadget%x
k = grille1(i,j)
If grille1(i,j) >= 5
  MessageRequester("Résultat :","Déjà tiré !")
 ElseIf grille1(i,j) >= 1
  grille1(i,j) = grille1(i,j) + 5
  SetGadgetAttribute(IDgadget,#PB_Button_Image,ImageID(1))
 
  For c = 1 To 3
  If i-c >= 0
    
    If grille1(i-c,j) = k
      Goto label
    Else
    EndIf
   
  EndIf
  
  If j-c >= 0
    
    If grille1(i,j-c) = k
      Goto label
    Else
    EndIf
  
  EndIf
  
  If i+c <= x
  
    If grille1(i+c,j) = k
      Goto label
    Else
    EndIf
    
  EndIf
  
  If j+c <= y
    
    If grille1(i,j+c) = k
      Goto label
    Else
    EndIf
    
  EndIf
  Next c 
  MessageRequester("Résultat :","Coulé !")
  nbbateau = nbbateau -1  
 Else
  grille1(i,j) = grille1(i,j) + 5
  SetGadgetAttribute(IDgadget,#PB_Button_Image,ImageID(2))
 EndIf
label:
EndProcedure


;-Ouverture fenêtre
OpenWindow(1,0,0,(#taille+10)*x+10,(#taille+10)*y+10,"Champ de bataille",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered)
SetWindowColor(1,colf)


;-Création gadgets
For b=1 To y
  For a=1 To x
    ButtonImageGadget(numerogadget,(#taille+10)*colonegadget+10,(#taille+10)*lignegadget+10,#taille,#taille,0)
    numerogadget = numerogadget+1
    colonegadget = colonegadget + 1
   Next a
  colonegadget = 0
  lignegadget = lignegadget + 1
  a = 1
Next b


;-Boucle fenêtre
Repeat 
event = WaitWindowEvent()

  If event = #PB_Event_Gadget     ; Si un gadget et utilisé
    IDgadget = EventGadget()      ; Je retourne son ID dans la variable IDgadget
    test_bateau()
    If nbbateau = 0
      MessageRequester("","Bravo !!! Vous avez gagné !!!")
      Break
    EndIf  
  Else
    IDgadget = 0
  EndIf
 
 
Until  event = #PB_Event_CloseWindow
CloseWindow(1)
Good07
Messages : 308
Inscription : ven. 23/avr./2004 18:08
Localisation : Hérault 34190 Laroque

Re: Tableau

Message par Good07 »

Si tu as des chevauchement de bateaux, je pense que c'est normal, car tu ne testes pas si il y a déjà quelque chose dans les cases. Il faut tester dans ton tableau les lignes et les colonnes pour savoir si un bateau est déjà présent dans la ligne ou la colonne qui est tiré au hasard.
Enfin c'est mon avis.
Répondre