Posez votre question Signaler

Vache taureau ??!!

natasha - Dernière réponse le 24 juin 2009 à 16:05
salut je cherche un programme en C qui conciste a faire un jeu VACHE TAUREAU
c'est un jeu qui consiste a trouver un nombre composé 4 chiffres qui est généré aleatoirement par le pc
Vache(V) veut dire que le chifre existe mais n'est pas à sa place Taureau(T) veut dire que le chiffre existe et à sa place
et une version de ce jeu qui est jouée par deux utilisateurs , un qui propose la combinaison (qui restera cachée) , un autre qui compte le trouver en 10 essais ..
merci de bien vouloir m'aider je m'appelle NATASHA et voila mon e-mail kordz-of-devil@hotmail.com
merci enermement !
Lire la suite 

Vache taureau »

21 réponses
Réponse
+2
moins plus
y a que des boulets sur ce topic ... grave ... pôve natasha ...
Ajouter un commentaire
Réponse
+0
moins plus
whaouu, ça a l'ait complexe ^^

bon, je ne sais pas si ça pourra t'aider, mais je pense que avec du php, ça pourra se faire sans problème.

bon, pour mettre que le joueur n'a qu'un certain temps sur chaque page, tu peux mettre un <meta http-equiv="refresh" content ="300;url=page_perdu.htm" />
pour vérifier encore plus, tu rajoute derrière un système de session.

pour voir si un pion est mal plaçé, et si il existen je ne vois pas d'aute façon que de tester petit a petit ce qu'il a dit.

C'est à dire:

d'abord on regarde si les pions qu'il a placé sont correctes (lors de l'envoi, on lui a fait remplir un cham de formulaire de type text, de nom reponse. il met un r pour rouge, un v pour vert, un b pour bleu ect. On suppose que la question porte sur 4 pions pour le moment)

session_start ();
$bonne_reponse = $_SESSION['bonne_reponse']
for ($x = 0; $x < 4; $x++)
{
if ($_POST['reponse'][$x] == $bonne_reponse[$x]
{
$_SESSION['vache'] += 1;
unset( $_POST['reponse'][$x]);
unset( $bonne_reponse[$x]);
}
}


j'ai pas le temps de finir ce soir, mais bon, je fini mon code demain promis ;)
natasha - 27 mars 2007 à 01:19
je suis desolée mais c'est pas du tout ça ce que je veux !!
en fait je cherche un programme en langage C !! le concept est tres facile mais on a deux versions

1°) 1ERE VERSION : ça se joue contre l'ordinateur on peu definir la fonction random !!

2°) 2EME VERSION: ça se joue entre deux utilisateurs !!
Ajouter un commentaire
Réponse
+0
moins plus
enfin j'ai trouvé la 1ere version et voila l'exemple en langage C .. pour vous faciliter la tache .. mais il me manque la 2eme version mais aussi tout ce qui est design et animation !
voici le programme !


