Débutant en language C

Fermé
kirikou - 29 sept. 2011 à 21:05
periplasme Messages postés 391 Date d'inscription vendredi 22 avril 2011 Statut Membre Dernière intervention 5 février 2013 - 29 sept. 2011 à 22:01
Bonjour a tous

Je viens de debuter l'apprentissage du language C, je voulais m'exercer a concevoir un jeu qui consiste a lancer un dé de 6 face avec un touche (barre d'espace) et marquer des points pour chaque lancer different de 6, si tu obtiens 6 ton tour est annuler et vous marquez 0 points, si vous decider d'arreter avant(avec une autre touche autre que la barre d'espacement)vous marquez les points qui est egal a la somme de tous vos lancers, et le deuxieme joueur prends le tour directement et vos points sont comptabiliser. Pour le deuxieme joueur c'est la meme chose et le premier qui arrive a 500 points a gagné.

Je voulais utiliser une console win32 qui pourra se presenter comme suit:

JOUEUR1 0 JOUEUR2 0

lancement / total lancer
1 1
5 6
4 10
1 11
3 14


merci de me filer quelque piste de solution ! :)




1 réponse

periplasme Messages postés 391 Date d'inscription vendredi 22 avril 2011 Statut Membre Dernière intervention 5 février 2013 53
29 sept. 2011 à 21:33
quand tu dis que tu débute c'est as dire ? tu maitrise les structures de données ? les variables, la création de fonction ?

il y a 1001 façon d'obtenir un même résultat en programmation, alors il faut qu'on en sache plus pour s'adapter a ce que tu sait faire ;-)
1
Bonjour

Sincerement, je ne maitrise pas trop bien la ccreation des fonctions. Voici mon code la ou je suis bloqué, il me reste a creer une fonction aleatoire pour les lancer des joueurs, et aussi alterner les deux joueurs a tour de role et d'additionner le score a chaque changement de joueur.
Il n'est pas tres beau, mais il marche au moins :)

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


/*Fonction decider premier joueur*/
int decider_premier_joueur(int a, int b);

/*Fontions pour choix aleatoires du chois du joueur et du lancer du de*/
int nb_aleatoire(int min, int max);


int main(void)
{
int i;
int lancer_joueur1 = 0;
int lancer_joueur2 = 0;
int total_joueur1 = 0;
int total_joueur2 = 0;
int score_joueur1 = 0;
int score_joueur2 = 0;

/*Debut de la boucle pour le choix du premier joueur*/

srand((unsigned int) time(NULL)); /*Pour l'initialisation de rand*/
rand();

if (nb_aleatoire(1, 2) == 1)
{
/*Affichage du message pour que le joueur commence*/
printf("Vous commencez en premier\n\n");
system("PAUSE");
system("CLS");

printf("JOUEUR AI\n");
printf("------------------\n");
printf("%i\t\t%i\n\n", score_joueur1, score_joueur2);
printf("Lancer total\n\n");
printf("%i\n %i\n", lancer_joueur1, total_joueur1);

system("PAUSE");
system("CLS");
}
else
{
/*Affichage du message pour que ÌA puisse commence*/
printf("L'ordinateur commence en premier\n");
system("PAUSE");
system("CLS");
}

printf("JOUEUR AI\n");
printf("------------------\n");
printf("%i\t\t%i\n\n", score_joueur1, score_joueur2);
printf("Lancer total\n\n");
printf("%i\n %i\n", lancer_joueur2, total_joueur2);

return 0;
}

int decider_premier_joueur(int a, int b)
{
return (int) (a + rand() / (RAND_MAX + 0.01) * (a - b + 1));
}


int nb_aleatoire(int min, int max)
{
return (int)(min + rand() / (RAND_MAX + 0.01) * (max - min + 1));
}
0
periplasme Messages postés 391 Date d'inscription vendredi 22 avril 2011 Statut Membre Dernière intervention 5 février 2013 53
29 sept. 2011 à 22:01
ça me fait penser à ça :
https://forums.commentcamarche.net/forum/affich-23233846-programmer-l-ordinateur-dans-un-jeu

humm étrange ... z'auriez pas eu le même devoir ? ;-)

bref, deja tes 2 fonction decider_premier_joueur et nb_aleatoire fant EXACTEMENT la même chose, donc tu peux en viré une. je suis pas au top ce soir, je regarderai en details demain matin, et si t'as de la chance (et si personne ne viens d'ici la) je te donnerais une petite correction
0