Forum Liberty Basic France
• Index
Ca marche...de plus en plus mieux.
Je mets le résultat final ici pour les pressés (c'est du "cassiope"):
http://libertybasic.fr/upload/chainreaction.bas
Le jeu consistait en ceci; Chaque case peut contenir au maximum un nombre de pions égal au nombre de case qui l'entourent (2 pour les cases des coins, 3 pour les cases des cotés, 4, pour les cases centrales). une couleur "ordi", une couleur "joueur"
Le joueur et l'ordi peuvent mettre des pions dans n'importe quelle case. Quand la case est pleine, elle explose en se vidant de ses pions, qu'elle réparti dans les cases voisines, en mangeant les pions de l'adversaire qui s'y trouvent.
Je vais essayer de mettre en " tout souris "
Code JB :
Edité par Roland Le 12/06/2012 à 22h25
Je mets le résultat final ici pour les pressés (c'est du "cassiope"):
http://libertybasic.fr/upload/chainreaction.bas
Le jeu consistait en ceci; Chaque case peut contenir au maximum un nombre de pions égal au nombre de case qui l'entourent (2 pour les cases des coins, 3 pour les cases des cotés, 4, pour les cases centrales). une couleur "ordi", une couleur "joueur"
Le joueur et l'ordi peuvent mettre des pions dans n'importe quelle case. Quand la case est pleine, elle explose en se vidant de ses pions, qu'elle réparti dans les cases voisines, en mangeant les pions de l'adversaire qui s'y trouvent.
Je vais essayer de mettre en " tout souris "
Code JB :
nomainwin NbXmax = 4 'nombre de case en X NbYmax = 4 'nombre de case en Y (pas utile si la grille est carré ;) ) dc = 53 'dimension d'une case en pixels MapWidth = NbXmax*dc MapHeight = NbYmax*dc WindowWidth = MapWidth+125 WindowHeight = MapHeight+140 UpperLeftX = (DisplayWidth-WindowWidth) / 3 UpperLeftY = (DisplayHeight-WindowHeight) / 2 ncx = int(MapWidth/dc) 'nb of X cells ncy = int(MapHeight/dc) 'nb of Y cells dim cell(ncx,ncy) statictext #w.txt "",10,12,280,25 BUTTON #w.grid, "Grid", [grid], UL, WindowWidth-60, 40, 50, 25 BUTTON #w.go, "Start", [start], UL, WindowWidth-60, 70, 50, 25 BUTTON #w.go, "Go", [go], UL, WindowWidth-60, 100, 50, 25 TEXTBOX #w.mess, 5, 260, 220, 25 TEXTBOX #w.rep, 230, 260, 25, 25 TEXTBOX #w.x, 260, 255, 25, 25 TEXTBOX #w.y, 289, 255, 25, 25 statictext #w "Joueur Violet", 240, 190, 90, 20 statictext #w "Ordi Rouge", 250, 215, 80, 20 statictext #w.tx "X", 270, 235, 20, 20 statictext #w.ty "Y", 295, 235, 20, 20 statictext #w.rp "Reponse ^^ --> Go", 178, 290, 150, 25 graphicbox #w.map, 5, 40, MapWidth, MapHeight open " TEST GRID Coord..." for graphics_nf_nsb as #w #w "trapclose [quit]" [new] #w.map "down; fill black" #w.map "backcolor lightgray; color yellow"' #w.map "when mouseMove [coord]" ' #w.map "when leftButtonDown [Mark]" ' ini ---------------------------------------------------- PRINT #w.mess, "" dim b(6,6): dim c(4,4): dim d(4,4): dim e(4,4): dim f(4,4) dim z$(3): k=4 x0=0: y0=0 z$(1)= "backcolor 126 0 200" 'Violet joueur z$(2)= "backcolor 255 62 62" 'rouge z$(3)= "backcolor lightgray" goto [grid] wait [coord] mX = int(MouseX/dc) mY = int(MouseY/dc) gosub [infos] wait [grid] grid = grid+1-2*(grid=1) '0 -> 1 -> 0 -> 1 -> 0 etc... gosub [DispMap] '[Mark] ' print #w.map,z$(p) ' #w.map "place ";xx*dc;" ";yy*dc;"; boxfilled ";xx*dc+dc;" ";yy*dc+dc ' ICI RENDRE LA MAIN A L'ORDI (quand entrée souris au point) wait [DispMap] gosub [infos] if grid then #w.map "backcolor lightgray; color lightgray" else #w.map "backcolor black; color black" end if for y=1 to ncy #w.map "place 0 ";y*dc;"; goto ";MapWidth;" ";y*dc next for x=1 to ncx #w.map "place ";x*dc;" 0; goto ";x*dc;" ";MapHeight next #w.map "flush; discard" return wait 'ça commence ici********************************************** [start] goto [aaa8000] [aaa100] gosub [aaa3000] [aaa105] gosub [aaa2000] [aaa110] i=0 for y= 1 to k for x=1 to k gosub [aaa500] if a > b(x,y) then goto [aaa170] if pl=1 then 'print at x0+xk*x,y0+yk*y;" "; xx=x-1: yy=y-1 print #w.map,z$(3) 'vide cases '+++++++++++++++++++++++++++++++++ #w.map "place ";xx*dc;" ";yy*dc;"; boxfilled ";xx*dc+dc;" ";yy*dc+dc end if gosub [aaa1000] if u=0 then return [aaa170] next x next y if i=1 then goto [aaa110] gosub [aaa1500] return [aaa500] if x <> 1 AND x <> k AND y <> 1 and y <> k then a=4: return if x=y or x+y=k+1 then a=2: return end if a=3: return [aaa1000] if y=k then goto [aaa1040] b(x,y+1)=b(x,y+1)+1 d(x,y+1)=1 if pl=1 then 'print at x0+xk*x,y0+yk*(y+1); paper z(p);b(x,y+1) xx=x-1: yy=(y+1)-1 print #w.map,z$(p) '++++++++++++++++++++++++++++++++++++++++++++++++++ #w.map "place ";xx*dc;" ";yy*dc;"; boxfilled ";xx*dc+dc;" ";yy*dc+dc #w.map "place ";xx*dc+dc/2;" ";yy*dc+dc/2 bb=b(x,y+1) #w.map "color white" print #w.map, "\";bb end if [aaa1040] if y=1 then goto [aaa1080] b(x,y-1)=b(x,y-1)+1 d(x,y-1)=1 if pl=1 then 'print at x0+xk*x,y0+yk*(y-1);paper z(p);b(x,y-1) xx=x-1: yy=(y-1)-1 print #w.map,z$(p) '++++++++++++++++++++++++++++++++++++++++++++++++++ #w.map "place ";xx*dc;" ";yy*dc;"; boxfilled ";xx*dc+dc;" ";yy*dc+dc #w.map "place ";xx*dc+dc/2;" ";yy*dc+dc/2 bb=b(x,y-1) #w.map "color white" print #w.map, "\";bb end if [aaa1080] if x=k then goto [aaa1120] b(x+1,y)=b(x+1,y)+1 d(x+1,y)=1 if pl=1 then 'print at x0+xk*(x+1),y0+yk*y;paper z(p);b(x+1,y) xx=(x+1)-1: yy=y-1 print #w.map,z$(p) '++++++++++++++++++++++++++++++++++++++++++++++++++ #w.map "place ";xx*dc;" ";yy*dc;"; boxfilled ";xx*dc+dc;" ";yy*dc+dc #w.map "place ";xx*dc+dc/2;" ";yy*dc+dc/2 bb=b(x+1,y) #w.map "color white" print #w.map, "\";bb end if [aaa1120] if x=1 then goto [aaa1160] b(x-1,y)=b(x-1,y)+1 d(x-1,y)=1 [aaa1150] if pl=1 then 'print at x0+xk*(x-1),y0+yk*y;paper z(p);b(x-1,y); xx=(x-1)-1: yy=y-1 print #w.map,z$(p) '++++++++++++++++++++++++++++++++++++++++++++++++++ #w.map "place ";xx*dc;" ";yy*dc;"; boxfilled ";xx*dc+dc;" ";yy*dc+dc #w.map "place ";xx*dc+dc/2;" ";yy*dc+dc/2 bb=b(x-1,y) #w.map "color white" print #w.map, "\";bb end if [aaa1160] i=1:b(x,y)=0 e(x,y)=e(x,y)+1 [aaa1180] gosub [aaa2300] return [aaa1500] for m=1 to k for n=1 to k if e(m,n) <> 0 or d(m,n)=1 then c(m,n)=b(m,n)*t next n next m return [aaa2000] for m=1 to k for n=1 to k b(m,n)= abs(c(m,n)) next n next m return [aaa2300] u=0 for m=1 to k for n=1 to k if e(m,n)<3 then u=1: m=k: n=k next n next m if u=0 and pl=1 then goto [aaa9500] return [aaa3000] for m=1 to k for n=1 to k c(m,n)=f(m,n) next n next m return [aaa4000] for m=1 to k for n=1 to k f(m,n)=c(m,n) next n next m return [aaa5000] so=0 for x=1 to k for y=1 to k so=so+c(x,y) gosub [aaa500] if c(x,y) <> a-1 then goto [aaa5170] so=so-2 if x=k then goto [aaa5080] x=x+1 gosub [aaa500] x=x-1 if c(x+1,y)=a-1 then so=so+10 [aaa5080] if x=1 then goto [aaa5110] x=x-1 gosub [aaa500] x=x+1 if c(x-1,y)=a-1 then so=so+10 [aaa5110] if k=y then goto [aaa5140] y=y+1 gosub [aaa500] y=y-1 if c(x,y+1)=a-1 then so=so+10 [aaa5140] if y=1 then goto [aaa5170] y=y-1 gosub [aaa500] y=y+1 if c(x,y-1)=a-1 then so=so+10 [aaa5170] next y next x return [aaa7000] for m=1 to k for n=1 to k d(m,n)=0: e(m,n)=0 next n next m return [aaa8000] dnr=int((rnd(1)*5) + 1)/10 redim b(6,6): redim c(4,4): redim d(4,4): redim e(4,4) redim f(4,4) k=4: gosub [aaa7000] for m=1 to 4 for n=1 to 4 f(m,n)=0 next n next m x0=4: xk=2: y0=11: yk=2 xp=8*y0+12: yp=175-(8*x0+12) z$(1)= "backcolor 126 0 200" 'joueur violet z$(2)= "backcolor 255 62 62" 'ordi rouge z$(3)= "backcolor lightgray"' couleur=================== [aaa8200] k= 4 'val(k$) [aaa8400] print #w.mess, "Qui débute ordi (O) joueur (J) ? >" 'DEBUT...DEBUT...DEBUT wait [go] print #w.rep, "!contents? var$" b$ = var$ if b$="J" or b$="j" then goto [aaa8600] if b$ = "O" or b$ = "o" then goto [aaa8800] wait [aaa8600] PRINT #w, "PLACE 5 300" ' Entrée X façon Amstrad PRINT #w, "\Entrez X au CLAVIER" PRINT #w, "when characterInput [inputed1]" [loop1] print #w, "setfocus" scan goto [loop1] [inputed1] key$ = Inkey$ g=val(key$) if g<>1 and g<>2 and g<>3 and g<>4 then goto [loop1] print #w.x, str$(g) PRINT #w, "PLACE 5 300" ' Entrée Y façon Amstrad PRINT #w, "\au CLAVIER Entrez Y " PRINT #w, "when characterInput [inputed2]" [loop2] scan goto [loop2] [inputed2] key$ = Inkey$ h=val(key$) if h<>1 and h<>2 and h<>3 and h<>4 then goto [loop2] print #w.y, str$(h) '""""""""""""""""""""""""""""""""""""""""""""""Premier coup Joueur f(g,h)=f(g,h)+1: t=1: p=1: pl=1 gosub [aaa9900] gosub [paus] gosub [aaa100] gosub [aaa7000] gosub [aaa4000] [aaa8800] t=-1: p=2: pl=0 ' print #w.mess, "c'est a moi!" print #w.rep, "" '#w.map "when leftButtonDown" 'désactive mouse st=1000 for q=1 to k for w=1 to k if f(q,w)>0 then goto [aaa8930] gosub [aaa3000] c(q,w)=c(q,w)-1 gosub [aaa105] gosub [aaa7000] gosub [aaa5000] if so<st then st=so: v=q: z=w: goto [aaa8930] if so <> st then goto [aaa8930] if dnr > 0.5 then st=so: v=q: z=w 'si > 0.5 boucle infinie à voir [aaa8930] next w next q '''print at 18,14;"X: "; v; '$$$$$$$$$$$$$$$ '''print at 19,14;"Y: "; z; '$$$$$$$$$$$$$$$ gosub [aaa3000] f(v,z)=f(v,z)-1 g=v: h=z:gosub [aaa9900] pl=1: gosub [aaa100] gosub [aaa7000] gosub [aaa4000] gosub [aaa8600] [aaa9500] if t=1 then print #w.mess, "bravo! on rejoue o/n)" wait end if print #w.mess, "perdu! on rejoue o/n)" wait [aaa9900] 'print at x0+xk*g,y0+yk*h;paper z(p);abs( f(g,h) xx=g-1: yy=h-1 print #w.map,z$(p) '+++++++++++++++++++++++++++++++++++++++++++++++++ #w.map "place ";xx*dc;" ";yy*dc;"; boxfilled ";xx*dc+dc;" ";yy*dc+dc #w.map "place ";xx*dc+dc/2;" ";yy*dc+dc/2 bb=abs( f(g,h)) #w.map "color white" print #w.map, "\";bb return wait 'ça fini là------------------------------------------------- [infos] #w.txt "pixels : ";MouseX;" / ";MouseY;_ " Cell ( ";mX+1;" , ";mY+1;" )" return [paus] timer 500, [temps] wait [temps] timer 0 return [quit] close #w end wait
Edité par Roland Le 12/06/2012 à 22h25
____________________
Roro
Roro
Roland:
En suivant ces explications, je trouve le jeu en lui-même assez bizarre, mais le coder représente un sacré défi puisqu'à mon avis il oblige à utiliser la récursivité.
Code VB :
Edité par cassiope01 Le 14/06/2012 à 12h47
Le jeu consistait en ceci; Chaque case peut contenir au maximum un nombre de pions égal au nombre de case qui l'entourent (2 pour les cases des coins, 3 pour les cases des cotés, 4, pour les cases centrales). une couleur "ordi", une couleur "joueur"
Le joueur et l'ordi peuvent mettre des pions dans n'importe quelle case. Quand la case est pleine, elle explose en se vidant de ses pions, qu'elle réparti dans les cases voisines, en mangeant les pions de l'adversaire qui s'y trouvent.
Le joueur et l'ordi peuvent mettre des pions dans n'importe quelle case. Quand la case est pleine, elle explose en se vidant de ses pions, qu'elle réparti dans les cases voisines, en mangeant les pions de l'adversaire qui s'y trouvent.
En suivant ces explications, je trouve le jeu en lui-même assez bizarre, mais le coder représente un sacré défi puisqu'à mon avis il oblige à utiliser la récursivité.
Code VB :
' http://libertybasic.fr/forum/topic-135-1-0-1352+un-code-spaghetti.php#go_bottom ' by cassiope01 Juin 13 2012 nomainwin GLOBAL player, dc, offset ncx = 10 ' nbr of cells X ncy = 10 ' nbr of cells Y dc = 50 ' size of a cell in pixels MapWidth = ncx*dc+int(dc/ncx) MapHeight = ncy*dc+int(dc/ncy) WindowWidth = MapWidth + 15 WindowHeight = MapHeight + 75 UpperLeftX = (DisplayWidth-WindowWidth) / 3 UpperLeftY = (DisplayHeight-WindowHeight) / 2 mois$ = "Janvier Février Mars Avril Mai Juin Juillet Août Septembre Octobre Novembre Décembre" today$ = date$("mm/dd/yyyy") j = date$(today$) jsem$ = word$("Mardi Mercredi Jeudi x Vendredi Samedi x Dimanche Lundi",int((j/7-int(j/7))*10)+1) date$ = jsem$+" "+mid$(today$,4,2)+" "+word$(mois$, val(today$))+" "+right$(today$,4)+" "+left$(time$(),5) dirX(1) = 0 : dirY(1) = -1 'up dirX(2) = 1 : dirY(2) = 0 'right dirX(3) = 0 : dirY(3) = 1 'down dirX(4) = -1 : dirY(4) = 0 'left fcl$ = "26 72 43" 'vert foncé ft$ = "Courier_New 20 bold" dim cell(ncx,ncy) ' -1, 0, 1, 2 ou 3 (à 4 maxi elle explose ) dim XY.cell$(ncx,ncy) ' ses coordonnées "xx,yy" donc limite à 99 x 99 dim arround.cell$(ncx,ncy) '"xxyy xxyy xxyy xxyy" coordonnées des 4 (maxi) cases voisines dim arround.cell(ncx,ncy) ' combien elle a de cases voisines dim player.cell(ncx,ncy) ' 0, 1 ou 2 a quel joueur elle appartient en ce moment dim color.cell$(2) ' 0 = couleur neutre, 1 = couleur joueur1, 2 = couleur joueur2 player = 1 color.cell$(0) = "darkgreen" color.cell$(1) = "blue" color.cell$(2) = "red" offset = int(dc/(ncx+1)) statictext #w.txt "",10,12,MapWidth,20 graphicbox #w.map, 5, 40, MapWidth, MapHeight OPEN " CHAIN REACTION... "+space$(15)+date$ for window_nf as #w 'graphics_nf_nsb #w "trapclose [quit]" #w.map "down; fill ";fcl$ #w.map "font ";ft$ gosub [initGame] ' #w.map "when mouseMove [coord]" ' MouseX, MouseY pixels #w.map "when leftButtonDown [Mark]" ' x,y cell wait [coord] mX = int((MouseX-offset)/dc)+1 mY = int((MouseY-offset)/dc)+1 gosub [infos] wait [Mark] if cell(mX,mY) > -1 then 'exist in the gameboard playerOpp = player + 1 -2 * (player = 2) if player.cell(mX,mY) <> playerOpp then player.cell(mX,mY) = player ' player is the new owner cell(mX,mY) = cell(mX,mY) + 1 if cell(mX,mY) = arround.cell(mX,mY) then chaine$ = XY.cell$(mX,mY) gosub [recurse] else call dispCell mX,mY end if #w.map "flush ; discard" if FIN then CONFIRM "Player "+color.cell$(FIN)+" WIN !! "+chr$(13)+chr$(13)+" NEW GAME ?"; answer$ if answer$ = "yes" then gosub [initGame] else [quit] end if player = player + 1 -2 * (player = 2) ' change player end if end if wait [recurse] ' recursivity ????? if chaine$ <> "" and FIN = 0 then cx = val(left$(chaine$,2)) cy = val(mid$(chaine$,3,2)) cell(cx,cy) = 0 ' explode... player.cell(cx,cy) = 0 ' become neutral call dispCell cx,cy chaine$ = mid$(chaine$,5) ' retrait de cette cell de la chaine$... for n = 1 to 4 ' explode arround... by reading arround.cell$(mX,mY) nx = val(left$(word$(arround.cell$(cx,cy),n),2)) ny = val(right$(word$(arround.cell$(cx,cy),n),2)) if nx > 0 then ' if neighbor ok player.cell(nx,ny) = player call dispCell nx,ny cell(nx,ny) = cell(nx,ny) + 1 if cell(nx,ny) = arround.cell(nx,ny) then chaine$ = chaine$ + XY.cell$(nx,ny) else call dispCell nx,ny end if end if next n gosub [testFin] if chaine$ = "" or FIN > 0 then return gosub [recurse] ' call itself end if return [testFin] j1=0 : j2=0 for y=1 to ncy for x=1 to ncy if cell(x,y) > -1 then select case player.cell(x,y) case 1 : j1 = j1 + 1 case 2 : j2 = j2 + 1 end select end if next next if j1=0 then FIN = 2 if j2=0 then FIN = 1 return sub dispCell cx,cy ' draw the square cell(cx,cy) at the color of player.cell(cx,cy) #w.map "backcolor ";color.cell$(player.cell(cx,cy));" ; color ";color.cell$(player.cell(cx,cy)) #w.map "place ";offset+(cx-1)*dc;" ";offset+(cy-1)*dc;"; boxfilled ";cx*dc;" ";cy*dc if cell(cx,cy) > 0 then #w.map "color yellow" #w.map "place ";offset+(cx-1)*dc+16;" ";offset+(cy-1)*dc+32;";|";cell(cx,cy) end if end sub [initGame] FIN = 0 restore [game3] redim cell(ncx,ncy) ' -1, 0, 1, 2 ou 3 (à 4 maxi elle explose ) redim XY.cell$(ncx,ncy) ' ses coordonnées "xx,yy" donc limite à 99 x 99 redim arround.cell$(ncx,ncy) '"xxyy xxyy xxyy xxyy" coordonnées des 4 (maxi) cases voisines redim arround.cell(ncx,ncy) ' combien elle a de cases voisines redim player.cell(ncx,ncy) ' 0, 1 ou 2 a quel joueur elle appartient en ce moment for y = 1 to ncy ' drawing gameboard for x = 1 to ncx read val : cell(x,y) = val-1 'read gameboard form if cell(x,y) > -1 then #w.map "backcolor ";color.cell$(0);" ; color ";color.cell$(0) #w.map "place ";offset+(x-1)*dc;" ";offset+(y-1)*dc #w.map "boxfilled ";x*dc;" ";y*dc XY.cell$(x,y) = right$(str$(100+x),2)+right$(str$(100+y),2) player.cell(x,y) = 0 end if next x next y ' init of arround.cell$(x,y) and arround.cell(x,y) for y = 1 to ncy for x = 1 to ncx if cell(x,y) > -1 then 'exist on the gameboard for n=1 to 4 ' arround clockwise anX = x+dirX(n) : anY = y+dirY(n) : neighbor$ = " 0000" if anX>0 and anY>0 and anX<=ncx and anY<=ncy then 'if into the gameboard if cell(anX,anY) > -1 then neighbor$ = " " + XY.cell$(anX,anY) arround.cell(x,y) = arround.cell(x,y) + 1 end if end if arround.cell$(x,y) = arround.cell$(x,y) + neighbor$ next n end if next x next y return [infos] #w.txt " Cell ( ";mX;" , ";mY;" ) = ";cell(mX,mY);_ " Owner = player ";player.cell(mX,mY);_ " CURRENT PLAYER = ";player ' #w.txt "pixels : ";MouseX;" / ";MouseY;_ ' " Cell ( ";mX;" , ";mY;" ) = ";cell(mX,mY);_ ' " arround.cell$ ( ";mX;" , ";mY;" ) = ";arround.cell$(mX,mY);_ ' " (";arround.cell(mX,mY);") PLAYER = ";player return [quit] close #w end wait ' 10 x 10 ( same as ncx,ncy ) [game1] data 0,0,1,1,1,1,1,1,0,0 data 0,1,1,1,1,1,1,1,1,0 data 1,1,1,1,1,1,1,1,1,1 data 1,1,1,1,1,1,1,1,1,1 data 0,0,1,1,1,1,1,1,0,0 data 0,0,1,1,1,1,1,1,0,0 data 1,1,1,1,1,1,1,1,1,1 data 1,1,1,1,1,1,1,1,1,1 data 0,1,1,1,1,1,1,1,1,0 data 0,0,1,1,1,1,1,1,0,0 [game2] data 0,0,0,0,0,0,0,0,0,0 data 0,0,0,0,0,0,0,0,0,0 data 0,0,0,0,0,0,0,0,0,0 data 0,0,0,1,1,1,1,0,0,0 data 0,0,0,1,1,1,1,0,0,0 data 0,0,0,1,1,1,1,0,0,0 data 0,0,0,1,1,1,1,0,0,0 data 0,0,0,0,0,0,0,0,0,0 data 0,0,0,0,0,0,0,0,0,0 data 0,0,0,0,0,0,0,0,0,0 [game3] data 0,0,0,0,0,0,0,0,0,0 data 0,1,1,0,0,0,0,1,1,0 data 0,1,1,1,0,0,1,1,1,0 data 0,0,1,1,1,1,1,1,0,0 data 0,0,0,1,1,1,1,0,0,0 data 0,0,0,1,1,1,1,0,0,0 data 0,0,1,1,1,1,1,1,0,0 data 0,1,1,1,0,0,1,1,1,0 data 0,1,1,0,0,0,0,1,1,0 data 0,0,0,0,0,0,0,0,0,0
Edité par cassiope01 Le 14/06/2012 à 12h47
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Magnifique !.... Et à tomber !...comme d'hab'...
...Pour inclure l'IA "Sinclair" là dedans:...Bonjour.!...!
J'ai vérifié le code "Sinclair" plusieurs fois
J'ai chopé plusieurs simulateurs "Spectrum" pour vérifier la validité du code, mais je n'en ai rien tiré. Je vais réessayer.
Il y a un bug que j'aimerais bien débusquer
Je vais reprendre la première ébauche, en sortant les données aux endroits stratégiques, avec des compteurs de passage ( une sorte de débuggeur intégré )
J'ai lu ton code une fois........Et je suis allé tondre !!!... Je vais le laisser un peu refroidir avant de m'approcher..




J'ai vérifié le code "Sinclair" plusieurs fois
J'ai chopé plusieurs simulateurs "Spectrum" pour vérifier la validité du code, mais je n'en ai rien tiré. Je vais réessayer.

Il y a un bug que j'aimerais bien débusquer
Je vais reprendre la première ébauche, en sortant les données aux endroits stratégiques, avec des compteurs de passage ( une sorte de débuggeur intégré )
J'ai lu ton code une fois........Et je suis allé tondre !!!... Je vais le laisser un peu refroidir avant de m'approcher..


____________________
Roro
Roro
La question est plutôt : Est-ce que j'ai bien respecté le cahier des charges ?
Par exemple je ne savais pas si une cellule qui explose redevient neutre puisqu'elle contient zéro, ou bien si elle continue à appartenir au joueur qui l'a faite exploser ?!
Mais sinon c'est juste une utilisation un peu judicieuse de variables.
Mais je ne suis pas encore absolument sûr que la récurcivité est parfaitement au point...!
J'ai fait en sorte que la fin soit détectée quand un joueur a éradiqué toutes les cases de la couleur adverse, et non quand le joueur adverse ne peut plus jouer, car sinon j'ai une boucle sans fin sans être sûr que cela vient de ma procédure récursive !!
Mais je trouve ça mieux
Faut trouver un juste milieu entre la quantité de cases, la forme du terrain de jeu, etc...
Pour l'AI c'est tout à fait faisable, mais sans aller trop loin !
@+
Edité par cassiope01 Le 14/06/2012 à 12h46
Par exemple je ne savais pas si une cellule qui explose redevient neutre puisqu'elle contient zéro, ou bien si elle continue à appartenir au joueur qui l'a faite exploser ?!
Mais sinon c'est juste une utilisation un peu judicieuse de variables.
Mais je ne suis pas encore absolument sûr que la récurcivité est parfaitement au point...!
J'ai fait en sorte que la fin soit détectée quand un joueur a éradiqué toutes les cases de la couleur adverse, et non quand le joueur adverse ne peut plus jouer, car sinon j'ai une boucle sans fin sans être sûr que cela vient de ma procédure récursive !!
Mais je trouve ça mieux

Faut trouver un juste milieu entre la quantité de cases, la forme du terrain de jeu, etc...
Pour l'AI c'est tout à fait faisable, mais sans aller trop loin !
@+
Edité par cassiope01 Le 14/06/2012 à 12h46
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
La case vide doit devenir neutre, puisque j'ai ajouté une couleur (gris neutre) et que le code s'en sert.
Pour l'IA, (à première vue), je pense que l'ordi fait son jeu sans s'occuper de l'adversaire. ( ce qui n'est pas à proprement parler une véritable IA )
si tu mets une IA, il serait bien de conserver la possibilité de tenir les deux roles. Mais il y a toujours cette version pour cela.
La forme du terrain est assez originale..... P........n ! ..Les data's....Vraiment...tu Déchire !
Pour l'IA, (à première vue), je pense que l'ordi fait son jeu sans s'occuper de l'adversaire. ( ce qui n'est pas à proprement parler une véritable IA )
si tu mets une IA, il serait bien de conserver la possibilité de tenir les deux roles. Mais il y a toujours cette version pour cela.
La forme du terrain est assez originale..... P........n ! ..Les data's....Vraiment...tu Déchire !

____________________
Roro
Roro
En plus tu as compris comment créer toi-même un nouveau terrain grâce aux DATA !
Cependant pas plus de 10 x 10, sinon il faut changer plus de choses que les 1 et les 0.
C'est pas moi qui déchire, c'est JB !
Je vais peut-être voir ce qu'en penses les anglais !?
PS: dans le jeu original, la fin du jeu c'était quand ?
@+
Edité par cassiope01 Le 14/06/2012 à 15h01

Cependant pas plus de 10 x 10, sinon il faut changer plus de choses que les 1 et les 0.
C'est pas moi qui déchire, c'est JB !

Je vais peut-être voir ce qu'en penses les anglais !?
PS: dans le jeu original, la fin du jeu c'était quand ?
@+
Edité par cassiope01 Le 14/06/2012 à 15h01
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Ca se termine par : if t=1 (sec), ( je présume que) si le joueur rempli toutes les cases, il a gagné, sinon il a perdu...LoL ...;Tu te rappelle comment finissaient les jeux...Toi ?...y'a trente ans.
les améranglais, pour le nombre qu'ils sont, je les trouve pas trés vivaces.... et ceux de LB encore moins....
Vas-y, ça les réveillera...

les améranglais, pour le nombre qu'ils sont, je les trouve pas trés vivaces.... et ceux de LB encore moins....
Vas-y, ça les réveillera...

____________________
Roro
Roro
Revu et corrigé 
Code VB :
Edité par cassiope01 Le 15/06/2012 à 10h57

Code VB :
' http://libertybasic.fr/forum/topic-135-1-0-1352+un-code-spaghetti.php#go_bottom ' by cassiope01 Juin 2012 ' my first prog with recurcivity (starting from nothing ! ) nomainwin GLOBAL FIN, fcl$, ft$, player, dc, offset, ncx, ncy, currentGame ncx = 10 ' nbr of cells X ncy = 10 ' nbr of cells Y dc = 50 ' size of a cell in pixels MapWidth = ncx*dc+int(dc/ncx) MapHeight = ncy*dc+int(dc/ncy) WindowWidth = MapWidth + 15 WindowHeight = MapHeight + 75 UpperLeftX = (DisplayWidth-WindowWidth) / 3 UpperLeftY = (DisplayHeight-WindowHeight) / 2 ' mois$ = "January February March April May June July August September October November December" mois$ = "Janvier Février Mars Avril Mai Juin Juillet Août Septembre Octobre Novembre Décembre" ' french today$ = date$("mm/dd/yyyy") j = date$(today$) ' jsem$ = word$("Tuesday Wednesday Thursday x Friday Saturday x Sunday Monday",int((j/7-int(j/7))*10)+1) jsem$ = word$("Mardi Mercredi Jeudi x Vendredi Samedi x Dimanche Lundi",int((j/7-int(j/7))*10)+1) ' french date$ = jsem$+" "+mid$(today$,4,2)+" "+word$(mois$, val(today$))+" "+right$(today$,4)+" "+left$(time$(),5) dirX(1) = 0 : dirY(1) = -1 'up dirX(2) = 1 : dirY(2) = 0 'right dirX(3) = 0 : dirY(3) = 1 'down dirX(4) = -1 : dirY(4) = 0 'left fcl$ = "26 72 43" 'vert foncé ft$ = "Courier_New 20 bold" dim cell(ncx,ncy) ' -1, 0, 1, 2 or 3 (at 4 maxi it explode ) dim XY.cell$(ncx,ncy) ' it's coord. "xxyy" , so limited at 99 x 99 dim arround.cell$(ncx,ncy) ' "xxyy xxyy xxyy xxyy" coord. of it's 4 (maxi) neighbors cells dim arround.cell(ncx,ncy) ' how many neighbors cells dim player.cell(ncx,ncy) ' 0, 1 or 2 owner at instant dim color.cell$(2) ' 0 = color neutral, 1 = color player1, 2 = color player2 player = 1 color.cell$(0) = "darkgreen" color.cell$(1) = "blue" color.cell$(2) = "red" offset = int(dc/(ncx+1)) statictext #w.txt "",5,10,MapWidth-120,25 button #w.g1, "1", game, UL, MapWidth-110, 8 , 25, 25 button #w.g2, "2", game, UL, MapWidth-80, 8 , 25, 25 button #w.g3, "3", game, UL, MapWidth-50, 8 , 25, 25 button #w.g4, "4", game, UL, MapWidth-20, 8 , 25, 25 graphicbox #w.map, 5, 40, MapWidth, MapHeight OPEN " CHAIN REACTION... "+space$(15)+date$ for window_nf as #w 'graphics_nf_nsb #w "trapclose [quit]" #w.map "down; font ";ft$ currentGame = 1 call initGame #w.map "when mouseMove [coord]" ' MouseX, MouseY pixels #w.map "when leftButtonDown [Mark]" ' x,y cell wait sub game handle$ confirm "Quit this game ?";answ$ if answ$="yes" then currentGame = val(right$(handle$,1)) call initGame end if end sub [coord] mX = int((MouseX-offset)/dc)+1 mY = int((MouseY-offset)/dc)+1 gosub [infos] wait [Mark] ' click on a cell if cell(mX,mY) > -1 then 'if exist in the gameboard playerOpp = player + 1 -2 * (player = 2) if player.cell(mX,mY) <> playerOpp then player.cell(mX,mY) = player ' player is the new owner cell(mX,mY) = cell(mX,mY) + 1 if cell(mX,mY) = arround.cell(mX,mY) then chain$ = XY.cell$(mX,mY) ' string of cells that must explode gosub [recurse] else call dispCell mX,mY end if #w.map "flush ; discard" if FIN then CONFIRM "Player "+upper$(color.cell$(FIN))+" WIN !! "+chr$(13)+chr$(13)+" NEW GAME ?"; answer$ if answer$ = "yes" then call initGame else [quit] end if player = player + 1 -2 * (player = 2) ' change player end if end if wait [recurse] ' recursivity ????? if chain$ <> "" and FIN = 0 then cx = val(left$(chain$,2)) ' always the first cell of chain$ cy = val(mid$(chain$,3,2)) cell(cx,cy) = 0 ' explode... player.cell(cx,cy) = 0 ' become neutral call dispCell cx,cy chain$ = mid$(chain$,5) ' retrait of this cell from chain$... for n = 1 to 4 ' explode arround... by reading arround.cell$(mX,mY) nx = val(left$(word$(arround.cell$(cx,cy),n),2)) ny = val(right$(word$(arround.cell$(cx,cy),n),2)) if nx > 0 then ' if it's a valid neighbor player.cell(nx,ny) = player cell(nx,ny) = cell(nx,ny) + 1 if cell(nx,ny) = arround.cell(nx,ny) then chain$ = chain$ + XY.cell$(nx,ny) ' add to the string of cells that must explode end if call dispCell nx,ny end if next n gosub [testFin] if chain$ = "" or FIN > 0 then return gosub [recurse] ' call itself end if return [testFin] redim j(2) for y=1 to ncy for x=1 to ncy if cell(x,y) > -1 then j(player.cell(x,y)) = j(player.cell(x,y)) + 1 end if next next ' if j(1)=0 and j(0)=0 and j(2)>1 then FIN = 2 ' no neutral cells rest ' if j(2)=0 and j(0)=0 and j(1)>1 then FIN = 1 if j(1)=0 and j(2)>1 then FIN = 2 ' only if there's no cells of one of players. if j(2)=0 and j(1)>1 then FIN = 1 return sub dispCell cx,cy ' draw the square cell(cx,cy) at the color of player.cell(cx,cy) #w.map "backcolor ";color.cell$(player.cell(cx,cy));" ; color ";color.cell$(player.cell(cx,cy)) #w.map "place ";offset+(cx-1)*dc;" ";offset+(cy-1)*dc;"; boxfilled ";cx*dc;" ";cy*dc if cell(cx,cy) > 0 then #w.map "color yellow" #w.map "place ";offset+(cx-1)*dc+16;" ";offset+(cy-1)*dc+32;";|";cell(cx,cy) end if end sub sub initGame FIN = 0 select case currentGame case 1 : restore [game1] case 2 : restore [game2] case 3 : restore [game3] case 4 : restore [game4] end select redim cell(ncx,ncy) ' -1, 0, 1, 2 or 3 (at 4 maxi it explode ) (-1 = out of this gameboard) redim XY.cell$(ncx,ncy) ' it's coord. "xx,yy" so limited to 99 x 99 redim arround.cell$(ncx,ncy) '"xxyy xxyy xxyy xxyy" coord. of 4 (maxi) neighbor cells redim arround.cell(ncx,ncy) ' how many neighbor cells redim player.cell(ncx,ncy) ' 0, 1 or 2 owner at instant #w.map "fill ";fcl$ for y = 1 to ncy ' drawing gameboard for x = 1 to ncx read val : cell(x,y) = val-1 'read gameboard form if cell(x,y) > -1 then #w.map "backcolor ";color.cell$(0);" ; color ";color.cell$(0) #w.map "place ";offset+(x-1)*dc;" ";offset+(y-1)*dc #w.map "boxfilled ";x*dc;" ";y*dc XY.cell$(x,y) = right$(str$(100+x),2)+right$(str$(100+y),2) player.cell(x,y) = 0 end if next x next y #w.map "flush ; discard" ' init of arround.cell$(x,y) and arround.cell(x,y) for y = 1 to ncy for x = 1 to ncx if cell(x,y) > -1 then 'exist on the gameboard for n=1 to 4 ' arround clockwise anX = x+dirX(n) : anY = y+dirY(n) : neighbor$ = " 0000" if anX>0 and anY>0 and anX<=ncx and anY<=ncy then 'if into the gameboard if cell(anX,anY) > -1 then neighbor$ = " " + XY.cell$(anX,anY) arround.cell(x,y) = arround.cell(x,y) + 1 end if end if arround.cell$(x,y) = arround.cell$(x,y) + neighbor$ next n end if next x next y ' 10 x 10 ( same as ncx,ncy ) [game1] data 0,0,0,0,0,0,0,0,0,0 data 0,0,0,0,0,0,0,0,0,0 data 0,0,0,0,1,1,0,0,0,0 data 0,0,0,1,1,1,1,0,0,0 data 0,0,1,1,1,1,1,1,0,0 data 0,0,1,1,1,1,1,1,0,0 data 0,0,0,1,1,1,1,0,0,0 data 0,0,0,0,1,1,0,0,0,0 data 0,0,0,0,0,0,0,0,0,0 data 0,0,0,0,0,0,0,0,0,0 [game2] data 0,0,0,0,0,0,0,0,0,0 data 0,1,1,0,0,0,0,1,1,0 data 0,1,1,1,0,0,1,1,1,0 data 0,0,1,1,1,1,1,1,0,0 data 0,0,0,1,1,1,1,0,0,0 data 0,0,0,1,1,1,1,0,0,0 data 0,0,1,1,1,1,1,1,0,0 data 0,1,1,1,0,0,1,1,1,0 data 0,1,1,0,0,0,0,1,1,0 data 0,0,0,0,0,0,0,0,0,0 [game3] data 0,0,1,1,1,1,1,1,0,0 data 0,1,1,1,1,1,1,1,1,0 data 1,1,1,1,1,1,1,1,1,1 data 1,1,1,1,1,1,1,1,1,1 data 0,0,1,1,1,1,1,1,0,0 data 0,0,1,1,1,1,1,1,0,0 data 1,1,1,1,1,1,1,1,1,1 data 1,1,1,1,1,1,1,1,1,1 data 0,1,1,1,1,1,1,1,1,0 data 0,0,1,1,1,1,1,1,0,0 [game4] data 1,1,1,1,1,1,1,1,1,1 data 1,1,1,1,1,1,1,1,1,1 data 1,1,1,1,1,1,1,1,1,1 data 1,1,1,1,1,1,1,1,1,1 data 1,1,1,1,1,1,1,1,1,1 data 1,1,1,1,1,1,1,1,1,1 data 1,1,1,1,1,1,1,1,1,1 data 1,1,1,1,1,1,1,1,1,1 data 1,1,1,1,1,1,1,1,1,1 data 1,1,1,1,1,1,1,1,1,1 end sub [infos] #w.txt " Cell ( ";mX;" , ";mY;" ) = ";cell(mX,mY);_ " Owner = player ";player.cell(mX,mY);_ " CURRENT PLAYER = ";player;" ( ";upper$(color.cell$(player));" ) " ' #w.txt "pixels : ";MouseX;" / ";MouseY;_ ' " Cell ( ";mX;" , ";mY;" ) = ";cell(mX,mY);_ ' " arround.cell$ ( ";mX;" , ";mY;" ) = ";arround.cell$(mX,mY);_ ' " (";arround.cell(mX,mY);") PLAYER = ";player return [quit] close #w end wait
Edité par cassiope01 Le 15/06/2012 à 10h57
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Hey, je pense à un truc: ces améranglais, ils sont trop forts...Et dans le cadre de la lutte contre l'Alzheimer, Je crois que tu devrais leur mettre quelques apostrophes....par exemple: que le nombre de pions que contient la case ne soit plus affiché.( à l'origine le nombre n'était pas affiché,c'est pour ça qu'il n'y avait que 3X3 ou 4X4 )
Et puis on voit le temps qu'ils mettent à trouver l'arnaque...
Par contre , il faudrait changer le nom...C'est plus du spaghetti.
Edité par Roland Le 14/06/2012 à 20h49
Et puis on voit le temps qu'ils mettent à trouver l'arnaque...

Par contre , il faudrait changer le nom...C'est plus du spaghetti.
Edité par Roland Le 14/06/2012 à 20h49
____________________
Roro
Roro
Pas facile d'évaluer l'intérêt de ce jeu, mais voici la version qui joue, mais seulement en choisissant au hasard parmis les cellules qui doivent exploser, ou au hasard tout court s'il n'y en a pas.
ChainReaction.bas (click droit, puis faire "enregistrer la cible du lien sous")
La condition du choix n'est pas facile à déterminer...
- cellule qui va exploser et qui a le plus de voisines prètes à exploser,
- cellule qui va exploser et qui a le plus de cellules adverse autour d'elle,
- cellule qui atteind son seuil moins 1 et qui a le plus de cellules adverse autour d'elle,
- etc...?
@+
Edité par cassiope01 Le 16/06/2012 à 20h15
ChainReaction.bas (click droit, puis faire "enregistrer la cible du lien sous")
La condition du choix n'est pas facile à déterminer...
- cellule qui va exploser et qui a le plus de voisines prètes à exploser,
- cellule qui va exploser et qui a le plus de cellules adverse autour d'elle,
- cellule qui atteind son seuil moins 1 et qui a le plus de cellules adverse autour d'elle,
- etc...?
@+
Edité par cassiope01 Le 16/06/2012 à 20h15
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Mais oui, c'est trés bon ça:. A sinon B sinon C ( ou l'inverse) sinon Hasard.
Et le terrain 4x4 ou 5x5 sans le contenu (joueur) pour faire travailler la mémoire.
Commente.. .Commente...Commente.......Les journaux sont hors de prix.
.....gloups! comment tu fait pour que le code apparaisse comme ça.
....;.Mais c'est qu'elle est redoutable ton IA...
Edité par Roland Le 16/06/2012 à 17h47
Et le terrain 4x4 ou 5x5 sans le contenu (joueur) pour faire travailler la mémoire.
Commente.. .Commente...Commente.......Les journaux sont hors de prix.

.....gloups! comment tu fait pour que le code apparaisse comme ça.
....;.Mais c'est qu'elle est redoutable ton IA...


Edité par Roland Le 16/06/2012 à 17h47
____________________
Roro
Roro
avec sauvegarde de la partie en cours et restitution lors du prochain lancement.
ChainReaction.bas (click droit, puis faire "enregistrer la cible du lien sous")
@+
PS: même 4x4 sans savoir ce qu'elles contiennent n'est pas vraiment jouable, mais si tu y tiens tu peux modifier cette ligne dans la sub dispCell cx,cy,clign en
....
if cell(cx,cy) > 0 and currentGame>1 then
....
Edité par cassiope01 Le 16/06/2012 à 20h22
ChainReaction.bas (click droit, puis faire "enregistrer la cible du lien sous")
@+
PS: même 4x4 sans savoir ce qu'elles contiennent n'est pas vraiment jouable, mais si tu y tiens tu peux modifier cette ligne dans la sub dispCell cx,cy,clign en
....
if cell(cx,cy) > 0 and currentGame>1 then
....
Edité par cassiope01 Le 16/06/2012 à 20h22
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Tu est bien dubitatif...?...Les jeux pour ordinateur, et notamment les anciens, sont en général des jeux à la con...tu avait oublié ?
J'en ai un autre, encore plus con, je le garde en réserve. Le premier qui m'embete, je le lui balance.
En attendant ton code reste un super sujet d'étude et de réflexion...Je le mets dans le dossier " Best "...;
... Et en JB (accessible au petit peuple)

...Et aprés quelques parties..je trouve qu'il est pas mal du tout se jeu...il faut batailler sec, et rien n'est gagné d'avance.
...___...___....Appel au peuple ! ... Donnez vos avis.
Edité par Roland Le 16/06/2012 à 21h47
J'en ai un autre, encore plus con, je le garde en réserve. Le premier qui m'embete, je le lui balance.

En attendant ton code reste un super sujet d'étude et de réflexion...Je le mets dans le dossier " Best "...;
... Et en JB (accessible au petit peuple)



...Et aprés quelques parties..je trouve qu'il est pas mal du tout se jeu...il faut batailler sec, et rien n'est gagné d'avance.
...___...___....Appel au peuple ! ... Donnez vos avis.

Edité par Roland Le 16/06/2012 à 21h47
____________________
Roro
Roro
Gagner ou perdre sans vraiment le faire exprès et sans que ce soit un jeu de hasard est assez déroutant !!
Amélioration du jeu ordi...
ChainReaction.bas --> (click droit, puis faire "enregistrer la cible du lien sous")
...
Edité par cassiope01 Le 17/06/2012 à 11h38
Amélioration du jeu ordi...
ChainReaction.bas --> (click droit, puis faire "enregistrer la cible du lien sous")
...
Edité par cassiope01 Le 17/06/2012 à 11h38
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Que dalle ! Il faut surveiller ce que fait l'ordi...Il faut tenter de l'encercler, tout en gardant des cases éloignées de lui...Ce jeu, il est d'Enfer.. ( peut etre est-ce parce que je ne connais pas la tactique de l'ordi, mais je le trouve vraiment pas mal )
Tu devrais supprimer le premier que tu a mis chez les anglophones (tu leur dis: le joueur et l'ordi peuvent mettre des pions partout, mais dans ce code l'ordi ne joue pas. )
Comment-que-pourquoi-t-est-ce ...que quand je clique sur ton lien le code se r'amène en texte ?
........Calmos..;sur l'IA...On voudrait bien gagner de temps en temps.
Edité par Roland Le 17/06/2012 à 18h56
Tu devrais supprimer le premier que tu a mis chez les anglophones (tu leur dis: le joueur et l'ordi peuvent mettre des pions partout, mais dans ce code l'ordi ne joue pas. )
Comment-que-pourquoi-t-est-ce ...que quand je clique sur ton lien le code se r'amène en texte ?

