C语言设计一个石头剪刀布游戏c代表布h代表锤子s剪刀g查看结果q退出游戏,有注释能运行

供稿:hz-xin.com     日期:2025-01-15
把C语言的石头剪刀布(游戏)变成C++版本,在源程序中必须使用类,输入输出要符合C++语言的特性

将剪刀石头布做成一个类,把enum的类型做为常量就可以了。

#include
#include
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("
%s
%s
%s
%s
%s","c 代表布","h 代表锤子","s 代表剪刀","g 代表结果","其他键退出");
while((player=select())!=quit)
switch(player){
case cloth:
case hammer:
case scissors:
machine=mach();
if(player==machine){
++tie;
printf("
平局");
}
else if(won(player, machine)){
++win;
printf("
你赢");
}
else{
++lose;
printf("
电脑赢");
}
break;
case game:
result(win,lose,tie);
break;
}
result(win,lose,tie);
printf("
再见,欢迎下次再来!
");
}
enum games select()
{
char c;
enum games player;
printf("
请按键选择: ");
while((c=getchar())==''||c=='
'||c=='');
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("
游戏状况:");
printf("
%-7d%s
%-7d%s
%-7d%s
%-7d%s",win,"次你赢",lose,"次电脑赢", tie,"次平局",win+lose+tie,"次游戏总共");
}

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
char *c[3] = { "剪刀", "石头", "布" };
int pc, user, result;
while (1)
{
srand((unsigned)time(NULL));
pc = rand() % 3;
//随机出现石头剪刀布 printf("g=剪,s=石,h=布\n");printf("该你出手了:");
scanf("%c",&user);
//自己输入石头剪刀布之一
if (user > 2)
user = 2;
printf("对手出%s,你出%s\n",c[pc],c[user]);
result = pc - user;
switch (result)
{
case -1:
case 2:
printf("你胜了");
break;
case 0:
printf("打成平手\t\t\n");
break;
default:
printf("对手胜了\t\t\n");
break;
}
}
}
祝你愉快!

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
main()
{
 int i=10,m,n;
 char game[3]={'c','h','s'};   /*用一个字符数组保存出的手势!*/
 srand((unsigned)time(NULL));  /*定义随机种子*/
 while(i)
 {
  system("cls");
  printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
");
  printf("          1 开始游戏           
");
  printf("          0 退出游戏           
");
  printf("            请选择             
");
  printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
");
  printf("请输入:
");
  scanf("%d",&i);
  switch(i)
  {
  case 1:
   m=(int)(rand()%3);  /*随机出甲的结果*/
   n=(int)(rand()%3);   /*随机出乙的结果*/
   printf("甲出的%c 乙出的%c
",game[m],game[n]);
    if(m==n)
     printf("甲乙丙人平手!  按任意键继续!");
    else if((m==0&&n==1)||(m==1&&n==2)||(m==2&&n==0))
     printf("恭喜 甲赢了!   按任意键继续!");
    else printf("恭喜 乙赢了!  按任意键继续!");break;
  case 0:printf("
退出游戏!");break;
  default :printf("
输入有误,请重新输入!
");break;
  }
  getch();
 }
}

/*测试可用!不知道满足你的要求吗?*/



只会C++。。对c语言不太熟悉

C语言编程:剪刀石头布的小游戏
include <cstdlib> int cchuquan(){ int t;srand(time(0)); \/\/seed t = rand() % 3+ 1; \/\/ random number 1-3 if(t==1){ cout<<"电脑出的为剪刀!"<<endl;} else if(t==2){ cout<<"电脑出的为石头!"<<endl;} else { cout<<"电脑出的为布!"<<endl;} return...

谁能给个C 石头剪刀布的程序?
接着,程序会显示用户和计算机的选择。然后根据选择进行比较,以决定游戏的胜负。如果选择相同,表示平手。如果用户选择的与计算机选择的相邻(例如用户选择了石头,计算机选择了剪刀),则用户获胜。如果用户的选择是布且计算机选择了石头,也视为用户获胜。其他情况,用户输掉游戏。这个程序提供了一个简单且...

c 语言石头剪刀布
为了用C语言实现石头剪刀布游戏,我们首先需要定义两个整型变量,分别代表玩家甲和玩家乙的选择。接着,我们通过循环让玩家进行多次游戏,直到程序终止为止。每次游戏时,我们要求玩家输入他们的选择。如果他们的选择相同,输出平局;如果甲胜,输出“甲赢”;如果乙胜,输出“乙赢”。下面,我们来详细解释每...

C语言石头剪刀布程序
帮你修改了一下判断部分。你试试吧:#include <stdio.h>#include <stdlib.h>#include<sys\/types.h>#include<sys\/timeb.h>main(){ loop: printf("欢迎来玩石头剪刀布,请使用键盘输入,0代表石头,1代表剪刀,2代表布。\\n***\\n"); int x,com,user; unsigned int seedVal; struct...

就C语言中 猜拳游戏的代码
char gamer; \/\/ 玩家出拳 int computer; \/\/ 电脑出拳 int result; \/\/ 比赛结果 \/\/ 为了避免玩一次游戏就退出程序,可以将代码放在循环中 while (1) { printf("这是一个猜拳的小游戏,请输入你要出的拳头:\\n");printf("A:剪刀\\nB:石头\\nC:布\\nD:不玩了\\n");scanf("%c%*c", &...

关于设计一个C语言石头剪刀布游戏问题
while(1){ ch = getch();if(ch=='1'||ch=='2'||ch=='3'||ch=='4'){ printf("%c\\t",ch);break;} } if(ch=='4')break;switch(ch){ case '1': printf("石头 VS ");break;case '2': printf("剪刀 VS ");break;case '3': printf("布 VS ");break;} Computer =...

求石头剪刀布c语言代码 要求有提示信息表征游戏进行和结果
在深入探讨求石头剪刀布的C语言代码之前,我们先简要理解一下这个游戏的基本规则。石头、剪刀、布是一种流行的手势游戏,规则简单:石头胜剪刀,剪刀胜布,布胜石头。现在,我们来构建一个简单的C语言版本,实现用户与程序之间的互动,以及提供清晰的提示信息来表示游戏进行和结果。为了创建这个程序,我们...

...石头、布的游戏。用s表示尖刀,r表示石头,c表示布。谢谢了,大神帮忙...
include<iostream> #include<stdlib.h> #include using namespace std; void main () { char a, b; srand ((unsigned)time (NULL)); \/\/产生随机数种子 while (1) { cout << "请输入您的选择(s表示剪刀,r表示石头,c表示布):"; cin >> a; int m = (int) (3 * rand () \/ (...

用c语言编写一个游戏 游戏规则用户选择出拳的数字(1、石头 2、剪刀 3...
include <stdio.h>#include <stdlib.h>#include int main(){ int player; int computer; int playerWin = 0, computerWin = 0, balance = 0; scanf_s( "%d", &player ); while( player != 0 ) { srand( time( 0 ) ); computer = rand() % 3 + 1; if( computer =...

用1,2,3分别代表石头剪刀布,输入甲乙的猜 拳选择输出甲乙猜拳结果。(分 ...
void func(int a,int b){ int num=0;if((a==1)&&(b==1))printf("打平\\n");else if((a==1)&&(b==2))printf("甲获胜\\n");else if((a==1)&&(b==3))printf("乙获胜\\n");else if((a==2)&&(b==1))printf("乙获胜\\n");else if((a==2)&&(b==2))printf("打...