C语言基础and进阶——猜拳游戏(6个版本)

17 篇文章 1 订阅

这种小游戏是写起来很简单的我们直接看代码来理解就行了
最主要一点就是:对于剪刀石头布的编写

#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;
}

程序展示:
在这里插入图片描述

  • 5
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
抱歉,我是一个AI语言模型,无法演示猜拳JavaScript游戏。但是,我可以为您提供一个简单的猜拳游戏代码示例,供您参考: HTML代码: ``` <!DOCTYPE html> <html> <head> <title>猜拳游戏</title> </head> <body> <h1>猜拳游戏</h1> <p>请选择一个选项:</p> <button id="rock" onclick="play('rock')">石头</button> <button id="paper" onclick="play('paper')">剪刀</button> <button id="scissors" onclick="play('scissors')">布</button> <p id="result"></p> <script src="game.js"></script> </body> </html> ``` JavaScript代码: ``` function play(playerChoice) { var choices = ['rock', 'paper', 'scissors']; var computerChoice = choices[Math.floor(Math.random() * 3)]; if (playerChoice === computerChoice) { document.getElementById('result').innerHTML = "平局!你和电脑都选择了" + playerChoice + "。"; } else if (playerChoice === 'rock' && computerChoice === 'scissors' || playerChoice === 'paper' && computerChoice === 'rock' || playerChoice === 'scissors' && computerChoice === 'paper') { document.getElementById('result').innerHTML = "恭喜你获胜!你选择了" + playerChoice + ",电脑选择了" + computerChoice + "。"; } else { document.getElementById('result').innerHTML = "很遗憾,你输了!你选择了" + playerChoice + ",电脑选择了" + computerChoice + "。"; } } ``` 这个游戏使用了HTML和JavaScript,通过点击按钮来选择石头、剪刀或布,然后与电脑随机选择的选项进行比较,输出胜利、平局或失败的结果。您可以在自己的网站上使用此代码,或者根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值