........Calmos..;sur l'IA...On voudrait bien gagner de temps en temps.

Edité par Roland Le 17/06/2012 à 18h56
____________________
Roro
Roro
Encore une petite amélioration du jeu ordi...
ChainReaction2.bas --> (click droit, puis faire "enregistrer la cible du lien sous")
...
Edité par cassiope01 Le 17/06/2012 à 21h20

ChainReaction2.bas --> (click droit, puis faire "enregistrer la cible du lien sous")
...
Edité par cassiope01 Le 17/06/2012 à 21h20
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Dernière petit modif...
chainreaction.bas ... --> (click droit, puis faire "enregistrer la cible du lien sous")
Je ne sais pas si les différents plateaux de jeu sous forme de fichiers externes serait plus intéressant !?
@+
PS: je ne sais pas pourquoi le download ça se présente sous forme de texte maintenant !? les modos ont dû modifier quelque chose...?
Edité par cassiope01 Le 18/06/2012 à 16h22
chainreaction.bas ... --> (click droit, puis faire "enregistrer la cible du lien sous")
Je ne sais pas si les différents plateaux de jeu sous forme de fichiers externes serait plus intéressant !?
@+
PS: je ne sais pas pourquoi le download ça se présente sous forme de texte maintenant !? les modos ont dû modifier quelque chose...?
Edité par cassiope01 Le 18/06/2012 à 16h22
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
• Index
1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie