猜数字是一个经典的小游戏,程序先产生一个随机数,然后用户输入数字,程序将输入的数字与随机数进行对比,给出用户相应的提示信息。

本节实现了一个基于 IO 流的猜数字游戏,游戏中限制玩家游戏次数,游戏试玩为 5 次,超过 5 次后,则提示玩家试玩结束,请付费。具体实现步骤和代码如下:

1)创建 count.txt 文件,存储游戏次数,文件内容如下:

count=0

2)创建 way.txt 文件,存储支付状态(1 为已付费,0 为未付费),文件内容如下:

way=0

3)为了简化代码,本节将多个实现方法写在同一个类中。创建 BullCows 类,代码如下:

public class BullCows {/*** 负责调用对应的方法,实现整个案例的逻辑关系** @param args* @throws IOException*/public static void main(String[] args) throws IOException {while (true) {// 获取游戏次数int count = getCount();// 获取付费状态boolean flag = getCondition();// 如果已付费,提示用户游戏次数解封可以继续游戏if (flag) {System.out.println("游戏已经付费,游戏次数已解封!");game();} else {// 未付费且游戏次数超过5次时,提示试玩结束,要付费if (count >= 5) {System.out.println("试玩已经结束,请付费!");getMoney();} else {// 未付费且游戏次数未超过5次时,继续游戏,游戏次数加1System.out.println("----" + "试玩第" + (count + 1) + "次" + "----");game();writeCount();}}}}/*** 获取已经玩过的次数** @return temp count.txt文件中的游戏次数* @throws IOException*/private static int getCount() throws IOException {// 创建Properties对象Properties prop = new Properties();// 使用FileReader对象获取count文件中的游戏次数prop.load(new FileReader("count.txt"));String property = prop.getProperty("count");int temp = Integer.parseInt(property);return temp;}/*** 支付方法,支付成功则把支付状态改为“1”并存到数据库,之后可以无限次玩游戏** @throws IOException*/private static void getMoney() throws IOException {System.out.println("请支付5元!");// 获取键盘录入数据Scanner sc = new Scanner(System.in);int nextInt = sc.nextInt();if (nextInt == 5) {// 创建Properties对象Properties prop = new Properties();prop.setProperty("way", "1");// 使用FileWriter类将支付状态写入到way文件prop.store(new FileWriter("way.txt"), null);}}/*** 将试玩的次数写入文档并保存** @throws IOException*/private static void writeCount() throws IOException {// 创建Properties对象Properties prop = new Properties();int count = getCount();// 写入文件prop.setProperty("count", (count + 1) + "");prop.store(new FileWriter("count.txt"), null);}/*** 用来获取每次启动时的付费状态** @return flag 是否付费* @throws FileNotFoundException* @throws IOException*/private static boolean getCondition() throws FileNotFoundException, IOException {boolean flag = false;// 创建Properties对象Properties prop = new Properties();// 读取way.txt文件,获取支付状态prop.load(new FileReader("way.txt"));String property = prop.getProperty("way");int parseInt = Integer.parseInt(property);// way的值等于1时,为已付费if (parseInt == 1) {flag = true;} else {flag = false;}return flag;}/*** 实现游戏产生数字,获取玩家所猜数字等, 并对玩家每次输入,都会有相应的提示*/private static void game() {// 产生随机数1~100int random = (int) (Math.random() * 100 + 1);// 获取键盘录入数据Scanner sc = new Scanner(System.in);System.out.println("欢迎来到猜数字小游戏!");// while循环进行游戏while (true) {System.out.println("请输入你猜的数据:");int guess = sc.nextInt();if (guess > random) {System.out.println("大了");} else if (guess < random) {System.out.println("小了");} else {System.out.println("猜对了哦!");break;}}}
}
第一次运行时,结果如下:
----试玩第1次----
欢迎来到猜数字小游戏!
请输入你猜的数据:
1
小了
请输入你猜的数据:
5
小了
请输入你猜的数据:
8
小了
请输入你猜的数据:
9
小了
请输入你猜的数据:
10
猜对了哦!此时可以看到 count.txt 文件中 count 的值为 1。当进行 5 次游戏后,运行结果如下:
试玩已经结束,请付费!
请支付5元!
5
游戏已经付费,游戏次数已解封!
欢迎来到猜数字小游戏!
请输入你猜的数据:

此时 count.txt 文件中 count 的值为 5,way.txt 文件中 way 的值为 1。

示例中用到 Properties 类的几个方法,方法说明如下:

  • getProperty (String key):用指定的键在此属性列表中搜索属性。也就是通过参数 key,得到 key 所对应的
    value。
  • load (InputStream inStream):从输入流中读取属性列表(键和元素对)。通过对指定的文件进行装载来获取该文件中的所有键值对。以供 getProperty(String key) 来搜索。
  • setProperty (String key, String value) :调用 Hashtable 的方法 put,通过调用基类的 put 方法来设置键值对。
  • store (OutputStream out, String comments):与 load方法相反,该方法是将键值对写入到指定的文件中。

1.12 实例:猜数字小游戏相关推荐

