前言

大家好~

我是一名C语言初学者,学了C语言基础后,我制作了一个小游戏:剪刀石头布。

希望大家能对我的思路和代码提出小Tips(eg.更简便的方法与程序)

我也会虚心接受大家的建议~

一、游戏原理

“剪刀石头布”这个游戏,想必大家都很熟悉了。

两个人在玩游戏时,事先都不知道对方将要出什么,这中间存在着一种随机性。

而这种随机性相当于C语言里stdlib.h库中rand()函数,rand()函数用来产生随机数,因为rand是根据提供给srand()的种子值返回一个随机数,所以要使每次随机的结果不一样,需要在srand()函数里引用time()函数,因为每一次运行程序的时间是不同的,所以seed会不同,运行出来的结果也会不同。

补充:

rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的。

rand函数需要有srand()函数用来设置rand()产生随机数时的随机数种子。

参数seed是整数,通常可以利用time(0)或geypid(0)的返回值作为seed。

首先将游戏者(gamer)的选项输入,并用switch分三种情况,将输入的A、B、C(或a、b、c)转换为整数(Gamer),然后用rand函数在1-3中随机产生一个整数来代表计算机(computer)的选项,再将两个整数相加,最后用switch来分类讨论,输出结果。

(因水平有限,我目前只能想到用这种方法来判断胜负,所以要避免两种不同情况相加出的结果相同)

二、C语言代码

1.引入函数

代码如下:

#include "stdio.h"

#include "stdlib.h"

#include "time.h"

2.初始页面显示

代码如下:

int main()

{

char Gamer=0;

int computer,gamer;

int result;

while (1)

{

printf("这个小游戏是——剪刀石头布,\n你要出:\n");

printf("A:剪刀\nB:石头\nC:布\n");

scanf_s("%c", &Gamer);

switch (Gamer)

{

case 65 | 97: //A a

gamer = 4;

break;

case 66 | 98: //B b

gamer = 7;

break;

case 67 | 99: //C c

gamer = 10;

break;

default:

printf("你的选择为%c\n选择错误,退出...\n", Gamer);

system("pause");

return 0;

break;

}

3.游戏过程及结果

srand((unsigned)time(0));//每一次的seed都不同

computer = rand() % 3+1;

result = gamer + computer;

printf("电脑出了:");

switch (computer)

{

case 3:printf("剪刀\n"); break;

case 1:printf("石头\n"); break;

case 2:printf("布\n"); break;

}

printf("你出了:");

switch (gamer)

{

case 4:printf("剪刀\n"); break;

case 7:printf("石头\n"); break;

case 10:printf("布\n"); break;

}

if (result == 6 || result == 10 || result == 11)

printf("你赢了!");

else if (result == 5 || result == 9 || result == 13)

printf("电脑赢了!");

else

printf("平手");

system("pause>nul&&cls"); //清屏

}

return 0;

}

总结

以上就是有关于游戏的思路和代码,编写程序前,我查阅了一些资料,并且询问了他人,在这个过程中,我有学到许多新知识.

但是因为水平有限,程序代码还是很繁琐,方法也不是最好的,希望能通过进一步的学习,开拓自己的思路,用更快捷的方法编写程序。

到此这篇关于利用C语言编写“剪刀石头布”小游戏的文章就介绍到这了,更多相关C语言写剪刀石头布游戏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

