C语言猜拳游戏
2016年最后一篇文章
今天闲来无事Google了一段C语言写的猜拳游戏的代码(本人水平比较低,几乎是刚入门),我没做什么修改。这个switch语句里面对result的处理让我眼前一新,原来是这么玩的,也算是学到了。
代码本身比较简单,算法上面也没有什么难理解的地方,所以我没有做什么修改,如果大家有兴趣可以完善一下交互的功能。
以下是代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
char gamer;
int computer;
int result;
while (1){
printf ("这是一个猜拳小游戏,请选择你的爪子:\n");
printf ("A:剪刀\nB:石头\nC:布\nD:不玩了\n");
scanf ("%c%*c",&gamer);
switch (gamer){
case 65:
case 97:
gamer = 4;
break;
case 66:
case 98:
gamer = 7;
break;
case 67:
case 99:
gamer = 10;
break;
case 68:
case 100:
return 0;
default:
printf ("你的选择是%c 选择错误,退出...\n",gamer);
getchar();
system("cls");
return 0;
break;
}
srand ((unsigned)time(NULL)); //随机数种子
computer = rand()%3; //产生随机数并取余,得到电脑出拳
result = (int)gamer+computer; // 运算时要将char类型的gamer转换成int
printf ("电脑出了");
switch (computer){
case 0: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==7||result==11){
printf ("你赢了!");
}
else if (result==5||result==9||result==10){
printf ("电脑赢了!");
}
else{
printf ("平手");
}
system("pause>nul&&cls"); //暂停并清屏
}
return 0;
}
由于本人是新手,所以有些函数的功能还不是很清楚,在这里做一些小小的解释:
srand和rand函数:在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原形是void srand( inta)。可以利用srand((unsigned)time(NULL))来产生随机序列,因为没一次运行程序的时间是不同的。
- 首先给srand()提供一个种子,它是一个unsigned int 类型,其取值范围从0~65535.
- 然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(0~32767).
- 根据需要多次调用rand(),从而不间断的得到新的随机数.
- 无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果.
time()函数:用于获取时间戳,用time(null)获取当前时间戳。
2016.12.31晚
C语言猜拳游戏的更多相关文章
- C语言写猜拳游戏中遇到的函数循环小问题
各位可能在初学C语言的时候都有写过猜拳游戏.但在写猜拳的函数时,避免不了会使用循环. 当函数被套在一个循环中的时候,你的计分变量可能就会被重置为函数体里的初始值.那么怎么解决这个问题? 其实很简单,你 ...
- Java 入门课程视频实战-0基础 上线了,猜拳游戏,ATM实战,欢迎围观
Java 入门课程视频实战-0基础 已经上传完了.欢迎小伙伴们过来围观 直接进入: http://edu.csdn.net/course/detail/196 课程文件夹例如以下: 1 初识Java ...
- JavaScript--面向对象--猜拳游戏
//html代码 <!doctype html> <html> <head> <meta charset="UTF-8"> < ...
- 猜拳游戏GuessGame源码
该游戏是一款比较不错的猜拳游戏GuessGame源码案例,GuessGame——猜拳游戏,这也是我自己的第一款休闲类的游戏案例,游戏实现也比较简单的,希望这个能够帮大家的学习和使用,更多安卓源码尽在源 ...
- 求三数中Max和猜拳游戏
方法一: Console.WriteLine("请输入三个数字:"); int a = int.Parse(Console.ReadLine()); int b = int.Par ...
- android版猜拳游戏源码分享
android版猜拳游戏源码分享安卓版猜拳游戏源码,该文件中带有安装测试包的,这个游戏源码比较简单的,现在有两个代码,一个自定义VIEW的,一个就是普通的imageView图片,游戏非常适合一些新手的 ...
- C#面向对象编程实例-猜拳游戏
1.需求 现在要制作一个游戏,玩家与计算机进行猜拳游戏,玩家出拳,计算机出拳,计算机自动判断输赢. 2.需求分析 根据需求,来分析一下对象,可分析出:玩家对象(Player).计算机对象(Comput ...
- 【C语言探索之旅】 第一部分第八课:第一个C语言小游戏
内容简介 1.课程大纲 2.第一部分第八课:第一个C语言小游戏 3.第一部分第九课预告: 函数 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写 ...
- 2017-2-22 if语句 if语句的嵌套 以及课堂练习 经典猜拳游戏,闰年判断,输出当前时间的天数等
(一)if语句 1.格式 if(){ }else if() { } 注意:如果if后面不写花括号,只执行下面第一句 (二)语句1:顺序语句 2:循环语句 3:分支语句 课后练习: 1.猜拳游戏(用 ...
随机推荐
- iOS中获取cell中webview的内容尺寸
最近项目中遇到在cell中获取webView的内容的尺寸的需求 实现的思路其实很简单 就是通过执行js 获取尺寸即可 为了后面用着方便我直接封装了一个HTML的cell 起名就叫 STHTMLBase ...
- ASP.NET vNext总结:EntityFramework7
ASP.NET vNext总结:EntityFramework7 源码分享:http://www.jinhusns.com/Products/Download/?type=xcj 1.概述 关于EF7 ...
- should be mapped with insert="false" update="false
SSH项目出现了 should be mapped with insert="false" update="false 错误,仔细检查后发现,是两个不同的属性映射了表中的 ...
- javascript快速入门
这个在w3school在线文档讲解的很详细,还能在线练习. 所以我只写一些入门的东西和最常用的总结以及注意事项: JavaScript 是脚本语言 一般被人们称为JS,Jquery就是对js语言的封装 ...
- junit4 assert类中的assert方法总结
junit中的assert方法全部放在Assert类中,总结一下junit类中assert方法的分类. 1.assertTrue/False([String message,]boolean cond ...
- 【http抓包】记录一次抓手机app的接口
抓手机的接口地址,好用的工具很多,想 windows下的 Fiddler 和mac下的Charles 1. fiddler的设置教程是 http://jingyan.baidu.com/article ...
- JAVAScript柯里化、部分应用参数终极理解
一.柯里化 在定义柯里化.部分应用参数的概念前,首先必须对闭包有深入的了解和定义,闭包一句话说清楚:函数返回值为函数. 柯里化的定义:将多参函数分解为按步骤接受单个参数的函数,如下代码: var mo ...
- php动态更改post_max_size, upload_max_filesize等值
在配置文件里 有些PHP 配置选项可以用int_set() 函数 直接在 项目里修改.但是有些值确不行.例如和上传文件有关的post_max_size和upload_max_filesize int_ ...
- 实用CSS3的transform实现多种动画效果
查看效果:http://keleyi.com/a/bjad/b6x9q8gs.htm 以下是代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4. ...
- CSS :first-child 选择器 和 HTML DOM firstChild 属性
CSS 选择器参考手册 实例 选择属于其父元素的首个子元素的每个 <p> 元素,并为其设置样式: p:first-child { background-color:yellow; } 亲自 ...