这种小游戏是写起来很简单的我们直接看代码来理解就行了
最主要一点就是:对于剪刀石头布的编写
#include<stdio.h>
#include<stdlib.h>
#define max 100
//猜拳游戏在计算机中石头用0表示剪刀用1布用2表示
//使用随机函数来让计算机随机输出
int main()
{
int p_input;//用户输入
int judge;
srand(time(NULL));//设置随机种子
printf("猜拳游戏开始!\n");
do
{
int pc_input = rand() % 3;//随机输出作为电脑输出0~2
printf("\n石头剪刀布:0:石头,1:剪刀,2:布\n");
scanf_s("%d", &p_input);
switch (pc_input)
{
case 0:printf("石头"); break;
case 1:printf("剪刀"); break;
case 2:printf("布"); break;
}
printf("\n");
judge = (pc_input - p_input + 3) % 3;//判断条件
switch (judge)
{
case 0:printf("平局"); break;
case 1:printf("你输了"); break;
case 2:printf("你赢了"); break;
}
} while (1);
return 0;
}
2:
#include<stdio.h>
#include<stdlib.h>
//猜拳游戏——读取双方手势
int main()
{
int p_in;
int pc_in;
int judge;
srand(time(NULL));
printf("猜拳游戏开始!\n");
do
{
do
{
pc_in = rand() % 3;//随机输出作为电脑输出0~2
printf("\n石头剪刀布:0:石头,1:剪刀,2:布\n");
scanf_s("%d", &p_in);
} while (p_in < 0 || p_in>2);
printf("我出了");
switch (pc_in)
{
case 0:printf("石头"); break;
case 1:printf("剪刀"); break;
case 2:printf("布"); break;
}
printf("你出了");
switch (p_in)
{
case 0:printf("石头"); break;
case 1:printf("剪刀"); break;
case 2:printf("布"); break;
}
printf("\n");
judge = (pc_in - p_in + 3) % 3;//判断条件
switch (judge)
{
case 0:printf("平局"); break;
case 1:printf("你输了"); break;
case 2:printf("你赢了"); break;
}
} while (1);
}
3:
#include<stdio.h>
#include<stdlib.h>
//猜拳游戏——导入表示手势的字符串
int main()
{
int p_in;
int pc_in;
int judge;
char retry;
char* gesture[] = { "剪刀","石头","布" };
srand(time(NULL));
printf("猜拳游戏开始!\n");
do
{
pc_in = rand() % 3;//随机输出作为电脑输出0~2
do
{
printf("\n石头剪刀布:");
for (int i = 0; i < 3; i++)
{
printf("(%d)%s", i, gesture[i]);
}
printf(":\n");
scanf_s("%d", &p_in);
} while (p_in < 0 || p_in>2);
printf("我出了%s,你出了%s。\n", gesture[pc_in], gesture[p_in]);
printf("\n");
judge = (pc_in - p_in + 3) % 3;//判断条件
switch (judge)
{
case 0:printf("平局"); break;
case 1:printf("你输了"); break;
case 2:printf("你赢了"); break;
}
printf("再来一次吗?(y/n):");
scanf_s(" %c", &retry, 1);
} while (retry == 'y');
}
4:
#include<stdio.h>
#include<stdlib.h>
//猜拳游戏——让计算机后出
int main()
{
int p_in;
int pc_in;
int judge;
char retry;
char* gesture[] = { "剪刀","石头","布" };
printf("猜拳游戏开始!\n");
do
{
do
{
printf("\n石头剪刀布:");
for (int i = 0; i < 3; i++)
{
printf("(%d)%s", i, gesture[i]);
}
printf(":\n");
scanf_s("%d", &p_in);
} while (p_in < 0 || p_in>2);
pc_in = (p_in + 1) % 3;
printf("我出了%s,你出了%s。\n", gesture[pc_in], gesture[p_in]);
printf("\n");
judge = (pc_in - p_in + 3) % 3;//判断条件
switch (judge)
{
case 0:printf("平局"); break;
case 1:printf("你输了"); break;
case 2:printf("你赢了"); break;
}
printf("再来一次吗?(y/n):");
scanf_s(" %c", &retry, 1);
} while (retry == 'y');
}
5:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
//猜拳游戏——显示成绩
int p_in;
int pc_in;
int judge;
char retry;
int win, lose, same;
char* gesture[] = { "剪刀","石头","布" };
void init()
{
win = 0;
lose = 0;
same = 0;
srand(time(NULL));
printf("猜拳游戏开始!\n");
}
void readgesture()
{
pc_in = rand() % 3;
do
{
printf("\n石头剪刀布:");
for (int i = 0; i < 3; i++)
{
printf("(%d)%s", i, gesture[i]);
}
printf(":\n");
scanf_s("%d", &p_in);
} while (p_in < 0 || p_in>2);
}
//更新胜利失败和平局
void count(int result)
{
switch (result)
{
case 0:same++; break;
case 1:lose++; break;
case 2:win++; break;
}
}
//显示判断结果
void show_result(int result)
{
switch (result)
{
case 0:puts("平局"); break;
case 1:puts("你输了"); break;
case 2:puts("你赢了"); break;
}
}
//确定是否再次挑战
char wanna_retry()
{
printf("再来一次吗?(y/n):");
scanf_s(" %c", &retry, 1);
return retry;
}
int main()
{
init();
do
{
readgesture();
printf("我出了%s,你出了%s。\n", gesture[pc_in], gesture[p_in]);
judge = (pc_in - p_in + 3) % 3;//判断条件
count(judge);
show_result(judge);
retry = wanna_retry();
} while (retry == 'y');
printf("%d胜利,%d失败,%d平局\n", win, lose, same);
return 0;
}
6:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
//猜拳游戏——三局两胜
int p_in;
int pc_in;
int judge;
char retry;
int win, lose, same;
char* gesture[] = { "剪刀","石头","布" };
void init()
{
win = 0;
lose = 0;
same = 0;
srand(time(NULL));
printf("猜拳游戏开始!\n");
}
void readgesture()
{
pc_in = rand() % 3;
do
{
printf("\n石头剪刀布:");
for (int i = 0; i < 3; i++)
{
printf("(%d)%s", i, gesture[i]);
}
printf(":\n");
scanf_s("%d", &p_in);
} while (p_in < 0 || p_in>2);
}
//更新胜利失败和平局
void count(int result)
{
switch (result)
{
case 0:same++; break;
case 1:lose++; break;
case 2:win++; break;
}
}
//显示判断结果
void show_result(int result)
{
switch (result)
{
case 0:puts("平局"); break;
case 1:puts("你输了"); break;
case 2:puts("你赢了"); break;
}
}
//确定是否再次挑战
char wanna_retry()
{
printf("再来一次吗?(y/n):");
scanf_s(" %c", &retry, 1);
return retry;
}
int main()
{
init();
do
{
readgesture();
printf("我出了%s,你出了%s。\n", gesture[pc_in], gesture[p_in]);
judge = (pc_in - p_in + 3) % 3;//判断条件
count(judge);
show_result(judge);
} while (win < 2 && lose < 2);
printf("%d胜利,%d失败,%d平局\n", win, lose, same);
return 0;
}
程序展示: