作为一个初学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;
}

以上即为本次任务的全部代码实现,其中还有很多需要改正的地方,例如关机惩罚的口令可以更加复杂,猜数字次数的判断可创建函数等,希望各位可以给予宝贵的建议,同时我也希望在未来我可以逐步的提高自己,提高自己的技术水平与更新博客的能力。谢谢大家观看!

一个简单的猜数字游戏(附带关机惩罚)相关推荐

  1. python游戏最简单代码-如何利用Python开发一个简单的猜数字游戏

    前言 本文介绍如何使用Python制作一个简单的猜数字游戏. 游戏规则 玩家将猜测一个数字.如果猜测是正确的,玩家赢.如果不正确,程序会提示玩家所猜的数字与实际数字相比是"大(high)&q ...

  2. python猜数字游戏编程入门_如何利用Python开发一个简单的猜数字游戏

    导读热词 前言 本文介绍如何使用Python制作一个简单的猜数字游戏. 游戏规则 玩家将猜测一个数字.如果猜测是正确的,玩家赢.如果不正确,程序会提示玩家所猜的数字与实际数字相比是"大(hi ...

  3. 利用JavaScript实现一个简单的猜数字游戏

    问题描述:程序随机生成一个1到10之间的数字,然后让用户随机输入一个数字,如果用户输入的 数字过大,则提示用户猜的数字过大,请往小的猜,如果用户输入的数字过小,则提示用户输入的数字过小,请往大的猜:当 ...

  4. python编写一个简单的猜数字小游戏

    该脚本包含了python基础的部分内容,python初学者既可以学习借鉴,也可以向朋友去装13. 本次编写的内容需要导入一个第三方模块random,可获得规定范围的随机数. 首先打开pycharm中下 ...

  5. 简单的猜数字游戏[1]

    简单的猜数字游戏[1] 简单的猜数字游戏是预先设置一个100以内的正整数作为被猜数,用户输入一个数对其进行猜测,需要你编写程序自动对其与被猜数进行比较,并输出猜测的结果.在本题中,被猜数设置为38. ...

  6. 简单的猜数字游戏--入门

    简单的猜数字游戏–入门 主要是回顾嵌套循环,跟之前写的Shark记账系统是一样的思路,只不过用到的方法有些许差别– 鲨鱼记账系统参考链接 https://blog.csdn.net/weixin_54 ...

  7. 10 简单的猜数字游戏[1] (10 分)

    东软学习小组:素人 简单的猜数字游戏是预先设置一个100以内的正整数作为被猜数,用户输入一个数对其进行猜测,需要你编写程序自动对其与被猜数进行比较,并输出猜测的结果.在本题中,被猜数设置为38.输入格 ...

  8. python实现简单的猜数字游戏

    用优雅的python语言实现简单的猜数字游戏,并给出一定的提示,附加一些小亮点,增加游戏体验. 代码如下: import random import time #时间模块 #在命令行中输入:time. ...

  9. python猜数字游戏编程循环_使用python进行简单的猜数字游戏(while循环)

    使用python进行简单的猜数字游戏(while循环) 本案例主要是练习while循环,需求:如果给出某人的年龄,让你猜,猜对的话打印出You guess right 如果猜的数字小于真实年龄值,那就 ...

最新文章

  1. python 只循环目录_Python面试题目,掌握他们令你更上一层楼!附答案
  2. android xutils3.0获取服务器图片,Android端使用xUtils3.0实现文件上传
  3. 如何使用python画折线图-Python 使用 matplotlib 画折线图教程
  4. h5py快速入门指南
  5. 微软自拍:让黑科技拯救不会拍照的你
  6. ubuntu搭建【python】运行环境
  7. pycharm使用_后端开发使用pycharm的技巧
  8. [转载] Java中Runtime的使用
  9. Problem D. Country Meow 2018ICPC南京
  10. codevs1380 没有上司的舞会
  11. 信息安全中最容易被忽略的软资产管理
  12. 香港理工大学计算机专业课程,香港理工大学计算机系包括哪些专业
  13. 运动蓝牙耳机怎么选、几款适合运动的运动耳机
  14. Baumer工业相机堡盟工业相机如何联合BGAPISDK和佳能EF变焦镜头实现相机的自动变焦(C#)
  15. 盘点3大智能家居系统|苹果HomeKit、亚马逊Alexa、谷歌Home?
  16. c语言笔记(第一周)
  17. JS正则验证输入框姓名只能输入中文和英文
  18. 【Oracle SQL数据库-教学2】--- Oracle数据库基础
  19. sw运行很卡怎么办_win10运行solidworks好卡怎么解决_win10打开solidworks经常卡顿如何处理...
  20. 模拟电子技术基础 第一章 绪论

热门文章

  1. 悬赏任务h5系统源码接单发单平台支持游戏试玩签到
  2. 【TA-霜狼_may-《百人计划》】美术1.4 场景设计精要
  3. css和html的用法,HTML与CSS之CSS的基本使用
  4. Ping过程的完全解析
  5. MFC 利用opencv实现视频播放
  6. 判断N维矩阵是否是Monge矩阵的Java实现
  7. 鲲鹏devkit开发套件——编译调试工具介绍
  8. 宋氏极简美学的编码风格
  9. itextsharp操作pdf删除某页
  10. lasso最小角_Python中的Lasso回归之最小角算法LARS