用C语言创作睿智小游戏——猜拳篇

突发奇想,打算用C语言编写一个猜拳游戏,深知网上有很多教程,未看教程,自己开始盲编,

首先需要定义猜拳游戏的精髓“石头,剪刀,布”,这里我们用数字定义:

//赋予1=石头,2=剪刀,3=布

我们平时在玩猜拳游戏的时候是玩家VS玩家,有很多心理战术(察言观色),但是我们电脑是个面无表情的玩家!我们跟电脑对战只有三分之一的几率获胜

好了,知道这个游戏是玩家VS电脑,接下来就是电脑的出拳机制,它的随机性,这时候我们使用“随机数生成”

//产生随机数
int a = rand() % 3 + 1;

但是这种随机数产生是一次性的,我们需要加入随机数种子

srand((unsigned int)time);

而且还需要引入头文件

#include<time.h>

我们来用printf()来检验每次产生的随机数是否正确(在正式运行时我们需要隐藏打印出来的随机数,以确保游戏的公平性。看着电脑出拳并没有游戏体验呐!!)

//printf("%d\n", a);
//查验随机数

在随机数中我们已经赋予电脑值为:

int a          

我们要给玩家赋予:

unsigned int num = 0;
printf("请输入你要出的数字:");
scanf("%d", &num);                      

接下来就是判断我们游戏的胜负关系,大家都知道“石头,剪刀,布”是相互克制关系,我们赋予的值,“1,2,3”也是克制关系可以理解为“1赢2,2赢3,3赢1”,

这时候我们就开始确定玩家胜利的条件:

当电脑输入1(石头)时,玩家输入3(布)为胜利。

当电脑输入2(剪刀)时,玩家输入1(石头)为胜利。

当电脑输入3(布)时,玩家输入3(剪刀)为胜利。

a == 1 && num == 3 || a == 2 && num == 1 || a == 3 && num == 2

程序用与(&&)或(||)相连。

同理玩家失败的条件:

当电脑输入1(石头)时,玩家输入2(剪刀)为失败。

当电脑输入2(剪刀)时,玩家输入3(布)为失败。

当电脑输入3(布)时,玩家输入1(石头)为失败。

a == 1 && num == 2 || a == 2 && num == 3 || a == 3 && num == 1

其他情况则为平局:

玩家与电脑显示数值相同

a == num

用 if…else if…else…函数来判断结果:

if()
{}
else if()
{}
else{}

注:(当分析这一段时,我犯了一个错误,导致整个分析方法过于复杂

当时忘记输入“= =”两个等于,只输入一个导致报错,当时分析出了这种方法:

a>num&&a!= 2&&num!=2

假设电脑出手,数值a=3,电脑获胜条件只能是玩家num=1,所以必须要电脑数值大于玩家,且电脑与玩家都不能等于2)

到这里,我们猜拳程序就差不多完成了80%,接下来要开始完善代码与程序。

加入睿智的开场白:

printf("******************************************\n");
printf("*  欢迎来到睿智游戏之家                  *\n");
printf("*  本次您要玩的游戏是“剪刀,石头,布”  *\n");
printf("*  请按照规定输入:                      *\n");
printf("*  输入数字“1”进入游戏                 *\n");
printf("*  输入其他,进行退出                    *\n");
printf("******************************************\n");

与睿智的游戏介绍:

printf("************************************\n");
printf("*  游戏介绍:                      *\n");
printf("*  您需要跟电脑进行博弈。          *\n");
printf("*  输入数字“1”====“石头”       *\n");
printf("*  输入数字“2”====“剪刀”       *\n");
printf("*  输入数字“3”====“布”         *\n");
printf("*  输入其他,进行退出              *\n");
printf("************************************\n");

睿智的提示:

printf("************************************\n");
printf("*         恭喜你,你赢啦!         *\n");
printf("************************************\n");

睿智的结束语:

system("cls");
printf("************************************\n");
printf("*           感谢您的体验。         *\n");
printf("************************************\n");printf("正在退出,倒计时...\n");int f = 4;for (int i = 0; i < 4; i++){f--;Sleep(1000);printf("%d\n", f);}exit(0);

