| Reversi |
| Auteur |
Message |
Gui958
Autorisation : Membre
Nb de messages : 31
Inscrit le : Sam 26 Mai 2007, 23:15
|
Posté le : Jeu 21 Jui 2007, 13:35
|
|
|
Bonjour la communauté, je me demandais si quelqu'un serai capable de faire un reversi!
Je vois deja comment on peut le faire en rentrant les coordonnées dans une matrice !
Puis apres je ne sais pas comment faire pour maitre un pion au bon endroit c'est a dire en face de l'un de ces pions pour continuer!
Oué je sais je suis pas clair 
---------------------- Longue vie a la Programmation !! |
 |
|
| |
coc5
Autorisation : Membre
Nb de messages : 879
Inscrit le : Sam 16 Jui 2007, 13:37
|
Posté le : Jeu 21 Jui 2007, 13:55
|
|
|
(On dit "mettre un pion" et pas "maître un pion")
C'est faisable.
Par exemple on peut construire un terrain (de la même manière dont j'ai fais mon démnieur d'ailleurs). On choisis la case ou on met le point etc...
Pour ta question, je pense qu'on peut faire qu'après la validation du posage de pion une identification des alentoures. Avec la position du piont en (B,A), 1 la présence d'un point à soi et 2 la présence d'un pion adverse.
| Code | Getkey->K
If K=105:Then
For(I,-1,1
For(J,-1,1
J->H:I->L
Lbl 5
If (I or J) and [A](B+J,A+I)=2:Then
2I->I:2J->J
Goto 5
End
If[A](B+J,A+I)=1:Then
For(V,H,J
For(W,L,I
1->[A](V,W
End:End:End
End:End
|
Ou quelque chose comme ça 
|
 |
|
| |
Gui958
Autorisation : Membre
Nb de messages : 31
Inscrit le : Sam 26 Mai 2007, 23:15
|
Posté le : Jeu 21 Jui 2007, 14:27
|
|
|
Hum a vrai dire j'ai pas trop compris mais je pense que sa va !
[ oué je sais je suis toujours pas clair ] 
---------------------- Longue vie a la Programmation !! |
 |
|
| |
Google_AdSense
|
Publicité
|
|
|
|
| |
coc5
Autorisation : Membre
Nb de messages : 879
Inscrit le : Sam 16 Jui 2007, 13:37
|
Posté le : Jeu 21 Jui 2007, 14:43
|
|
|
Tu t'y connais en programmation ?
Explication:
Getkey->K
i]Mettre dans K la valeur de la touche appuyé (O si aucun signal)[/i]
If K=105:Then
Si tu appuies sur [Enter]For(I,-1,1 Pour I de -1 à 1
For(J,-1,1
Pour J de -1 à 1J->H:I->L H prend la
valeur de J et L prend la valeur de I
Lbl 5
Debut de boucle n°5
If (I or J) and [A](B+J,A+I)=2:Then
Si I ou J existe (n'est pas égal à O quoi, pour éviter qu'il fasse le travail sur l'endoirt ou tu pose le pion) et la case où tu as poser le pion -décalé de J cases en hauteur et I cases de coté- comprend un pion adverse.
2I->I:2J->J
Alors le décalage est doublé par rapport à la position de départ.
Goto 5
Et on revient Au début de la boucle avec le nouveau décalage.
End
Fin de la condition If
If[A](B+J,A+I)=1:Then
Si quand il n'y a plus de point adverse on tombe sur un point à soi.
For(V,H,J
For(W,L,I
Alors pour [A](V,W) de la position du premier pion adverse identifié
autour du pion posé jusqu'au dernier pion adverse identifié,
1->[A](V,W
leur donner la valeur d'un pion à soi.
End:End:End
End:End Fin de tout^^
Tu comprends mieux maintenant ?
|
 |
|
| |
Gui958
Autorisation : Membre
Nb de messages : 31
Inscrit le : Sam 26 Mai 2007, 23:15
|
Posté le : Jeu 21 Jui 2007, 14:56
|
|
|
nan nan c'etait bon mais je savais pas comment l'integrer dans mon programme, c'est pour sa !
---------------------- Longue vie a la Programmation !! |
 |
|
| |
coc5
Autorisation : Membre
Nb de messages : 879
Inscrit le : Sam 16 Jui 2007, 13:37
|
Posté le : Jeu 21 Jui 2007, 18:15
|
|
|
Faut l'intégrer au moment où tu appuies sur enter pour mettre ton pion 
|
 |
|
| |
Gui958
Autorisation : Membre
Nb de messages : 31
Inscrit le : Sam 26 Mai 2007, 23:15
|
Posté le : Jeu 21 Jui 2007, 19:13
|
|
|
Ok mais il est complet ?
| Code | Getkey->K
If K=105:Then
For(I,-1,1
For(J,-1,1
J->H:I->L
Lbl 5
If (I or J) and [A](B+J,A+I)=2:Then
2I->I:2J->J
Goto 5
End
If[A](B+J,A+I)=1:Then
For(V,H,J
For(W,L,I
1->[A](V,W
End:End:End
End:End |
Il fait aussi les diagonales ? Vers la droite puis vers la gauche ? Vers le haut puis vers le bas ?
---------------------- Longue vie a la Programmation !! |
 |
|
| |
Stupid
Autorisation : Membre
Nb de messages : 765
Inscrit le : Jeu 28 Sep 2006, 18:42
|
Posté le : Jeu 21 Jui 2007, 19:16
|
|
|
il fait les diagonales mais n'affiche pas le pion ne gere pas le fait que tu pourrais etre au bout de l'écran et j'ai pas l'impression qu'il retourne tout les pions sur toute une ligne
|
 |
|
| |
Gui958
Autorisation : Membre
Nb de messages : 31
Inscrit le : Sam 26 Mai 2007, 23:15
|
Posté le : Jeu 21 Jui 2007, 19:19
|
|
|
Enfet il verifi juste sur les lignes s'il y a deux fois le meme numero ?
---------------------- Longue vie a la Programmation !! |
 |
|
| |
Stupid
Autorisation : Membre
Nb de messages : 765
Inscrit le : Jeu 28 Sep 2006, 18:42
|
Posté le : Jeu 21 Jui 2007, 19:21
|
|
|
je crois que ça transforme que le piuon d'a coté
en fait il faut que tu geres
-la verification d'un pion sur la meme ligne ou colonne
-donc il faut gerer la position des pions par rapport au minimum et au maximum de la matrice
-qu'en consequence ça retourne tout les pions et ça change leurs valeurs
c'est faisable mais c'est chaud et j'ai la flemme de faire un truc complet
|
 |
|
| |
Gui958
Autorisation : Membre
Nb de messages : 31
Inscrit le : Sam 26 Mai 2007, 23:15
|
Posté le : Jeu 21 Jui 2007, 19:25
|
|
|
Mdr je te comprends, sa fait plus d'une heure que je suis sur la conversion des pions ! 
---------------------- Longue vie a la Programmation !! |
 |
|
| |
Stupid
Autorisation : Membre
Nb de messages : 765
Inscrit le : Jeu 28 Sep 2006, 18:42
|
Posté le : Jeu 21 Jui 2007, 19:27
|
|
|
si tu dit que le reversi fait 10 de longueur alors faut que tu fasses des boucles qui testent si sur 10-la position du pion y'ait un pion de la meme couleur et que sur la position du pion jusqu'à un ça fasse pareil.
|
 |
|
| |
Gui958
Autorisation : Membre
Nb de messages : 31
Inscrit le : Sam 26 Mai 2007, 23:15
|
Posté le : Jeu 21 Jui 2007, 19:31
|
|
|
Le mien ne fait pas 10 sur 10 car 10/10 fait un rectangle sur l'ecran normal, alors j'ai pris 8/11 et ça a la forme d'un carré !
---------------------- Longue vie a la Programmation !! |
 |
|
| |
Stupid
Autorisation : Membre
Nb de messages : 765
Inscrit le : Jeu 28 Sep 2006, 18:42
|
Posté le : Jeu 21 Jui 2007, 19:33
|
|
|
c'est que t'as pas les bonnes dimensions de la fenetre
et dans ce cas tu geres une fois le max c'est 11 et apre sle max c'est 8
|
 |
|
| |
Gui958
Autorisation : Membre
Nb de messages : 31
Inscrit le : Sam 26 Mai 2007, 23:15
|
Posté le : Jeu 21 Jui 2007, 19:43
|
|
|
Oué c'est ce que je fais mais y'a une seul case qui marche correctement, tandis que les autres quand je veux mettre mon pion ça me met des pions un peu partout ! 
---------------------- Longue vie a la Programmation !! |
 |
|
| |
Gui958
Autorisation : Membre
Nb de messages : 31
Inscrit le : Sam 26 Mai 2007, 23:15
|
Posté le : Jeu 21 Jui 2007, 21:57
|
|
|
y'a un truc que je comprends pas :
| Code | For(S,X,7)
B+1->B
If [A](A,B)=1
Goto D
End
Goto 2
Lbl D
For(T,X,B)
1->[A](T,A)
End
Lbl 2 |
Sa devrai me mettre le pion au endroit indiqué mais nan sa m'en fou un de comme sa sur l'ecran et pas a l'endroit attendu !
Y'a un truc de faux dans la parti du programme ?
---------------------- Longue vie a la Programmation !! |
 |
|
| |
coc5
Autorisation : Membre
Nb de messages : 879
Inscrit le : Sam 16 Jui 2007, 13:37
|
Posté le : Ven 22 Jui 2007, 10:01
|
|
|
> Par rapport à ce que je écris ça gère l'identification dans tous les sens tant qu'il en y a et le retournement des pions. Vous auriez lu mon explication (on dirait qu'elle est pas claire^^) vous auriez compris. La seule choses non prise en compte c'est si le pion est sur le coté du plateau. Mais dans ces genres de jeu je met toujours une colonne en plus et une ligne de chaque coté.
Mais sinon c'est facile tu met d'abord la condition
| Code |
If A and B and A=/=11 and B=/=11:Then
[...]
End |
Donc pas besoin de ton truc au dessus il est trop compliqué pour un truc simple et ne remplit pas les conditions( Contrairement à ce que vous avez dis ce que j'ai écris gère tout (en dehors des limites mais bon ) même les diagonales...
|
 |
|
| |
Google_AdSense
|
Publicité
|
|
|
|
| |
Sangohan38
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Ven 22 Jui 2007, 14:42
|
|
|
Pour retourner une ligne, il faut à chaque pion placé regarder sur la ligne, sur la colonne, en diagonal et puis, selon l'emplacement du pion de la même ligne, on enlève un à sa coordonnée si c'est en horizontal ou en vertical et on fait une boucle qui change les nombres de la matrice pour que ça devienne la même couleur.
Il n'y as pas forcément besoin de matrice pour faire ce prog, une liste peut faire le même effet.
Sangohan38
|
 |
|
| |
Gui958
Autorisation : Membre
Nb de messages : 31
Inscrit le : Sam 26 Mai 2007, 23:15
|
Posté le : Ven 22 Jui 2007, 15:43
|
|
|
Oui mais avec une matrice c'est plus simple 
---------------------- Longue vie a la Programmation !! |
 |
|
| |
Sangohan38
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Ven 22 Jui 2007, 17:50
|
|
|
Plus simple? Je trouve pas.
Moi j'adore les liste et elle me le rendent bien.
Sangohan38
|
 |
|
| |
Gui958
Autorisation : Membre
Nb de messages : 31
Inscrit le : Sam 26 Mai 2007, 23:15
|
Posté le : Ven 22 Jui 2007, 17:51
|
|
|
Oué mais comme c'est la premiere fois que j'utilise une Matrice [ la premiere fois que j'en voie l'utilité ! ] je la grade 
---------------------- Longue vie a la Programmation !! |
 |
|
| |
mad67
Autorisation : Membre
Nb de messages : 613
Inscrit le : Sam 23 Jui 2007, 14:05
|
Posté le : Lun 25 Jui 2007, 8:12
|
|
|
en tout cas il faut faire un reversi
qui veut jouer le pigeon et le faire.
|
 |
|
| |
coc5
Autorisation : Membre
Nb de messages : 879
Inscrit le : Sam 16 Jui 2007, 13:37
|
Posté le : Lun 25 Jui 2007, 16:48
|
|
|
J'aurais le temps je dirais oui mais là je pars^^
Pendant les vacnaces peut-être 
mais si personne ne le fait alors 
|
 |
|
| |
Stupid
Autorisation : Membre
Nb de messages : 765
Inscrit le : Jeu 28 Sep 2006, 18:42
|
Posté le : Lun 25 Jui 2007, 17:10
|
|
|
je vais essayer mais si j'y arrive je le posterais en exclu sur mon fofo
|
 |
|
| |
Sangohan38
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Lun 25 Jui 2007, 17:53
|
|
|
Bon je crois que je vais être obligé de le faire.
Sangohan38
|
 |
|
| |
vibra
Autorisation : Membre
Nb de messages : 591
Inscrit le : Mer 04 Avr 2007, 13:29
|
Posté le : Lun 25 Jui 2007, 18:01
|
|
|
A 2 ou contre la calculette ?
---------------------- Vive la programmation et vive le vibraphone !!! |
 |
|
| |
Sangohan38
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Lun 25 Jui 2007, 18:03
|
|
|
Ce sera un jeux à deux joueurs.
Cependant si l'envie me prend, je ferais une IA.
Sangohan38
|
 |
|
| |
vibra
Autorisation : Membre
Nb de messages : 591
Inscrit le : Mer 04 Avr 2007, 13:29
|
Posté le : Lun 25 Jui 2007, 18:04
|
|
|
Nan merci.
---------------------- Vive la programmation et vive le vibraphone !!! |
 |
|
| |
mad67
Autorisation : Membre
Nb de messages : 613
Inscrit le : Sam 23 Jui 2007, 14:05
|
Posté le : Mar 26 Jui 2007, 9:47
|
|
|
non categorique je fais autre chose qui sera plus interressant
|
 |
|
| |
vibra
Autorisation : Membre
Nb de messages : 591
Inscrit le : Mer 04 Avr 2007, 13:29
|
Posté le : Mar 26 Jui 2007, 11:29
|
|
|
Bon, je vous le fait si j'ai le temps. C'est pas bien compliqué.
---------------------- Vive la programmation et vive le vibraphone !!! |
 |
|
| |
mad67
Autorisation : Membre
Nb de messages : 613
Inscrit le : Sam 23 Jui 2007, 14:05
|
Posté le : Mar 26 Jui 2007, 12:00
|
|
|
oui mais il ne faut pas jouer les pigeons.
|
 |
|
| |
vibra
Autorisation : Membre
Nb de messages : 591
Inscrit le : Mer 04 Avr 2007, 13:29
|
Posté le : Mar 26 Jui 2007, 12:04
|
|
|
C'est à dire ?
---------------------- Vive la programmation et vive le vibraphone !!! |
 |
|
| |
mad67
Autorisation : Membre
Nb de messages : 613
Inscrit le : Sam 23 Jui 2007, 14:05
|
Posté le : Mar 26 Jui 2007, 12:05
|
|
|
il demande un prog et tu le lui fait sa s'appelle se faire pigeonner.
|
 |
|
| |
Sangohan38
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Mar 26 Jui 2007, 13:42
|
|
|
Pour ceux qui sont en manque d'inspiration, ce n'est pas se faire pigeonner.
Et puis cette expression veut dire que tu le fait sans le vouloir ce qui n'est pas le cas ici.
Sangohan38
|
 |
|
| |
vibra
Autorisation : Membre
Nb de messages : 591
Inscrit le : Mer 04 Avr 2007, 13:29
|
Posté le : Mar 26 Jui 2007, 14:22
|
|
|
Pourquoi t'as effacé mon "Glou Glou" ? C'était pas du flood !!
---------------------- Vive la programmation et vive le vibraphone !!! |
 |
|
| |
Sangohan38
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Mar 26 Jui 2007, 16:06
|
|
|
Marquer seulement glouglou est du flood.
Sangohan38
|
 |
|
| |
Gui958
Autorisation : Membre
Nb de messages : 31
Inscrit le : Sam 26 Mai 2007, 23:15
|
Posté le : Mar 26 Jui 2007, 20:59
|
|
|
Salut la compagnie, j'espere que ce n'est pas moi qui est demandé de faire un reversi, j'ai juste demandé conseil !
---------------------- Longue vie a la Programmation !! |
 |
|
| |
Sangohan38
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Mer 27 Jui 2007, 9:58
|
|
|
On avait mal compris.
Dis tes problèmes pour que t'on aide.
Sangohan38
|
 |
|
| |
mad67
Autorisation : Membre
Nb de messages : 613
Inscrit le : Sam 23 Jui 2007, 14:05
|
Posté le : Mer 27 Jui 2007, 10:10
|
|
|
je me disait bien que tu n'etais pas comme pmdej qui demande des prog a tord ou a travers
|
 |
|
| |
Gui958
Autorisation : Membre
Nb de messages : 31
Inscrit le : Sam 26 Mai 2007, 23:15
|
Posté le : Mer 27 Jui 2007, 20:37
|
|
|
Je voulais savoir comment faire pour detecter les pions et les retourner facillement, un ami a utilisé " Cos " dans sa formule je ne sais pas si vous connaissez !
---------------------- Longue vie a la Programmation !! |
 |
|
| |
Stupid
Autorisation : Membre
Nb de messages : 765
Inscrit le : Jeu 28 Sep 2006, 18:42
|
Posté le : Mer 27 Jui 2007, 21:00
|
|
|
cosinus
il doit utiliser le graph et la fenetre de base, parce que je vosi vraiment pas l'utilité
|
 |
|
| |
ratuss
Autorisation : Membre
Nb de messages : 1522
Inscrit le : Mer 01 Mar 2006, 20:41
|
Posté le : Jeu 28 Jui 2007, 2:02
|
|
|
| Citer | | je vosi vraiment pas l'utilité |
oui moi non plus ...
---------------------- --- LISTE DES JEUX POUR TI --- |
 |
|
| |
Sangohan38
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Jeu 28 Jui 2007, 7:20
|
|
|
Cosinus pour retourner un pion?
Envois son code pour voir.
Sangohan38
|
 |
|
| |
mad67
Autorisation : Membre
Nb de messages : 613
Inscrit le : Sam 23 Jui 2007, 14:05
|
Posté le : Jeu 28 Jui 2007, 9:35
|
|
|
oui sa me parait bizzare.
|
 |
|
| |
vibra
Autorisation : Membre
Nb de messages : 591
Inscrit le : Mer 04 Avr 2007, 13:29
|
Posté le : Jeu 28 Jui 2007, 11:19
|
|
|
Pour savoir de quel couleur est un pion, tu utilise Pxl-Test.
---------------------- Vive la programmation et vive le vibraphone !!! |
 |
|
| |
Sangohan38
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Jeu 28 Jui 2007, 15:31
|
|
|
Pas forcément, si tu utilise des listes ou matrices, tu teste le nombre.
Sangohan38
|
 |
|
| |
CaRLiTo
Invité
|
Posté le : Jeu 28 Jui 2007, 16:40
|
|
|
Bonjour à tous, je suis "l'ami de gui958 qui a utilisé cosinus" (et sinus). Je ne sais pas si c'est la meilleure façon mais voilà la partie de mon code où j'utilise cosinus et sinus...
La variable A représente la position verticale du pion que l'on pose, sur un damier de 8 sur 8 et B la position horizontale. La matrice [J] de 8 sur 8 représente le damier, 0 correspond à une case vide, 1 à un pion noir et -1 à un pion blanc. J est la variable qui correspond au joueur qui joue (noir : 1 ou blanc : -1).
| Code |
Radian
[...]
0->dim(LREVER)
9->dim(LREVER) [inutile dans cette fraction de code, mais utile plus loin]
0->dim(LREVE2)
9->dim(LREVE2) [idem]
For(E,0,7)
-arrondi(sin(E(pi)/4),0)->C
arrondi(cos(E(pi)/4),0)->D
0->F
Lbl 3
F+1->F
If abs(A+CF-4.5)=4.5 ou abs(B+DF-4.5)=4.5 [afin d'être sûr de ne pas être en-dehors des limites de la matrice, auquel cas le prochain IF produirait une erreur "DIM INVALIDE"]
Goto 4
If [J](A+CF,B+DF)=-J
Goto 3
If [J](A+CF,B+DF)=J et F><1
Then
E->LREVER(G)
F-1->LREVE2(G)
G+1->G
End
Lbl 4
End
[...] |
A la fin de cette fraction de code, si G = 1, cela signifie que le joueur ne peut pas jouer cette case. Sinon, les positions des pions qui doivent être retournés sont déterminées grâce aux listes LREVER et LREVE2. La suite de mon code consiste à les retourner, toujours à l'aide de cosinus, sinus et ces deux listes.
|
| |
|
| |
Gui958
Autorisation : Membre
Nb de messages : 31
Inscrit le : Sam 26 Mai 2007, 23:15
|
Posté le : Jeu 28 Jui 2007, 16:49
|
|
|
Le programme marche tres bien car je l'ai utilisé hier, j'ai perdu contre Carlito ! 
---------------------- Longue vie a la Programmation !! |
 |
|
| |
Stupid
Autorisation : Membre
Nb de messages : 765
Inscrit le : Jeu 28 Sep 2006, 18:42
|
Posté le : Jeu 28 Jui 2007, 18:37
|
|
|
ok il utilise le cercle trigonométriaque
1pi/4=45° 2pi/4=90° etc...
astucieux
|
 |
|
| |
Sangohan38
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Jeu 28 Jui 2007, 22:20
|
|
|
Fallais y penser.
Sangohan38
|
 |
|
| |