#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
int hasardsr()
{int n,k,l,m,p;
do
{randomize();
n=random(10000);
k=(n/1000);
l=((n/100)%10);
m=((n/10)%10);
p=(n%10);}
while(n<1000||n>9999||(k==l||k==m||k==p||l==m||l==p||m==p));
return n;}
int hasard()
{int n;
do
{randomize();
n=random(10000);}
while(n<1000||n>9999);
return n;}
int taureau(int n,int Nb)
{int k,l,i=0,j;
for(j=0;j<4;j++)
{k=n%10;
l=Nb%10;
n/=10;
Nb/=10;
if(k==l)i++;
}
return i;}
int vache(int n,int Nb)
{int k,l,m,p,i=0,a,b,c,d;
k=(n/1000);
l=((n/100)%10);
m=((n/10)%10);
p=(n%10);

a=(Nb/1000);
b=((Nb/100)%10);
c=((Nb/10)%10);
d=(Nb%10);

if(a==b&&b==c&&b==d)i=0;

else if(k==l&&l==m&&l==p)i=0;

else if((k==l&&k==m)||(a==b&&a==c)){if(d==k||d==l||d==m)i++;}
else if((k==l&&k==p)||(a==b&&a==d)){if(c==k||c==l||c==p)i++;}
else if((l==m&&l==p)||(b==c&&b==d)){if(a==l||a==m||a==p)i++;}
else if((k==m&&k==p)||(a==c&&a==d)){if(b==a||b==m||b==p)i++;}

else if((k==l)||(a==b)){if(a==m||a==p)i++;
if(b==m||b==p)i++;
if(c==l||c==p)i++;
if(d==l||d==m)i++;}
else if((k==m)||(a==c)){if(a==l||a==p)i++;
if(b==m||b==p)i++;
if(c==l||c==p)i++;
if(d==l||d==m)i++;}
else if((k==p)||(a==d)){if(a==m||a==l)i++;
if(b==m||b==p)i++;
if(c==l||c==p)i++;
if(d==l||d==m)i++;}
else if((l==m)||(b==c)){if(a==m||a==p)i++;
if(b==k||b==p)i++;
if(c==k||c==p)i++;
if(d==l||d==k)i++;}
else if((l==p)||b==d){if(a==m||a==p)i++;
if(b==m||b==k)i++;
if(c==l||c==k)i++;
if(d==k||d==m)i++;}
else if((m==p)||(c==d)){if(a==l||a==p)i++;
if(b==k||b==p)i++;
if(c==l||c==k)i++;
if(d==l||d==k)i++;}

else {if(a==l||a==m||a==p)i++;
if(b==k||b==m||b==p)i++;
if(c==k||c==l||c==p)i++;
if(d==k||d==l||d==m)i++;}

return i;}
int main()
{int N,i=0,Nb,ch,va,tau,j=1;
textcolor(RED);
textbackground(WHITE);
do
{i=0;
j=1;
clrscr();
cprintf("\n VACHE-TAUREAU\n");
cprintf("\n\r\tMENU\n");
cprintf("\n\r\t1-Niveau 1:Sans repetition des chiffres\n");
cprintf("\n\r\t2-Niveau 2:Possibilite de repetition des chiffres\n");
cprintf("\n\r\t3-Aide\n");
do
{cprintf("\n\r\tDonnez votre choix: ");
scanf("%d",&ch);}
while(ch<1||ch>3);
if(ch==1)
{{clrscr();
N=hasardsr();
cprintf("\n\r\t\t\t\t\tNIVEAU 1 DU JEU");
do
{do
{cprintf("\n\n\r\t Essaie %d:",i+1);
scanf("%d",&Nb);}
while(Nb<1000||Nb>9999);
tau=taureau(N,Nb);
cprintf("\r\t\t\t %d T,",tau);
va=vache(N,Nb);
cprintf("\r %d V",va);
i++;
if(tau==4){cprintf("\n\n\r\t\tBRAVO!!!! Vous avez reussi a trouve le bon nombre");
getch();
}}
while(i<10&&tau<4);
if(i>=10)cprintf("\n\n\r Vous avez echouez le numero est: %d.Essayez encore.",N);}
cprintf("\n\n\r Voulez vous rejouer");
cprintf("\n\n\r 1-Oui");
cprintf("\n\n\r 2-Non");
do
{cprintf("\n\n\rDonnez votre choix: ");
scanf("%d",&j);}
while(j<1||j>2);
}
if(ch==2)
{{clrscr();
N=hasard();
cprintf("\n\r\t\t\tNIVEAU 2 DU JEU");
do
{do{
cprintf("\n\n\r\t Essaie %d:",i+1);
scanf("%d",&Nb);
}while(Nb<1000||Nb>9999);
tau=taureau(N,Nb);
cprintf("\r\t\t\t %d T,",tau);
va=vache(N,Nb);
cprintf("\r %d V",va);
i++;
if(tau==4){cprintf("\n\n\r\t\tBRAVO!!!! Vous avez reussi a trouve le bon nombre");
getch();
}}
while(i<10&&tau<4);
if(i>=10)cprintf("\n\n\r Vous avez echouez le numero est: %d.Essayez encore.",N);}
cprintf("\n\n\r Voulez vous rejouer");
cprintf("\n\n\r 1-Oui");
cprintf("\n\n\r 2-Non");
do
{cprintf("\n\n\r Donnez votre choix: ");
scanf("%d",&j);}
while(j<1||j>2);
}
if(ch==3)
{clrscr();
cprintf("\n\r\t\t\tAIDE");
cprintf("\n\r\t\t\tLE PRINCIPE DU JEU");
cprintf("\n\n\r Il s\'agit de trouver un nombre a 4 chiffres differents si vous avez choisis le niveau 1 et peuvent se repeter si vous avez choisis le niveau 2. Si vous trouvez un chiffre qui existe dans l\'autre nombre et qui est bien place c\'est un taureau et c\'est une vache si le chiffre existe mais pas bien place. Vous avez 10 essaies pour trouver le nombre choisi au hasard par l\'ordinateur.\n\n\t\t\t\tBONNE CHANCE");
getch();}
}
while(j==1);
getch();}