linux 剪刀石头布c语言,利用C语言编写“剪刀石头布”小游戏相关推荐

  1. C语言编写2048小游戏

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

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

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

  3. 用C语言编写一个小游戏

    这是一个比较通用的方法来编写一个小游戏用 C 语言: 首先,确定游戏的目标和规则.这可能包括游戏的玩法.胜负条件.游戏元素和游戏流程等. 其次,确定游戏的用户界面.这可能包括游戏的菜单.按钮.文本框. ...

  4. 基于c语言Easyx库的捕鱼达人小游戏

    基于c语言Easyx库的捕鱼达人小游戏(一) 文章目录 基于c语言Easyx库的捕鱼达人小游戏(一) 主菜单 游戏实现 捕鱼计分 下一阶段 主菜单 (写在前面的话:使用EASY-X库一定要命名为.cp ...

  5. c 语言掷骰子游戏,C 语言编程学习: 制作掷骰子小游戏

    C 语言编程学习: 制作掷骰子小游戏 问题描述 骰子是一个有六个面的正方体, 每个面分别印有 16 之间的小圆点代表点数. 假设这个游戏的规则是: 两个人轮流掷骰子 6 次, 并将每次投掷的点数累加起 ...

  6. C语言简单的键盘玩扫雷小游戏(完结)

    1:这次我们会将前面的代码进行整合,和整理,最终使我们的程序可以有效的运行起来. [1]初始化函数. void GameInit() {     //随机数种子     srand((unsigned ...

  7. 大一C语言课程设计之推箱子小游戏

    大一C语言课程设计之推箱子小游戏 先看一下效果 因为技术原因,开发说明没有加进去 按任意键以后 )] 同时响起来 你笑起来真好看的bgm 胜利界面会弹出一个弹出框 私信我或者加我qq:65245534 ...

  8. 利用计算机或图形计算器在,利用图形计算器编写趣味数字游戏

    利用图形计算器编写趣味数字游戏 陕西省西安市第一中学高三 刘曜.权力 [问题起源] 一些小型电子设备上常会有一些数字游戏,很有趣.例如计算机随机输出1个3位数,但是不予显示,要求玩家在最短的时间内把它 ...

  9. [实战]用flutter编写炸弹人小游戏同时支持web和移动端

    用flutter编写炸弹人小游戏同时支持web和移动端 flutter_BananaMon是我学习dart/flutter的时候开发的一个练手项目,他不依赖第三方游戏框架,是一个从零开始的项目,现在已 ...

  10. Python 编写石头剪刀布小游戏

    Python 编写石头剪刀布小游戏 一个简单的小游戏 程序只运行一次 每次出拳一次要运行一次,很麻烦,要让程序一直运行 长期玩游戏不利于身心健康,玩游戏要有度不是 免费玩了这么多次,要给项目创造一点收 ...

最新文章

  1. Spring Boot整合Spring Data JPA操作数据
  2. 2021年大数据ELK(十一):Elasticsearch架构原理
  3. redis消息队列写入mysql_redis怎么实现将消息队列持久化到数据库中?
  4. java list addall源码_Java集合:ArrayList源码分析
  5. 安徽理工学校计算机,安徽理工学校专业设置之计算机动漫与游戏制作专业简介...
  6. Egret之ProtoBuf(引用)
  7. string 找出所有数字 index_发现规律,解决整数转罗马数字
  8. 3==num VS num==3
  9. Java 10 正式发布!时隔 6 月带来 109 项新特性
  10. 数字图像处理-绪论(下)
  11. C#/.Net 的托管堆和垃圾回收
  12. Navicat备份sqlserver数据库
  13. 从导数到方向导数和梯度,一步步理解深度学习中的梯度下降算法
  14. hdu 4960 Another OCD Patient(动态规划)
  15. el-table单元格不自动换行
  16. ACE_TAO 014 ACE_Event_Handler
  17. System Power Tools Suite
  18. python多线程详解 Python 垃圾回收机制
  19. 前端笔记5 JQuery 语法及应用
  20. 520男生送什么礼物特别、2022特别礼物合集

热门文章

  1. 2021年美容师(初级)最新解析及美容师(初级)考试资料
  2. 如何学习 Delmia?
  3. 射频电路基础简窥之低噪声放大器
  4. html a标签去掉下划线_菜鸟HTML基础学习篇
  5. 学习:EtherCAT总线三种同步模式分析
  6. DNSSD官方文档翻译
  7. Windows QT创建或者载入项目 No valid kits found 或者Kits显示感叹号
  8. 2021年八省联考解析几何题目(双曲线上单点焦点弦长纯几何解法)
  9. 金刚经知识地图(上)
  10. MIPCMS火车头采集之“500 Internal Server Error”