[Algo] Dominos

Dominos [Algo] - Algo - Programmation

Marsh Posté le 03-01-2006 à 12:15:12    

Voilà je dois faire un projet, sur le jeu des dominos. Voici l'énoncé  
 
On souhaite ecrire un prog permettant de jouer aux dominos contre l'ordinateur  
 
Règle du jeu  
 
28 dominos  
- 2 joueurs, 7 dominos par joueur  
Celui qui a le dominos le plus fort commence  
On doit poser les dominos à la suite les uns des autres en les combinant (càd qu'un des cotés du domino posé doit poarter le meme nombre de points que le domino sur la table). Chaque joueur garde ses dominos cachés, hors de la vue des autres joueurs.  
 
Lorsqu'un joueur n'a pas de dominos à jouer il "boude", c'est-à-dire qu'il passe son tour.  
Le premier qui a posé tous ses dominos a gagné. Si personne ne poste tous ses dominos, c'est celui à qui, il en reste le moins qui gagne.  
 
Y a-t-il quelqu'un qui peut me donner un coup de main pour l'algo parce que j'vais péter une durite là :(

Reply

Marsh Posté le 03-01-2006 à 12:15:12   

Reply

Marsh Posté le 03-01-2006 à 13:40:23    

Quel est ta question sur l'Algo précisément ? Nous n'allons pas le faire a ta place :o


---------------
Hobby eien /人◕ ‿‿ ◕人\
Reply

Marsh Posté le 03-01-2006 à 14:00:47    

Ervehen a écrit :

Voilà je dois faire un projet, sur le jeu des dominos. Voici l'énoncé  
 
On souhaite ecrire un prog permettant de jouer aux dominos contre l'ordinateur  
 
Règle du jeu  
 
28 dominos  
- 2 joueurs, 7 dominos par joueur  
Celui qui a le dominos le plus fort commence  
On doit poser les dominos à la suite les uns des autres en les combinant (càd qu'un des cotés du domino posé doit poarter le meme nombre de points que le domino sur la table). Chaque joueur garde ses dominos cachés, hors de la vue des autres joueurs.  
 
Lorsqu'un joueur n'a pas de dominos à jouer il "boude", c'est-à-dire qu'il passe son tour.  
Le premier qui a posé tous ses dominos a gagné. Si personne ne poste tous ses dominos, c'est celui à qui, il en reste le moins qui gagne.  
 
Y a-t-il quelqu'un qui peut me donner un coup de main pour l'algo parce que j'vais péter une durite là :(


 
Essaye déjà de modéliser une pièce. Je dirais que c'est un couple de certaines valeurs... Ensuite, tu fais un tableau de ces couples, tu secoues, et tu as un tirage initial.  
 
Ensuite il faut distribuer 7 à l'un, 7 à l'autre (tableau, liste...). Le reste, c'est la pioche (ici, inutilisée).  
 
Ensuite, tu analyses (tri, parcours .) les tableaux, et tu détermines le domino le plus fort (la somme, je suppose) et tu lances le jeu (boucle ?). Tu affiches le jeu du joueur et tu saisis le domino choisi (déterminer une IHM intelligente, genre éviter de taper le couple. Pour 7 dominos, une simple valeur 1 à 7 suffit + 0 'je passe'. Il suffit de bien présenter les valeurs...).  
 
Ensuite, le domino joué est vérifié et 'placé' sur la table (tableau, liste). si le critère d'accrochage est valide, bien sûr.... Il est évidemment retiré du tableau du joueur. (marquage...).  
 
La table est affichée, puis on passe au joueur suivant etc.
 
Rien de bien difficile. Bien réfléchir à la structure des élements des tableaux (marquage:libre/occupé, couple de valeurs...)
 
Essaye de mettre tout ça au propre et on discute les détails.. Je ne vois pas comment tu ne ne peux pas arriver à faire ce simple raisonnement... Tu es en quelle classe ? Quel age ?

Message cité 1 fois
Message édité par Emmanuel Delahaye le 03-01-2006 à 14:01:50

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 03-01-2006 à 17:08:42    

Emmanuel Delahaye a écrit :

Je ne vois pas comment tu ne ne peux pas arriver à faire ce simple raisonnement...


 
Pourquoi se fatiguer a penser quand on peut le faire a ta place ?


---------------
Hobby eien /人◕ ‿‿ ◕人\
Reply

Marsh Posté le 03-01-2006 à 23:10:56    

Emmanuel Delahaye ==> Je suis en 1ere année IUT info, les autres matière je gère mais l'API j'ai vraiment du mal surtout quand c'est du "gros". Merci pour tes commentaires et encore y a certains termes que je ne comprend pas (que j'ai jamais vu quoi  :o )

Reply

Marsh Posté le 03-01-2006 à 23:16:13    

Ervehen a écrit :

Je suis en 1ere année IUT info,


Ok.

Citation :

l'API j'ai vraiment du mal surtout quand c'est du "gros".


L'API n'a rien à voir. Pour le moment, on parle conception et donc algorithme. C'est un mot nouveau ou quoi ?

Citation :

Merci pour tes commentaires et encore y a certains termes que je ne comprend pas (que j'ai jamais vu quoi  :o )


Je veux bien détailler, mais il faut être plus précis. Quels termes ?


Message édité par Emmanuel Delahaye le 04-01-2006 à 08:10:08

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 04-01-2006 à 00:06:10    

Faut faire un truc du genre ?
http://magicweb.manga-torii.com/dominos.htm
 
C'est relou à faire :o
(pis en plus je compte pas les points :p)

Reply

Marsh Posté le 04-01-2006 à 00:56:13    

A vouloir trop faire de zèle, ma CSS déconne, et je sais pas comment la corriger :D
 
Bon, allez, dodo :wahoo:


Message édité par Arjuna le 04-01-2006 à 00:56:22
Reply

Marsh Posté le 04-01-2006 à 08:09:30    


Joli !
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 04-01-2006 à 11:00:03    

on peut jouer que sur le bord du tapis aux dominos ?


---------------
Hobby eien /人◕ ‿‿ ◕人\
Reply

Marsh Posté le 04-01-2006 à 11:00:03   

Reply

Marsh Posté le 04-01-2006 à 11:03:00    

Arjuna a écrit :

Faut faire un truc du genre ?
http://magicweb.manga-torii.com/dominos.htm
 
C'est relou à faire :o
(pis en plus je compte pas les points :p)

Oui, mais je pense avec visual C++ en s'aidant que du langage C.
 

Reply

Marsh Posté le 04-01-2006 à 11:20:39    

en c tout court tu vas en chier. vive les objets JS bien crade !

Reply

Marsh Posté le 04-01-2006 à 11:32:27    

Tamahome a écrit :

on peut jouer que sur le bord du tapis aux dominos ?


Normalement, on peut jouer aussi sur les doubles (et c'est pour ça qu'ils sont de travers).
Mais normalement, on utilise aussi la pioche.
 
Là j'ai repris les règles énoncées dans le topic.
 
M'amuserai à mettre les règles alternatives ce soir si j'ai le courrage :)

Reply

Marsh Posté le 04-01-2006 à 12:04:54    

Au fait, Ervhen, j'espère que t'as lu la license :p
 

Code :
  1. // MagicDominos
  2. //  
  3. // Auteur : MagicBuzz alias Arjuna (administrateur@manga-torii.com)
  4. // License :
  5. //      Vous pouvez utiliser ce petit jeu sur n'importe quel site, sans rémunération ni rien.
  6. //      Cependant, il est rigoureusement interdit de recopier ce script afin de répondre à un TP de première année d'IUT :o
  7. //      Si vous avez l'intention d'utiliser ce script sur votre site, de le transcrire dans un autre langage, ou de l'améliorer, merci de tenir au courant son auteur
  8. //      et de concerver une license similaire.
  9. // Idée originale : Un TP de première année d'IUT :p
  10. //      http://forum.hardware.fr/hardwaref [...] 2452-1.htm
  11. //
  12. // Evolution :
  13. //  03/01/2005 MagicBuzz : Première version, beaucoup de corrections et d'améliorations
  14. //  04/01/2005 MagicBuzz : (la nuit est courte) rédaction de ces commentaires inutiles que personne ne lit jamais, mais ça m'amuse

Reply

Marsh Posté le 05-01-2006 à 20:14:02    

Je viens de le mettre à jour avec :
-> Les blancs (je les avais oublié)
-> Le calcul des points si tous les joueurs ont encore des dominos à la fin du jeu
 
Par contre, pour faire partir le jeu dans tous les sens sur les doubles, je voudrais bien le faire, mais là je vais avoir un problème d'affichage, donc je laisse tomber :D

Reply

Marsh Posté le 08-01-2006 à 16:10:39    

Bon j'ai commencé le programme mais je cale un peu....  
 
Joueur 1 : Moi  
Joueur 2 : Ordi  
 
//distribution  
 
Pour i de 0 à 6  
   Liste1[i] <- ListePiocheDominos  
   Liste2[i] <- ListePiocheDominos  
fpour  
 
Compare (Liste1[i].Case1 et Liste2[i].Case2)  
 
Pour i de 0 à et j de 0 à 6  
  Si Liste1[i].Case1 == 6 et Liste1[i].Case2 == 6  
  alors Joueur (Liste1[i])  
  Sinon Si Liste2[i].Case1 == 6 et Liste2[i].Case2 == 6  
  alors Joueur (Liste2[i])  
  Sinon i <- i+1 et j <- j+1  
fpour  
 
// cas où le joueur 1 a commencé  
 
Pour i de 0 à 6  
i = 0  
  Si Liste2[i].Case1 == Liste.Table[i].Case1 ou Liste.Table[i].Case2  
  alors Joueur (Liste2[i])  
Sinon  
  Si Liste2[i].Case2 == ListeTable[i].Case1 ou ListeTable[i].Case2  
  alors Joueur (Liste2[i])  
Sinon i <- i+1  
fpour  
 
// cas où le joueur 2 a commencé  
 
Ecrire "Choissisez vos dominos"  
Lire DominosChoisi  
 
Si DominosChoisis[i] != Liste1.Case[i]  
  Ecrire  "Vous ne possedez pas ce dominos"  
  Sinon AjouterDominoChoisi dans ListeTable  
finsi    

Reply

Marsh Posté le 09-01-2006 à 19:27:27    

Urgence, j'ai encore une semaine mais je bloque, si quelqu'un qui est calé en C pourrait le faire, ca m'arrangerait evidemment. Renumération en allopass possible.

Reply

Marsh Posté le 09-01-2006 à 19:31:50    

Ervehen a écrit :

Urgence, j'ai encore une semaine mais je bloque, si quelqu'un qui est calé en C pourrait le faire, ca m'arrangerait evidemment. Renumération en allopass possible.


 
Ouais mais non.


---------------
Hobby eien /人◕ ‿‿ ◕人\
Reply

Marsh Posté le 09-01-2006 à 19:32:27    

et voila :o tout arrive :o


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 09-01-2006 à 23:30:41    

Tamahome a écrit :

Ouais mais non.

Ca t'arrive d'écrire un post utile?

Reply

Marsh Posté le 10-01-2006 à 08:33:55    

Ervehen a écrit :

Ca t'arrive d'écrire un post utile?


 
en attendant, ton probleme je sais le résoudre (que ce soit en php, en fortran, en java, en C, en C# et meme avec Direct X9 ou SDL)... :D
 
Meme en GFA Basic tiens !
 
Ahaha r0x0r


---------------
Hobby eien /人◕ ‿‿ ◕人\
Reply

Marsh Posté le 10-01-2006 à 12:04:33    

Ouais mais toi tu l'as pas fais en JavaScript :p

Reply

Marsh Posté le 10-01-2006 à 13:02:24    

non parce que le JS c'est de la merde


---------------
Hobby eien /人◕ ‿‿ ◕人\
Reply

Marsh Posté le 10-01-2006 à 13:03:21    

ouais mais c'est facile à développer et au moins c'est vraiment interactif si c'est pour mettre en ligne :p

Reply

Marsh Posté le 10-01-2006 à 13:04:23    

et ca marche tellement pareil entre les différents browsers...


---------------
Hobby eien /人◕ ‿‿ ◕人\
Reply

Marsh Posté le 10-01-2006 à 13:07:14    

ben oui (attends que je branche ma alicebox que ça remarche, tu vas voir :o)
 
sous ie et moz j'ai rigoureusement la même chose, et y'a pas une seule ligne de spécifique à l'un ou à l'autre :o

Reply

Marsh Posté le 10-01-2006 à 13:08:01    

et sous lynx ?


---------------
Hobby eien /人◕ ‿‿ ◕人\
Reply

Marsh Posté le 10-01-2006 à 13:12:18    

sous lynx ça affiche "pas de javascript, pas de dominos", et c'est 100% full W3C compliant sans une ligne de spécifique :o

Reply

Marsh Posté le 10-01-2006 à 13:20:22    

et avec HighWire ? (browser pour Falcon)


---------------
Hobby eien /人◕ ‿‿ ◕人\
Reply

Marsh Posté le 10-01-2006 à 14:03:35    

Eh oh réveille pas les morts, tamahome... :P

Reply

Marsh Posté le 10-01-2006 à 15:53:12    

Tamahome a écrit :

et avec HighWire ? (browser pour Falcon)


ça fera pareil :p
 
parceque c'est dans une balise <noscript>, qui existe depuis HTML 3.2
Hors, avant cette version du HTML, tout tag "inconnu" était ignoré, et son contenu affiché, donc même avec un navigateur qui ne comprends que le HTML 1 ça marche (et toc :p)

Reply

Marsh Posté le 10-01-2006 à 15:53:42    

Taistède ende happrouvède avec Netscape 2.0

Reply

Marsh Posté le 10-01-2006 à 19:38:18    

Tamahome a écrit :

en attendant, ton probleme je sais le résoudre (que ce soit en php, en fortran, en java, en C, en C# et meme avec Direct X9 ou SDL)... :D
 
Meme en GFA Basic tiens !
 
Ahaha r0x0r

malheur...

Reply

Marsh Posté le 10-01-2006 à 21:23:39    

malheur toi meme, non mais [:smiley qui boude]


---------------
Hobby eien /人◕ ‿‿ ◕人\
Reply

Marsh Posté le 10-01-2006 à 22:38:09    

Arjuna a écrit :

en c tout court tu vas en chier. vive les objets JS bien crade !


En C++ c'est faisable sachant qu'il est en 1ere Semestre de DUT Info, cad qu'on ne lui demandera pas une super interface graphique & co, donc en gros il a surtout à gerer l'algorithme de jeu.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 11-01-2006 à 18:48:48    

J'ai le même projet à réaliser!! C'est bien chaud!

Reply

Marsh Posté le 11-01-2006 à 18:56:50    

C'est pas si dur que ça. Tu fait une structure domino avec les deux chiffres. Tu genere au hazard 14 dominos différents, en 2 listes, une pour le joueur 1, une pour le joueur 2. Apres tu n'a plus qu'a appliqué les regles du jeux, qui sont simple.
 
Le plus chaud c'est de programmer les entrees/sorties avec l'utilisateur quoi.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 11-01-2006 à 19:56:33    

C clair. J'ai pas l'habitude de faire ce type d'algo et il m'a suffit d'une soirée pour le faire dans un langage "de merde" avec une interface graphique pas trop pourrie et en améliorrant par rapport à l'énoncé (gestion de la pioche et de plusieurs adversaires) :)
 
Tiens, en passant... Je viens de recevoir ma AliceBox (hier) et ce soir j'ai pensé à ouvrir les ports necessaires afin de remettre en ligne mon serveur WEB. Vous pouvez me dire si http://magicweb.manga-torii.com/dominos.htm remarche ?


Message édité par Arjuna le 11-01-2006 à 19:57:27
Reply

Marsh Posté le 11-01-2006 à 19:58:26    

ca marche. :jap:


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 11-01-2006 à 20:04:00    

chouette :bounce:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed