用C语言做一个简单的石头剪子布游戏

求教,谢谢
不是这个啦~没这么复杂~就只用到了IF,
srand((unsigned)time(null));
cpu=rand()%3;

#include <stdio.h>
#include <stdlib.h>
enum games{cloth,hammer,scissors,game,quit};
enum games select();
enum games mach();
int won(enum games player, enum games machine);
void result(int win, int lose, int tie);

void main()
{
enum games player, machine;
int win,lose, tie;
win=lose=tie=0;

printf("\n%s\n%s\n%s\n%s\n%s","c 代表布","h 代表锤子","s 代表剪刀","g 代表结果","其他键退出");
while((player=select())!=quit)
switch(player){
case cloth:
case hammer:
case scissors:
machine=mach();
if(player==machine){
++tie;
printf("\n平局");
}
else if(won(player, machine)){
++win;
printf("\n你赢");
}
else{
++lose;
printf("\n电脑赢");
}
break;
case game:
result(win,lose,tie);
break;
}
result(win,lose,tie);
printf("\n再见,欢迎下次再来!\n");
}
enum games select()
{
char c;
enum games player;
printf("\n请按键选择: ");
while((c=getchar())==''||c=='\n'||c=='\t');
switch(c){
case 'c': player=cloth;
break;
case 'h': player=hammer;
break;
case 's': player=scissors;
break;
case 'g': player=game;
break;
default: player=quit;
break;
}
return(player);
}
enum games mach()
{
static int i=0;
i=rand()%3;
return((i==0)?cloth:((i==1)?hammer:scissors));
}
int won(enum games player, enum games machine)
{
int victory;
if(player==cloth)
victory=machine==hammer;
else if(player==hammer)
victory=machine==scissors;
else victory=machine==cloth;
return(victory);
}
void result(int win,int lose, int tie)
{
printf("\n游戏状况:");
printf("\n%-7d%s\n%-7d%s\n%-7d%s\n%-7d%s",win,"次你赢",lose,"次电脑赢", tie,"次平局",win+lose+tie,"次游戏总共");
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-01-17
就是A>B
B>C
C>A
如果其他可能就不能比较。

用C语言如何编写一个石头剪子布的程序
void main(){ int com,user;char c;srand((unsigned)time(NULL)); \/\/初始化随机数,如果没有这条语句,每次运行电脑产生的随机数序列都是一样的 printf("进入游戏\\n");do{ printf("请出拳(1.剪刀、2.石头、3.布):");scanf("%d",&user);com=rand()%3+1; \/\/产生1-3范围内的随机...

用C语言如何编写一个石头剪子布游戏?
way[3][10]={"石头","剪子","布"},mode_name[2][20]={"三局两胜","五局三胜"};\\x0d\\x0avoid new_game(int mode,int *p_win,int * p_lose,int *p_tide){\\x0d\\x0achar cmd[10];\\x0d\\x0aint computer,user,win=0,lose=0;\\...

用C语言编写一个石头剪子布游戏,具体要求如下,高分急求
char name[100],way[3][10]={"石头","剪子","布"},mode_name[2][20]={"三局两胜","五局三胜"};void new_game(int mode,int *p_win,int * p_lose,int *p_tide){ char cmd[10];int computer,user,win=0,lose=0;int cnt[2]={3,5};printf("***当前模式:\\t%s\\n",mode...

用C语言如何编写一个石头剪子布的程序
石头=1;剪子=2;布=3先是人输入一个数放在变量ren了然后是程序随机产生三个数(1,2,3)放在变量ji里if(ren==ji) printf("REPLAY!");esle if(ren==1&&ji==2) printf("YOU WIN");else if(ren==2&&ji==3) printf("YOU WIN");else if(ren==3&&ji==1) printf("YOU WIN");else printf(YOU L...

利用c语言编写石头剪子布游戏!!!一定要帮帮忙!!!
int win(int a, int b){ if ( a== ST && b== JZ ) return 1;if ( a== JZ && b== BU ) return 1;if ( a== BU && b== ST ) return 1;return 0;} int main(){ int computer;int human;char s[100];srand(time(0));loop:computer = arr[rand()%3];printf("...

c语言剪刀石头布小游戏
else\/\/分别用0,1,2代表石头,剪刀,布 { srand(time(NULL));a = rand()%3;switch(a){ case 0:printf("人出的是石头\\n");break;case 1:printf("人出的是剪刀\\n");break;case 2:printf("人出的是布\\n");break;default:break;} b = rand()%3;switch(b){ case 0:printf("电脑...

用C语言编写三局两胜的猜拳游戏,怎么编写
随机种子产生pc的随机出拳 srand(time(0));int pc = rand()%3; \/\/0, 1, 2 石头剪子布 屏幕输入自己的结果。scanf(" %d", &var);一个负责比较的代码块,很简单的逻辑处理。一个最多执行三次的循环。两个负责记录胜负次数的变量,针对单一角色,两胜或者两负,都会结束游戏。

现在有两个人在玩石头剪子布游戏,请你判断最后谁赢了。用R代表石头,S...
代码缺了个大括号的说,再补个大括号就可以运行代码了。代码我只注意到这些的说。

C语言中如何定义一个从1~7的随机数。
i nclude <stdio.h> i nclude \/\/使用当前时钟做种子 void main( void ){ int i;srand( (unsigned)time( NULL ) );\/\/初始化随机数 \/* 打印10个随机数. *\/ for( i = 0; i < 10;i++ )printf( " %d\\n", rand() );} 在C语言中,是如何取得这个随机数的?一个语句:rand();...

c语言猜拳问题,提示我【变量 "size_t" 不是类型名】……并告诉我错误...
没有绝望哪来希望!把#include<ctime>那个头文件换成time.h试试看。

相似回答