c语言剪刀石头布小游戏
原创:
TC2.0以及gcc 编译通过
/*=======================================================
*Author :wacs5
*Date :20100601(YYYYMMDD)
*Function :剪刀石头布
*=======================================================*/
#include
#include
#include
#include
int main()
{
char name[4][15]={"","scissors","stone","cloth"};
int x[2];
int i;
srand(time(NULL));
for (i=0;i<10;i++) /*10 times game*/
{
x[0]=1+rand()%3; /*generate a number from 1 to 3*/
x[1]=1+rand()%3; /*generate another number from 1 to 3*/
printf("A=%-12sB=%-12s",name[x[0]],name[x[1]]);
if (x[0]==x[1])
printf("draw
"); /*和*/
else if (x[0]%3+1==x[1]) /*lost*/
printf("lost
");
else /*win*/
printf("win
");
}
getch();
return 0;
}
#include
using namespace std;
#include
#include
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 t;
}
int iswin(int n,int m)
{
if(n==m)
{
return 0;
}
else if(n==1&&m==2)
{
return -1;
}
else if(n==1&&m==3)
{
return 1;
}
else if(n==2&&m==1)
{
return 1;
}
else if(n==2&&m==3)
{
return -1;
}
else if(n==3&&m==1)
{
return -1;
}
else
{
return 1;
}
}
int main()
{
const int jiandao=1;
const int shitou=2;
const int bu=3;
cout<<"请输入你要选择的局数(必须为奇数且大于1):";
int n;
cin>>n;
int win=0,shu=0;
for(int i=0;i<n;++i)
{
cout<<"请出拳: 1:为剪刀;2:为石头;3:为布"<<endl;
int flag;
cin>>flag;
if(flag==1)
{
cout<<"你出的为剪刀!"<<endl;
}
else if(flag==2)
{
cout<<"你出的为石头!"<<endl;
}
else
{
cout<<"你出的为布!"<<endl;
}
int cf=cchuquan();
if(iswin(flag,cf)==1)
{
++win;
}
else if(iswin(flag,cf)==-1)
{
++shu;
}
}
if(win-shu>0)
{
cout<<"恭喜你获胜!"<<endl;
}
else
{
cout<<"非常遗憾!你失败了!"<<endl;
}
return 0;
}
c++写的 呵呵 你可以参考
#include <stdlib.h>
#include <time.h>
int main()
{
char m; //表示选择的是哪个人
int a,b; //分别表示人和电脑
printf("(J)iandao, (S)hitou, hu(B)u :\n");
scanf("%c",&m);
if(m!='J' && m!='S' && m!='B')
printf("Input error!\n");
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("电脑出的是石头\n");
break;
case 1:
printf("电脑出的是剪刀\n");
break;
case 2:
printf("电脑出的是布\n");
break;
default:
break;
}
if(a > b)
printf("人赢了!\n");
else if(a == b)
printf("平局!\n");
else
printf("电脑赢了!\n");
}
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
char sjb(); /* 电脑出拳 */
int iswin(char rc,char jc); /* 判断输赢:1|0|-1=人赢|平局|电脑赢 */
int main(){
char rc,jc,jx='Y';
int jg;
while(1){
jc=sjb();
printf("(J)iandao, (S)hitou, huo(B)u :");
scanf("%c",&rc);
if(rc>='a' && rc<='z')
rc-=32;
if( rc=='J' || rc=='S' || rc=='B' ){
jg=iswin(rc,jc);
printf("你出了%c,电脑出了%c。",rc,jc);
switch(jg){
case -1:
printf("遗憾,你输了!\n"); break;
case 0:
printf("平局!\n"); break;
case 1:
printf("恭喜,你赢了!\n");
}
}else
printf("选择错误!\n");
printf("再来一局?(y/n)");
getchar();
scanf("%c",&jx);
getchar();
if(jx!='Y' && jx!='y')
break;
}
return 0;
}
char sjb(){
char c;
int i;
srand(time(0));
i=rand()%3;
switch(i){
case 0:
c='J'; break;
case 1: c='S'; break;
case 2: c='B';
}
return c;
} /* sjb() */
int iswin(char rc,char jc){
int jg;
if(rc=='J' && jc=='B' || rc=='S' && jc=='J' || rc=='B' && jc=='S' )
jg=1; /* 人赢 */
else if(rc==jc)
jg=0; /* 平局 */
else
jg=-1; /* 人输 */
return jg;
} /* iswin */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <ctype.h>
#define RAND(N) (int)((double)rand() / ((double)RAND_MAX + 1) * N)
#define PRINT(msg) fputs(msg, stdout)
#define MAN_WIN 1
#define COM_WIN 2
#define NUL_WIN 3 /* 平手 */
void flushinp(void)
{
int ch;
while((ch = getchar()) != '\n' && ch != EOF);
}
char getman(void) {
char man;
do {
PRINT("请您出拳 >>> ");
scanf("%c", &man);
flushinp(); /* 清空输入缓冲区残余字符 */
man = tolower(man);
} while (man != 'j' && man != 's'
&& man != 'b' && man != 'q');
return man;
}
char getcom(void) {
char com;
com = RAND(3);
if (0 == com) { com = 's'; }
else if (1 == com) { com = 'j'; }
else if (2 == com) { com = 'b'; }
return com;
}
int judgewin(char man, char com)
{
if (man == com) {
return NUL_WIN;
}
else if (
'j' == man && 'b' == com
|| 's' == man && 'j' == com
|| 'b' == man && 's' == com) {
return MAN_WIN;
}
else {
return COM_WIN;
}
}
void disphand(int hand)
{
switch(hand)
{
case 's': PRINT("石头"); break;
case 'j': PRINT("剪子"); break;
case 'b': PRINT("布"); break;
default: break;
}
}
int main(void)
{
char man, com;
int ret;
system("color 3e");
PRINT("-----------猜 拳--------------\n"
"玩法: 玩家输入S/s(石头)、J/j(剪刀)、B/b(布),Q/q(退出)。\n");
srand( (unsigned) time(NULL) );
while (1) {
/* 人出拳 */
man = getman();
if ('q' == man) { /* 退出游戏 */
break;
}
else {
com = getcom(); /* 电脑出拳 */
PRINT("您出了: ");
disphand(man);
PRINT(", 我出了: ");
disphand(com);
ret = judgewin(man, com);
if (MAN_WIN == ret) { PRINT("。 您赢了! 不要骄傲啊。\n"); }
else if (COM_WIN == ret) { PRINT("。 我赢了! 承让承让。\n"); }
else { PRINT("。 这次打成平手了!\n"); }
}
}
PRINT("谢谢惠顾, 祝您天天开心!\n");
getchar();
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
char a;
puts("input:(J)iandao, (S)hitou, hu(B)u :");
scanf("%c",&a);
if(a!='J'&&a!='S'&&a!='B') {puts("选择错误");exit(0);}
char c;
srand(time(0));
int d=rand()%3+1;
if(d==1) c='J';
else if(d==2) c='S';
else if(d==3)c='B';
printf("输入的为%c\n电脑为%c\n",a,c);
switch (c-a)
{
case -8:puts("you win!");break;
case -9:puts("you win!");break;
case 17:puts("you win!");break;
case -17:puts("computer win!");break;
case 8:puts("computer win!");break;
case 9:puts("computer win!");break;
default:puts("平!");break;
}
}
为什么有两个rand 那玩家输入的去数据就起到了一个判断能否执行游戏的作用嘛
c语言剪刀石头布小游戏
printf("人出的是石头\\n");break;case 1:printf("人出的是剪刀\\n");break;case 2:printf("人出的是布\\n");break;default:break;} b = rand()%3;switch(b){ case 0:printf("电脑出的是石头\\n");break;case 1:printf("电脑出的是剪刀\\n");break;case 2:printf("电脑出的是布\\n...
C语言编程:剪刀石头布的小游戏
{ cout<<"请出拳: 1:为剪刀;2:为石头;3:为布"<<endl;int flag;cin>>flag;if(flag==1){ cout<<"你出的为剪刀!"<<endl;} else if(flag==2){ cout<<"你出的为石头!"<<endl;} else { cout<<"你出的为布!"<<endl;} ...
适合情侣一起玩的亲密游戏
适合情侣一起玩的小游戏 1.只说5句话 先用手机录下5句话,规定一段时间内,大家都不能说话,只能用录下的5句话交流,在不能预测对话的情况下,会很好玩! 2.舌尖上的剪刀石头布 闭上嘴巴是石头,伸出舌头是剪刀,张开嘴巴是布,过程真的会笑场很多次哈哈哈 3.为路人配音 两人坐在街边或在奶茶店里没有事情做时...
适合聚会时玩的40个小游戏
3. 剪刀石头布:这个游戏历史悠久,规则简单明了。双方同时出拳,剪刀剪败布,布包住石头,石头砸扁剪刀。输者需接受惩罚。4. 我傻瓜:类似于剪刀石头布,输的人喊“我傻瓜”,赢的人说“你傻瓜”。若喊错口令,则视为输,需接受惩罚。5. 摇色子:色子游戏中的一种。摇两颗色子,1至6的数字不...
大学增进情侣感情的25个小游戏
情侣升温的25个小游戏 1.打扑克“脱衣服”打扑克输的人脱掉身上的一件物品,赢的话就可以穿一件。2.情话大挑战 轮流对对方说情话,谁先受不住破防了,就要接受惩罚~3.嘴巴玩石头剪刀布 闭上嘴巴代表“石头”、伸出舌头代表“剪刀”、张开嘴代表“布”。玩的过程中会发现对方非常奇怪的面部表情,...
适合做群互动的小游戏
2. 成语接龙:在群内进行成语接龙游戏,要求参与者依次说出以某个字结尾的成语,下一个成语要以上一个成语的第一个字开头。这个游戏适合多人参与,能够激发语言思维和词汇储备。3. 骰子或剪刀石头布游戏:利用微信内置的骰子或剪刀石头布功能,进行简单的随机游戏。群成员可以设定游戏规则,例如输家需完成...
酒桌上活跃气氛的小游戏有哪些?
1、种酒桌小游戏有:十五二真心话和大冒险、傻瓜拳、剪刀石头布、唐僧妖精孙悟空、数大话骰盅、飞镖、打枪、猜骰子、俄罗斯转盘、小蜜蜂、数青蛙、00棒棒鸡、猜词语、划拳、开火车、抓老鼠、手口不一。2、青蛙跳水由任意一人开始说一只青蛙,第二人说一张嘴,第三人说两只眼睛,第四人说四条腿,以此...
学生党情侣越玩越亲密的小游戏
1. 情侣之间越玩越亲密的小游戏:《舌头剪刀石头布》- 玩法:闭上嘴巴是石头,伸出舌头是剪刀,张开嘴巴是布。这个游戏过程中,真的会笑场很多次,哈哈哈。2. 《暖昧俯卧撑》- 玩法:虽然这个游戏有些老套,但它可以撩得对方脸红心跳,结果往往不可描述。3. 《你别笑》- 玩法:双方在嘴里含一口水...
适合聚会时玩的40个小游戏
1. 十五二十:这个游戏简单易学,两人同时伸出双手,每只手握拳或张开,喊出“十五二十”后同时出手,猜中数字的人获胜。2. 真心话大冒险:通过猜拳或色子决定,输的人选择回答真心话或完成大冒险。真心话必须回答,否则必须完成一项挑战,如向陌生人表白。3. 剪刀石头布:这个游戏历史悠久,公平公正,...
适合15人左右的团队小游戏有哪些?
1、魔术猜猜看 我教你1个魔术,几个人各自用蜡烛在白纸上写字,然后用棉花沾很多墨水,把整张白纸都涂黑,刚才用蜡烛写的字就不会涂黑.可以写友情万岁的话。2、叠报纸 将2张4开的报纸放在地上,每张报纸上站5个人(一个小组),每个小组派一个代表与对方猜拳(剪刀石头布),输掉的小组须将...