merci a vous !!
Ajouter un commentaire
Réponse
+0
moins plus
Tu veux pas plutôt le faire en VBA ? Tu as le source là :
http://www.vbfrance.com/codes/VACHE-TAUREAU_29901.aspx

y a même la description du jeu avec les mêmes fautes d'orthographe :)
Ajouter un commentaire
Réponse
+0
moins plus
ça ne m'a pas trop aidé , je cherche la 2eme version et l'animation et tout ça :s voila !!
svp essayez de m'aider , car je suis nulle en ça , et si je faits pas ce projet je vais redaire l'année :'(
Ajouter un commentaire
Réponse
+0
moins plus
bon, je viens d'arriver, et je n'ai pa eut le temps deregarder ton code, mais je t'ai pondu ça ^^
(bien sur, il te faut un interpreteur de php pour l'utiliser)


<?php
//type de création: logiciel/jeu
//début de création : mardi 27 mars 2007 a 19:02
$vache = 'vaches';
$taureau = 'taureaux';
$titre = 'KIM - jeu de la vache';
$fichier = 'kim_jeu.php';
$couleur['w'] = '#ffffff';
$couleur['b'] = '#000000';
$couleur['g'] = '#ff00ff';
$fond = 'red';
$style= 'body {background-color:#eeffff}
h1 {text-align:center}
.titre {text-align:center;font-weight:bold}';

if (isset($_GET['action']))
{
if($_GET['action'] == 'depart')
{
session_start ();
unset ($_SESSION);
$_SESSION['nb_coups'] = $_POST['nb_coups']+2;
$_SESSION['nb_pions'] = $_POST['nb_pions'];
$_SESSION['numero_du_coup'] = 0;
$_SESSION['reponse'] = '';
$_SESSION['coup'] = array ();
$nb_couleur = count ($couleur);
$_SESSION['bonne_rep'] = '';
for ($x = 0; $x < $_POST['nb_pions']; $x++)
{
$_SESSION['bonne_rep'] .= array_rand($couleur);
}
$_SESSION['afficher'] = '<select name="rep[]">
';
foreach ($couleur as $key => $value)
{
$_SESSION['afficher'] .= ' <option value="'.$key.'">'.$key.'</option>
';
}
$_SESSION['afficher'] .= '</select>
';
header ('location:'.$fichier.'?action=afficher');
}
elseif ($_GET['action'] == 'afficher')
{
session_start ();
echo '<!DOCTYPE HTML PUBLIC \'-//W3C//DTD HTML 4.01 Transitional//EN\' \'http://www.w3.org/TR/html4/loose.dtd\'>
<html>
<head>
<title>'.$titre.'</title>
<style>'.$style.'</style>
</head>
<body>';

if ($_SESSION['nb_coups'] != 0)
{
$_SESSION['nb_coups']--;
if (isset ($_SESSION['nb_restant']) and $_SESSION['nb_restant'] == 0)
{
echo '<h1>',$_SESSION['bonne_rep'],'</h1>
<p>Vous avez gagné!!!!!!!!</p>
<div><a href="',$fichier,'">Voulez vous recommencer</a>
</div>';
}
else
{
echo '
<form action="',$fichier,'?action=coup" method="post">
<table>
<tr class="titre">
<td>Coup N°</td>
<td>Combinaison testée</td>
<td>Résultat</td>
</tr>';
$x = 0;
foreach ($_SESSION['coup'] as $key => $value)
{
echo '
<tr>
<td>',$key,'</td>
<td>', $_SESSION['reponse'][$x], '</td>
<td>',$value,'</td>
</tr>';
$x++;
}
echo '</table><table>';
echo '<tr>';
for ($x = 0; $x < $_SESSION['nb_pions']; $x++)
{
echo '<td>', $_SESSION['afficher'], '</td>
';
}
echo '</tr>';

echo '</table>
<div><input type="submit" value="essayer" /></div>
</form>';
}
}
else
{
echo '</table>
<p>Vous avez perdu: la bonne combinaison était: '.$_SESSION['bonne_rep'].'</p>
<div><a href="'.$fichier.'">Voulez vous recommencer?</a></div>';
}

echo '
</body>
</html>';
}
elseif ($_GET['action'] == 'coup')
{
session_start ();
$nb_vache = 0;
$nb_taureau = 0;
$test = $_SESSION['nb_pions'];
if ($test != $_SESSION['nb_pions']) header ('location:'.$fichier.'?erreur=1');
foreach ($_POST['rep'] as $value)
{
if (!preg_match_all('/:digit:/', $value, $test) != strlen ($value)) header ('location:'.$fichier.'?erreur=type');
}
$reponse = implode ($_POST['rep']);
$compare = $_SESSION['bonne_rep'];
$taille = strlen ($_SESSION['bonne_rep']);
$nb_vache = 0;
for ($x = 0; isset($reponse[$x]); $x++)
{
if ($reponse[$x] == $compare[$x])
{
$nb_vache++;
$reponse[$x] = '';
$compare[$x] = '';
}
}
$nombre = 0;
for ($a = 0; isset($reponse[$a]); $a++)
{
$kim = strpos ($compare, $reponse[$a]);
if ($kim != 0)
{
$nombre++;
$compare[$kim] = '';
}
}
$nb_taureau = &$nombre;
$nb_restant = $taille - $nb_taureau - $nb_vache;
$_SESSION['nb_restant'] = $nb_restant;
$_SESSION['reponse'][$_SESSION['numero_du_coup']] = implode (' - ', $_POST['rep']);
$_SESSION['coup'][$_SESSION['numero_du_coup']] = 'Vous avez '.$nb_vache.' '.$vache.' et '.$nb_taureau.' '.$taureau.' et '.$nb_restant.' pions mal plaçés';
$_SESSION['numero_du_coup']++;
header ('location:'.$fichier.'?action=afficher');
}
elseif ($_GET['action'] == 'css')
{
echo 'body {background-color:'.$fond.'}';
}

}
else
{
echo '<!DOCTYPE HTML PUBLIC \'-//W3C//DTD HTML 4.01 Transitional//EN\' \'http://www.w3.org/TR/html4/loose.dtd\'>
<html>
<head>
<title>', $titre, '</title>
<style>'.$style.'</style>
</head>
<body>
<form action="'.$fichier.'?action=depart" method="post">
<table>
<tr>
<td>Nombre de coups autorisés <input type="text" name="nb_coups" value="5" /></td>
<td>Nombre de pions <input type="text" name="nb_pions" value="5" /></td>
</tr>
</table>
<input type="submit" value="commencer" />
</form>
</body>
</html>';
}
//fin de création : mardi 27 mars 2007 a 20:06
?>



tu peux paramétrer pas mal de truc dans l'en-tête, notamment les couleurs / pions utilisé

il n'est pas fini, bien sur ^^.

je ne sais pas si il plante, mais il ne m'a pas semblé :D

amicalement

bubuche1987
Ajouter un commentaire
Réponse
+0
moins plus
je suis désolé mais comme j'ai di je cherche la programmation en C en langage C svp :'( ..
merci qd meme bubuche
princesse - 28 mars 2007 à 16:11
nous aussi avons le meme problème c la meme solution pour la 2 version que la 1 mais remplacant random(10000) par scanf et il faut diviser l ecran en 2 et ce la en utilisant des bibliotheque de graphique et c ce que nous cherchons.
lirey83 - 28 mars 2007 à 19:02
Tu te fais une fonction qui te renvoie le nombre que le joueur a choisi puis le programme se poursuit comme avant :

int joueur()
{
  int N;
  do
  {
    cprintf("\nEntez votre nombre : ");
    scanf("%d", &N);
  }
  while (N < 1000 || N > 9999);

  return N;
}
Ajouter un commentaire
Réponse
+0
moins plus
merci a toi lirey83 ! mais le probleme qui persisite c'est que le nombre introduit par le 1er joueur n'est pas caché ! moi j'ai essayé de l'ameliorer mais ça n'a rien donné !
pouvez vous le modifier pour que le nombre introduit par le 1er joueur soit caché ??
merciii enormemment !
:D
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

La solution donnée à princesse sur l'autre post :
char nb[100];
int nb2,i=-1;

printf("Entrez votre valeur : ");
do{
i++;
nb[i]=getch();
if(nb[i]!=0xd)
	printf("*");
}while(nb[i]!=0xd);
nb2=atoi(nb);


Avec stdlib.h
Ajouter un commentaire
Réponse
+0
moins plus
je l'ai pas compris :s
pouvez vous la mettre dans une fonction stp stp merci !
je suis bête je sais (c vrai parceque je suis blonde !! )
Ajouter un commentaire
Réponse
+0
moins plus
Ben heu

Par exemple dans le main :

/* Déclarations des variables */
char nb[100];
int nb2,i=-1;

/* On demande à l'utilisateur de rentrer une valeur (qu'il faut cacher) */
printf("Entrez votre valeur : ");
/* La saisie se fait dans cette boucle */
do{
i++;
nb[i]=getch(); /* Saisie du premier caractère appuyé par le user */
if(nb[i]!=0xd) /* Si la touche n'est pas 'Entrer' on affiche une '*' */
   printf("*");
}while(nb[i]!=0xd); /* On sort de la boucle quand le user appuye sur Entrée */
nb2=atoi(nb); /* On transforme la chaine de caractère en nombre */

Dis moi ce que tu ne comprends pas.
Ajouter un commentaire
Réponse
+0
moins plus
merci merci merci infiniment Stupeflip t un ange !!
comme ça g compris !
je vai tout mettre en place et si j'aurais un probleme je vais demander votre aide :D
Ajouter un commentaire
Réponse
+0
moins plus
bonjour natasha
moi je suis en C (ben rgaya) et toi???
Ajouter un commentaire
Réponse
+0
moins plus
/* constrea.h

Defines the class constream, which writes output to the screen
using the iostream interface.

Copyright (c) 1991 by Borland International
All Rights Reserved.
*/

#if !defined( __CONSTREA_H )
#define __CONSTREA_H

#if !defined( __IOSTREAM_H )
#include <iostream.h>
#endif // __IOSTREAM_H

#if !defined( __IOMANIP_H )
#include <iomanip.h>
#endif // __IOMANIP_H

#if !defined( __CONIO_H )
#include <conio.h>
#endif // __CONIO_H

class conbuf : public streambuf
{

public:

conbuf();
virtual int _Cdecl overflow( int = EOF );

void _Cdecl clreol();

void _Cdecl setcursortype( int );

void _Cdecl highvideo();
void _Cdecl lowvideo();
void _Cdecl normvideo();

void _Cdecl textattr( int );
void _Cdecl textbackground( int );
void _Cdecl textcolor( int );

void _Cdecl gotoxy( int, int );
int _Cdecl wherex();
int _Cdecl wherey();

void _Cdecl delline();
void _Cdecl insline();

void _Cdecl clrscr();
void _Cdecl window( int, int, int, int );

static void _Cdecl textmode( int );

void activate();
void deactivate();

private:

virtual void makeActive();
virtual void makeInactive();
virtual void swap();

text_info data;
int cursortype;
static conbuf *current;

};

inline void conbuf::clreol()
{
activate();
::clreol();
}

inline void conbuf::setcursortype( int t )
{
activate();
cursortype = t;
::_setcursortype( t );
}

inline void _Cdecl conbuf::highvideo()
{
activate();
::highvideo();
}

inline void _Cdecl conbuf::lowvideo()
{
activate();
::lowvideo();
}

inline void _Cdecl conbuf::normvideo()
{
activate();
::normvideo();
}

inline void conbuf::gotoxy( int x, int y )
{
activate();
::gotoxy( x, y );
}

inline int _Cdecl conbuf::wherex()
{
activate();
return ::wherex();
}

inline int _Cdecl conbuf::wherey()
{
activate();
return ::wherey();
}

inline void conbuf::textattr( int a )
{
activate();
::textattr( a );
}

inline void _Cdecl conbuf::textbackground(int newcolor)
{
activate();
::textbackground( newcolor );
}

inline void _Cdecl conbuf::textcolor(int newcolor)
{
activate();
::textcolor( newcolor );
}

inline void _Cdecl conbuf::delline()
{
activate();
::delline();
}

inline void _Cdecl conbuf::insline()
{
activate();
::insline();
}

inline void conbuf::clrscr()
{
activate();
::clrscr();
}

inline void conbuf::window(int left, int top, int right, int bottom)
{
activate();
::window( left, top, right, bottom );
}

inline void _Cdecl conbuf::textmode( int mode )
{
::textmode( mode );
}

inline void conbuf::activate()
{
if( current != this )
swap();
}

inline void conbuf::deactivate()
{
makeInactive();
}

class constream : public ostream
{

public:

constream();

conbuf* _Cdecl rdbuf(); // get the assigned conbuf

void _Cdecl clrscr();
void _Cdecl window( int, int, int, int );
void _Cdecl textmode( int );

static int _Cdecl isCon( ostream& );

private:

static long isCon_;
conbuf buf;

};

inline conbuf* _Cdecl constream::rdbuf()
{
return (conbuf *)ostream::rdbuf();
}

inline void _Cdecl constream::clrscr()
{
rdbuf()->clrscr();
}

inline void _Cdecl constream::window( int l, int t, int r, int b )
{
rdbuf()->window( l, t, r, b );
}

inline void _Cdecl constream::textmode( int m )
{
rdbuf()->textmode( m );
}

inline int _Cdecl constream::isCon( ostream& o )
{
return (o.flags() & isCon_) != 0;
}

class omanip_int_int
{

public:
omanip_int_int(ostream& (*_f)(ostream&, int, int ), int _z1, int _z2 ) :
_fn(_f), _ag1(_z1), _ag2(_z2) { }
friend ostream& _Cdecl operator<<(ostream& _s, omanip_int_int& _f)
{ return(*_f._fn)(_s, _f._ag1, _f._ag2); }

private:
ostream& _Cdecl (*_fn)(ostream&, int, int);
int _ag1;
int _ag2;
};

ostream& _Cdecl clreol( ostream& );
ostream& _Cdecl highvideo( ostream& );
ostream& _Cdecl lowvideo( ostream& );
ostream& _Cdecl normvideo( ostream& );
ostream& _Cdecl delline( ostream& );
ostream& _Cdecl insline( ostream& );

omanip_int cdecl setcrsrtype( int );
omanip_int cdecl setattr( int );
omanip_int cdecl setbk( int );
omanip_int cdecl setclr( int );
omanip_int_int cdecl setxy( int, int );

#endif // __CONSTREA_H


j ai cette bib avec ses fcts j éspère qu elle peut t aider :)
toto1983 - 24 juin 2009 à 16:05
Salut intéressant tes scripts en C ... tu es dans quelle formation ?
Ajouter un commentaire
Réponse
+0
moins plus
enfin merci mais g rien compris de tout ça ! je cherche une programmation en C !!
mais si vous pouvez , connaissez vous comment peut-on faire un temps pour chaque essai .. ça veut dire que chaque essai sera limité a un temp precis et si le joueur depasse ce temp l'essai sera perdu !
voila merci
Ajouter un commentaire
Réponse
+0
moins plus
hi every one
natacha you have the same problem as i do
i am very bad in french but i can understand a little
so..can you please..please do me a favor and put
what ever you find on this (mini projet en vaches-taureaux)
or you can send it to me on my e-mail
cuz i have to do it with (interfaces avec des coleurs, des tableaux)
pleas pleas send it to khaoula_3000@yahoo.com
thanx for every thing
and if you dont want to i can understand but i will not succes in this years :'(
thanx again for every thing
Ajouter un commentaire
Réponse
+0
moins plus
abcdefg
Ajouter un commentaire
Ce document intitulé « Vache taureau ??!! » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook