前 言
这是我在嵌入式学习
的第一阶段——C语言基础的学习过程中完成的一个项目,如果对您有帮助的话,可以点赞,收藏,关注哦,有其他问题可以私聊交流。
项目还有需要改进优化的地方,也可以添加其他有趣的功能,期待各位大佬的指点和交流。
一、项目简介
项目名:石头剪刀布小游戏
功 能:与玩家进行石头剪刀布小游戏
介 绍:这个项目的主要目的是为用户提供一个用来进行石头剪刀布的程序,同时也作为一个C语言学习
阶段前期的实践项目。它主要是用来消遣的娱乐程序,同时可以提高编写代码的思维。
二、功能介绍
玩家可以根据界面提示输入剪刀、石头、布相对应的数字来进行选择;
电脑通过产生随机数来选择。
三、技术实现
1.界面设计
2.代码设计
2.1设计思路
①将“石头”,“剪刀”,“布”写进数组,方便后面打印功能的实现
②生成随机数并且%3,从而得到剪刀石头布的相对应数字
③判断胜负
④询问是否继续
2.2预处理头文件
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
2.3搭建主函数框架
int main(void)
{
return 0;
}
2.4定义变量
int playerChoice, computerChoice, result;
char *choices[] = {"石头", "剪刀", "布"};
char continuePlaying;
2.5生成随机数
// 随机数生成
srand(time(NULL));
2.6展示界面并提示玩家输入
printf("欢迎来到石头、剪刀、布游戏!\n");
printf("请输入你的选择(1=石头,2=剪刀,3=布):");
scanf("%d", &playerChoice);
2.7展示计算机和玩家选择
// 计算机随机出拳
computerChoice = rand() % 3 + 1;
printf("你的选择是:%s\n", choices[playerChoice - 1]);
printf("计算机的选择是:%s\n", choices[computerChoice - 1]);
2.8判断胜负
// 判断胜负
if (playerChoice == computerChoice)
{
result = 0; // 平局
printf("平局!\n");
}
else if ((playerChoice == 1 && computerChoice == 2) || (playerChoice == 2 && computerChoice == 3) || (playerChoice == 3 && computerChoice == 1))
{
result = 1; // 玩家赢
printf("你赢了!\n");
}
else
{
result = -1; // 计算机赢
printf("计算机赢了!\n");
}
2.9询问是否继续
// 可以选择是否继续游戏
printf("是否想再来一局?(y\n):");
scanf(" %c", &continuePlaying);
if (continuePlaying == 'y' || continuePlaying == 'Y')
{
system("cls");
goto STAR;
}
else
{
printf("游戏结束,谢谢参与!\n");
}
四、整体代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int playerChoice, computerChoice, result;
char *choices[] = {"石头", "剪刀", "布"};
char continuePlaying;
STAR:
// 随机数生成
srand(time(NULL));
printf("欢迎来到石头、剪刀、布游戏!\n");
printf("请输入你的选择(1=石头,2=剪刀,3=布):");
scanf("%d", &playerChoice);
// 计算机随机出拳
computerChoice = rand() % 3 + 1;
printf("你的选择是:%s\n", choices[playerChoice - 1]);
printf("计算机的选择是:%s\n", choices[computerChoice - 1]);
// 判断胜负
if (playerChoice == computerChoice)
{
result = 0; // 平局
printf("平局!\n");
}
else if ((playerChoice == 1 && computerChoice == 2) || (playerChoice == 2 && computerChoice == 3) || (playerChoice == 3 && computerChoice == 1))
{
result = 1; // 玩家赢
printf("你赢了!\n");
}
else
{
result = -1; // 计算机赢
printf("计算机赢了!\n");
}
// 可以选择是否继续游戏
printf("是否想再来一局?(y\n):");
scanf(" %c", &continuePlaying);
if (continuePlaying == 'y' || continuePlaying == 'Y')
{
system("cls");
goto STAR;
}
else
{
printf("游戏结束,谢谢参与!\n");
}
return 0;
}
五、总结
这个石头剪刀布小游戏项目是在他人带领下完成的,只是作为一个练手的实践项目,这里面用到了C语言基础中的基本数据类型,printf函数的使用,scanf函数的使用,结构化编程,函数。这并不是一个已经完全完善了的代码,需要补足的地方还有很多,如可以将部分功能封装成函数,也可以通过代码写入其他功能,你也可以根据自己需要写入合适的功能。
你们的支持和反馈对我来说非常重要。如果你有任何问题或建议,请通过私聊随时与我联系。别忘了点赞,收藏,关注哦!