  1. python猜数字游戏实例_python3实现猜数字小游戏:根据设置参数进行猜数字游戏...

    小游戏介绍 猜数字小游戏会根据不同的设置选项,进入到不同难度的游戏模式.找到规律后就会发现不是盲目随便猜的,详细玩法见下面的介绍.python3环境下代码可以直接可用. 源码 import rando ...

  2. 微信小程序开发实例:猜数字小游戏

    这学期选修了<微信小程序设计>这门通识课,最近准备把本学期的部分小作业整理一下. 一.案例描述 设计一个微信小程序,由后台生成一个0~100的随机整数,用户猜这个整数,并在输入框中输入用户 ...

  3. 带登录页面的猜数字小游戏

    本内容包含:登录页面+注册页面+猜数字小游戏页面 登录页面:手机号+密码+校验码+随机校验码+登录按钮+注册 注册页面:手机号+密码+密码确认+注册按钮 游戏页面:标题(提示框)+输入框+猜一下+重置 ...

  4. html写一个猜数字游戏,JS实现网页端猜数字小游戏

    本文实例为大家分享了JS实现网页端猜数字游戏的具体代码,供大家参考,具体内容如下 题目描述 电脑产生一个0到100之间的随机数字,并且要求用户来猜,如果用户猜的数字比这个数字大,电脑会提示" ...

  5. Python|猜数字小游戏

    Python Python猜数字小游戏 说明 分析 代码实现 补充说明 Python猜数字小游戏 说明 通常由两个人参与,一个人设置一个数字,一个人猜数字,当猜数字的人说出一个数字,由出数字的人告知是 ...

  6. python编写猜大小游戏_python编写猜数字小游戏

    本文实例为大家分享了python编写猜数字小游戏的具体代码,供大家参考,具体内容如下 import random secret = random.randint(1,30) guess = 0 tri ...

  7. Java基于GUI完成的猜数字小游戏

    猜数字小游戏 不废话想看看效果吧! 当我们答对后就会出现: 如果你实在急着想知道答案: 简要说明: 所猜测的数字为1~1000: 只能通过按确定输出答案,未设置Enter键直接输入的监控. 退出请直接 ...

  8. switch结构语句,for循环,while循环,死循环实现猜数字小游戏,方法实现nn乘法表,数组,逆序,冒泡排序

    switch选择结构语句 格式: switch 语句格式: switch ( 表达式 ) {case 值 1 : 语句体 1 ; break ; case 值 2 : 语句体 2 ; break ; ...

  9. 猜数字小游戏html,经典小游戏猜数字

    猜数字(又称 Bulls and Cows )是一种古老的的密码破译类益智类小游戏,起源于20世纪中期,一般由两个人或多人玩,也可以由一个人和电脑玩. 本文尝试用树莓派人工智能技术实现经典的pytho ...

最新文章

  1. Adding a QR Code Reader in Flex on Android
  2. Qt中的QStackedLayout
  3. Xargs用法详解(原创)
  4. 动态规划之-----单调递增最长子序列(nyoj17)
  5. MySql的连接查询
  6. html按钮不可选中,如何使HTML文本不可选择
  7. php连接mysql数据没反应_PHP mysql 数据库连接时 网页无法显示
  8. Linux运行8086代码,* linux下编译,链接,运行,汇编程序
  9. 开发好能重构的代码,都是这么干的
  10. 蓝桥杯 ALGO-74 算法训练 连接字符串
  11. CCSP2020比赛太原理工学子再创佳绩
  12. 让工作效率起飞的11个神奇网站~~
  13. 双操作系统安装(三)Windows及Deepin深度linux双系统安装教程
  14. CentOS 7安装MinDoc文档系统
  15. 8421拨码开关C语言编程,8052单片机怎样读出8421BCD码拨码开关设定的数值
  16. 信息学奥赛一本通 1033:计算线段长度
  17. 基于python的flask框架自动回复抖音私信
  18. cmd查看python库命令_怎么用命令查看python的库
  19. python--编写程序:实现乐手弹奏乐器,乐手可以弹奏不同的乐器而发出不同的声音------使用类的封装继承多态的问题/使用面向对象的思想,设计自定义类,描述出租车和家用轿车的信息
  20. 【DSP】CCS3.3安装教程

热门文章

  1. Matlab:盲反卷积还原失焦图像
  2. docker 如何删除<none>镜像
  3. RocketMQ学习笔记(7)----RocketMQ的整体架构
  4. js中如何通过身份证号计算出生日期和年龄
  5. sql添加列,删除列,修改列
  6. 亚瑟王(bzoj 4008)
  7. log4j无法显示mybatis sql
  8. 03构建之法阅读笔记之三
  9. 免费获取 Kaspersky Small Office Security 90 天授权
  10. 30个图片浏览插件收集