Creation d'un uno en C/C++....grand besoin d'aide...merci d'avance

cs_celine11
Messages postés
2
Date d'inscription
mercredi 1 décembre 2004
Statut
Membre
Dernière intervention
2 décembre 2004
- 1 déc. 2004 à 21:03
Pamaury
Messages postés
341
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
17 juin 2008
- 3 déc. 2004 à 18:41
Au secours!!!

Je souhaite créer un uno en langage C mais à chaque creation de nouvelles fonctions, rien ne marche, je commence à saturer. Voici la description informelle de mon travail:

jeu de 45 cartes. Chaque carte se différencie de l'autre par sa couleur et, ou son numéro ; dans ces 45 cartes on trouve aussi des cartes joker composées de:
-les cartes « passe-partout » qui peuvent être déposées à n'importe quel moment du jeu sur n'importe quel type de cartes, et sont des cartes qui n'influent pas sur le reste du jeu.
-les cartes « change-couleur », elles aussi, peuvent être déposées à n'importe quel moment du jeu sur n'importe quel type de cartes, elles permettent au joueur qui les dépose de changer la couleur de la carte jouée au tour précédent
-les cartes « passe-ton-tour », qui ne doivent être déposées que sur des cartes ayant la même couleur qu? elles; elles permettent au joueur qui les dépose de jouer deux fois de suite, par conséquent l'autre joueur passe son tour.

Ce UNO fera participer deux joueurs
Règles:
Chaque participant, au début du jeu, doit se munir de huit cartes, piochées au hasard. Le joueur 1 commence la partie en posant une carte prise aléatoirement dans son tas de cartes. Puis, à tour de rôle, les joueurs devront poser une carte ayant un point commun avec la carte précédemment jouée (même couleur et, ou même numéro).
Si un joueur ne possède pas de carte pouvant être jouée, il peut se servir d'une carte joker : les cartes passe-partout et change-couleur peuvent être déposées sur n'importe quel type de carte mais le passe-ton-tour doit correspondre avec la couleur de la carte au sommet du tas de cartes jouées. Si ce joueur ne possède pas de carte joker qui corresponde au jeu, il est forcé de piocher une carte, la pose si elle convient, passe son tour sinon.

La partie se termine lorsque l'un des deux joueurs a gagné, id est lorsqu'il n'a plus de carte, ou lorsque la pioche ne contient plus de carte ; à ce moment-là, il faut compter le nombre de points des deux joueurs, le gagnant est celui qui a le moins de points.

Si quelqu'un pouvait m'apporter la solution, je vous en serais tres reconnaissante. Merci beaucoup.
Une etudiante en détresse.

N'hesiter pas à m'envoyer vos reponses sur mon adresse celine.bip@caramail.com ou celinebip@msn.com

Encore merci :)

1 réponse

Pamaury
Messages postés
341
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
17 juin 2008
3
3 déc. 2004 à 18:41
c'est pour toi ou pour un devoir ?

Bah je vais pas faire le code à ta place mais il faudrait dékà une structure carte:

#define COLOR_RED 0
#define COLOR_BLUE 1
#define COLOR_GREEN 2
#define COLOR_YELLOW 3

#define TYPE_JOKER 0 // carte passe-partout
#define TYPE_CHANGE_COLOR 1 // changement de couleur
#define TYPE_SKIP_TURN 2 // saute le tour

typedef struct
{
int color; // couleur
int type; // type
int num; // numéro s'il y a lieu d'être
} card;

quelques variable globale(on peut faire mieux avec une structure mais c'est le minimum):

#define CLOCKWISE 0 // sens des aiguille d'un montre
#define COUNTERCLOCKWISE 1 // sens inverse

int turn; // sens des aiguille d'un montre ou inversement

// deux joueurs dans ce cas mais facilement modifiable
#define PLAYER_NUMBER 2

// nombre de carte en main au départ
#define START_CARD_NUMBER 8

// nombre de cartes dans le jeu
#define CARD_NUMBER 45

int current_play; // index du joueur courant

maintenant il faut une structure pour chaque joueur

typedef struct player
{
char name[30]; // limité à 30 caractères
int card_num; // nombre de cartes
card *cards; // à allouer dynamiquement
} player;

// pile des cartes(dynamiques)
int cards_in_stack;
card *stack;

Voilà c'est déjà pas mal pour commencer, après il faut coder des fonction d'ajoue de carte de gestion de la pose des carte, de la pile..
Seul chose que j'ai pas compris : comment on calcul des points ????
0