一个简单的猜数字游戏(附带关机惩罚)
作为一个初学C语言的小白,一个简易的C语言小游戏无非是提高了我对这门计算机语言的兴趣。接下来我将从提高自己的角度讲解一下这个简单的猜数字游戏,希望大家多多包涵。
————————————————————————————
游戏介绍
这个程序将实现随机猜测1-100中的任一整型数字,并将猜测结果反馈给玩家。其中玩家具有6次猜数字的机会,若6次机会未猜中相应的数字,系统将会进行2分钟内关机的惩罚,除非输入相应的口令。
代码实现
首先需要向玩家展示游戏菜单,这里使用menu函数实现。
void menu()//向玩家展示游戏菜单
{printf("***************************\n");printf("********* 1.play **********\n");printf("********* 0.exit **********\n");printf("***************************\n");
}
接下来是该游戏的主要实现。其中rand() 与 srand()的正确使用为我本次学习到的重点之一。
void game()
{int guess = 0;//存放玩家猜测的数int count = 1;//计数器,计算猜数字的次数int ret = rand() % 100 + 1;while (1){printf("请输入一个值:>");scanf("%d", &guess);count++;if (guess < ret){printf("猜小了\n");//判断猜测次数是否超出6次if (count > 6){printf("错误次数过多,惩罚开始\n");Shutdown();//自定义关机函数break;}}else if (guess > ret){printf("猜大了\n");if (count > 6){printf("惩罚\n");Shutdown();break;}}else if(guess == ret){printf("恭喜你猜对了!\n");break;}}
}
接下来是当玩家超出限制次数时会执行的定时关机程序。
int Shutdown()
{char input[20] = { 0 };//system()执行window系统的命令,此处为定时关机system("shutdown -s -t 120");
again:printf("你的电脑将在2分钟之内关机,输入“我是猪”,取消关机\n");scanf("%s", input);//运用strcmp判断输入字符是否为指定指令if (strcmp(input, "我是猪") == 0){//此处为取消关机system("shutdown -a");printf("已取消关机,感谢游玩!\n");}else{goto again;//运用goto语句实现迭代}
}
在主函数中也是为了实现真正的随机而引用了时间戳的概念。
什么是时间戳?
一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。
时间戳的计算方法
格林威治时间(1970年01月01日00时00分00秒)起至现在的总秒数。
根据时间戳的概念,可以看出每时每刻的时间戳都是独一无二的,因此配合函数可以实现真正意义上的随机。
#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
void menu()
{printf("***************************\n");printf("********* 1.play **********\n");printf("********* 0.exit **********\n");printf("***************************\n");
}
void game()
{int guess = 0;int count = 1;int ret = rand() % 100 + 1;while (1){printf("请输入一个值:>");scanf("%d", &guess);count++;if (guess < ret){printf("猜小了\n");if (count > 6){printf("错误次数过多,惩罚开始\n");Shutdown();break;}}else if (guess > ret){printf("猜大了\n");if (count > 6){printf("惩罚\n");Shutdown();break;}}else if(guess == ret){printf("恭喜你猜对了!\n");break;}}
}
int Shutdown()
{char input[20] = { 0 };system("shutdown -s -t 120");
again:printf("你的电脑将在2分钟之内关机,输入“我是猪”,取消关机\n");scanf("%s", input);if (strcmp(input, "我是猪") == 0){system("shutdown -a");printf("已取消关机,感谢游玩!\n");}else{goto again;}
}
int main()
{//time()为引用当前时间的时间戳,以达到真正的随机。srand((unsigned int)time(NULL));//主函数中运用srand函数以防止生成的随机数在短时间内相同。int input = 0;do{menu();printf("请输入:>");scanf("%d", &input);switch (input){case 1:game();break;case 0:printf("退出游戏\n");break;default:printf("输入错误,请重新输入\n");break;}} while (input);return 0;
}
以上即为本次任务的全部代码实现,其中还有很多需要改正的地方,例如关机惩罚的口令可以更加复杂,猜数字次数的判断可创建函数等,希望各位可以给予宝贵的建议,同时我也希望在未来我可以逐步的提高自己,提高自己的技术水平与更新博客的能力。谢谢大家观看!
一个简单的猜数字游戏(附带关机惩罚)相关推荐
- python游戏最简单代码-如何利用Python开发一个简单的猜数字游戏
前言 本文介绍如何使用Python制作一个简单的猜数字游戏. 游戏规则 玩家将猜测一个数字.如果猜测是正确的,玩家赢.如果不正确,程序会提示玩家所猜的数字与实际数字相比是"大(high)&q ...
- python猜数字游戏编程入门_如何利用Python开发一个简单的猜数字游戏
导读热词 前言 本文介绍如何使用Python制作一个简单的猜数字游戏. 游戏规则 玩家将猜测一个数字.如果猜测是正确的,玩家赢.如果不正确,程序会提示玩家所猜的数字与实际数字相比是"大(hi ...
- 利用JavaScript实现一个简单的猜数字游戏
问题描述:程序随机生成一个1到10之间的数字,然后让用户随机输入一个数字,如果用户输入的 数字过大,则提示用户猜的数字过大,请往小的猜,如果用户输入的数字过小,则提示用户输入的数字过小,请往大的猜:当 ...
- python编写一个简单的猜数字小游戏
该脚本包含了python基础的部分内容,python初学者既可以学习借鉴,也可以向朋友去装13. 本次编写的内容需要导入一个第三方模块random,可获得规定范围的随机数. 首先打开pycharm中下 ...
- 简单的猜数字游戏[1]
简单的猜数字游戏[1] 简单的猜数字游戏是预先设置一个100以内的正整数作为被猜数,用户输入一个数对其进行猜测,需要你编写程序自动对其与被猜数进行比较,并输出猜测的结果.在本题中,被猜数设置为38. ...
- 简单的猜数字游戏--入门
简单的猜数字游戏–入门 主要是回顾嵌套循环,跟之前写的Shark记账系统是一样的思路,只不过用到的方法有些许差别– 鲨鱼记账系统参考链接 https://blog.csdn.net/weixin_54 ...
- 10 简单的猜数字游戏[1] (10 分)
东软学习小组:素人 简单的猜数字游戏是预先设置一个100以内的正整数作为被猜数,用户输入一个数对其进行猜测,需要你编写程序自动对其与被猜数进行比较,并输出猜测的结果.在本题中,被猜数设置为38.输入格 ...
- python实现简单的猜数字游戏
用优雅的python语言实现简单的猜数字游戏,并给出一定的提示,附加一些小亮点,增加游戏体验. 代码如下: import random import time #时间模块 #在命令行中输入:time. ...
- python猜数字游戏编程循环_使用python进行简单的猜数字游戏(while循环)
使用python进行简单的猜数字游戏(while循环) 本案例主要是练习while循环,需求:如果给出某人的年龄,让你猜,猜对的话打印出You guess right 如果猜的数字小于真实年龄值,那就 ...
最新文章
- python 只循环目录_Python面试题目,掌握他们令你更上一层楼!附答案
- android xutils3.0获取服务器图片,Android端使用xUtils3.0实现文件上传
- 如何使用python画折线图-Python 使用 matplotlib 画折线图教程
- h5py快速入门指南
- 微软自拍:让黑科技拯救不会拍照的你
- ubuntu搭建【python】运行环境
- pycharm使用_后端开发使用pycharm的技巧
- [转载] Java中Runtime的使用
- Problem D. Country Meow 2018ICPC南京
- codevs1380 没有上司的舞会
- 信息安全中最容易被忽略的软资产管理
- 香港理工大学计算机专业课程,香港理工大学计算机系包括哪些专业
- 运动蓝牙耳机怎么选、几款适合运动的运动耳机
- Baumer工业相机堡盟工业相机如何联合BGAPISDK和佳能EF变焦镜头实现相机的自动变焦(C#)
- 盘点3大智能家居系统|苹果HomeKit、亚马逊Alexa、谷歌Home?
- c语言笔记(第一周)
- JS正则验证输入框姓名只能输入中文和英文
- 【Oracle SQL数据库-教学2】--- Oracle数据库基础
- sw运行很卡怎么办_win10运行solidworks好卡怎么解决_win10打开solidworks经常卡顿如何处理...
- 模拟电子技术基础 第一章 绪论