这里结束,我先做了一个清屏,并且用for()循环做了一个简易的倒计时,这里引入了计数时间函数sleep(),sleep的单位是毫秒,为了变成1秒,我在这里面单位加了(1000),!!调用sleep函数,还需要引入头文件

#include<Windows.h>   

最后为了保证游戏的多次参与度,这里用while(1)

while (1);

加入了一个无限循环。

最后将随机数(即电脑出拳)显示结果显示在玩家出拳后。

printf("电脑已出拳,该您了。\n");
printf("请输入你要出的数字:");
scanf("%d", &num);
printf("\n");
printf("电脑出拳结果是:%d\n",a);

下面是完整程序:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#include<limits.h>
#include<Windows.h>void test()
{printf("************************************\n");printf("*  游戏介绍:                      *\n");printf("*  您需要跟电脑进行博弈。          *\n");printf("*  输入数字“1”====“石头”       *\n");printf("*  输入数字“2”====“剪刀”       *\n");printf("*  输入数字“3”====“布”         *\n");printf("*  输入其他,进行退出              *\n");printf("************************************\n");srand((unsigned int)time);while (1){//产生随机数int a = rand() % 3 + 1;//赋予1=石头,2=剪刀,3=布//a>num&&a!=2//printf("%d\n", a);//查验随机数unsigned int num = 0;printf("\n");printf("电脑已出拳,该您了。\n");printf("请输入你要出的数字:");scanf("%d", &num);printf("\n");printf("电脑出拳结果是:%d\n",a);printf("\n");if (a == 1 && num == 2 || a == 2 && num == 3 || a == 3 && num == 1){printf("\n");printf("************************************\n");printf("* 耶,你输啦!(来自电脑的嘲讽。) *\n");printf("************************************\n");printf("\n");}else if (a == 1 && num == 3 || a == 2 && num == 1 || a == 3 && num == 2){printf("\n");printf("************************************\n");printf("*         恭喜你,你赢啦!         *\n");printf("************************************\n");printf("\n");}else if (a == num){printf("\n");printf("************************************\n");printf("*         哎呀,打平了-_-!        *\n");printf("************************************\n");printf("\n");}else{system("cls");printf("************************************\n");printf("*           感谢您的体验。         *\n");printf("************************************\n");printf("正在退出,倒计时...\n");int f = 4;for (int i = 0; i < 4; i++){f--;Sleep(1000);printf("%d\n", f);}exit(0);}}}void test01()
{printf("******************************************\n");printf("*  欢迎来到睿智游戏之家                  *\n");printf("*  本次您要玩的游戏是“剪刀,石头,布”  *\n");printf("*  请按照规定输入:                      *\n");printf("*  输入数字“1”进入游戏                 *\n");printf("*  输入其他,进行退出                    *\n");printf("******************************************\n");printf("\n");printf("\n");}void test02()
{system("cls");printf("************************************\n");printf("*           感谢您的体验。         *\n");printf("************************************\n");printf("正在退出,倒计时...\n");int f = 4;for (int i = 0; i < 4; i++){f--;Sleep(1000);printf("%d\n", f);}exit(0);printf("\n");}int main(void)
{int num;test01();printf("请输入值:");scanf("%d", &num);if (num == 1){system("cls");test();}else{test02();}printf("\n");system("pause");return 0;
}

用C语言创作睿智小游戏——猜拳篇相关推荐

  1. c语言编写数据存储的游戏,c语言经典小程序和c语言编写的小游戏带注释(自动保存的).doc...

    c语言经典小程序和c语言编写的小游戏带注释(自动保存的) 1.写一个定时?关机的小程?序,可以立即关?闭计算机,也可以一段?时间后关闭?计算机. #inclu?de #inclu?de #inclu? ...

  2. C语言编写2048小游戏

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/104992424 2 ...

  3. C语言实现2048小游戏

    C语言实现2048小游戏-粤嵌GE6818嵌入式系统实训 部分功能演示视频. 实现的全部功能: 1.字模显示封面组员名字 2.完成2048游戏在板子上的运行 3.成功或者失败需要有标志也可以计分 4. ...

  4. C语言实现2048小游戏---粤嵌GE6818嵌入式系统实训

    C语言实现2048小游戏---粤嵌GE6818嵌入式系统实训 实现的全部功能: 功能演示: 版本介绍 简易版--大佬选这个 完整版--想保研.想得高分.想要装逼的同学选这个 至尊版--零基础的.想要装 ...

  5. C语言 剧情版小游戏

    C语言超简单小游戏,,,剧情版,,, 运行效果图: #include<stdio.h>int main() {/*第一关*/int a,b,c,d,e,f,g,h; // int yx=8 ...

  6. c语言小游戏10例,C语言的应用 小游戏为例.doc

    C语言的应用 小游戏为例 贪吃蛇游戏设计 姓 名: 学 号: 班 级: 103511 指导老师: 张 印 2012年05月29日 <c语言程序设计>课程期末论文 PAGE I 目 录 TO ...

  7. c语言字符游动程序,C语言实现扫雷小游戏详解

    本文实例为大家分享了C语言实现扫雷小游戏的具体代码,供大家参考,具体内容如下 一.实现功能 首先显示一个小菜单,选择是否玩游戏.当用户选择退出时,程序运行结束,当用户选择玩游戏时,将提示用户输入扫雷位 ...

  8. linux 剪刀石头布c语言,利用C语言编写“剪刀石头布”小游戏

    前言 大家好~ 我是一名C语言初学者,学了C语言基础后,我制作了一个小游戏:剪刀石头布. 希望大家能对我的思路和代码提出小Tips(eg.更简便的方法与程序) 我也会虚心接受大家的建议~ 一.游戏原理 ...

  9. java 2048游戏_JAVA2048游戏 本课程设计是基于java语言的2048小游戏设计 联合开发网 - pudn.com...

    JAVA2048游戏 所属分类:游戏 开发工具:Java 文件大小:789KB 下载次数:4 上传日期:2020-11-23 10:57:11 上 传 者:滴滴滴大萌 说明:  本课程设计是基于jav ...

最新文章

  1. 2021年春季学期-信号与系统-第十二次作业参考答案-第五小题
  2. Ubuntu Server 14.04 下root无法ssh登陆
  3. thinkphp中配置信息的二维数组设置与使用
  4. ruby 连接mysql数据库
  5. 在Python,Java和Kotlin中标记参数和重载
  6. jQuery浏览器类型判断和分辨率判断
  7. cicd持续集成全程_CICD-持续集成amp;持续交付
  8. 授人以鱼不如授人以渔
  9. .NET现成程序给你用[四]
  10. 【人脸识别】基于matlab GUI PCA人脸识别(识别率)【含Matlab源码 802期】
  11. python实现神经网络梯度下降算法_python实现随机梯度下降(SGD)
  12. Kali 2020 DHCP获取动态ip和静态IP设置方法
  13. java节假日算法_java生成一年中假日表(包括周末和法定假期),用于计算一年中的工作日...
  14. php调查问卷数据库,关于一个问卷调查的程序,如何插入数据库
  15. C语言习题:输入10个学生5门课的成绩,分别用函数求:①每个学生平均分;②每门课的平均分;③找出所有分数中最高分
  16. 被关在寝室的某个下午
  17. 金融数据智能峰会 | 数据规模爆炸性增长,企业如何进行精准决策?云原生数据仓库数据化运营实战分享
  18. Selenium学习之浏览器操作_Sinno_Song_新浪博客
  19. 今日凌晨周杰伦生日首发《等你下课》,感动哭了!
  20. 前端项目中上传图片如何实现的

热门文章

  1. 说说工作上,自己最大的缺点是什么?
  2. linux sd卡启动盘制作工具,使用Etcher来创建可启动盘(可引导的USB盘或SD卡)的方法...
  3. 单工、双工、半双工、全双工通信常识
  4. vb用txt打开html文件,VB打开记事本程序源码,即用VB调用记事本,或用记事本打开一个txt文本文件。...
  5. 用python写一个自动生成春联的软件,打包exe
  6. amp 显示成转义字符 in html,常用 HTML 转义符对照表
  7. 空当接龙的BUG?Win7下的哦。
  8. UBNT ERLite-3 修复过程
  9. 第n小的质数 --C语言实现
  10. 女生学java好找工作吗?