Java实现--游戏次数案例(IO流文件存储游戏次数)
来源:互联网 发布:linux查看jvm版本 编辑:程序博客网 时间:2024/06/04 00:29
案例:
有一个猜数字小游戏,需要限制玩家的游戏次数,当超过5次时,提示玩家:免费游戏次数已用完,请付费。
案例分析:
可以用文件来存储游戏次数,玩家每玩一次游戏,游戏次数加1,同时更新文件中存储的数据,当文件中的数据大于5的时候,就可以给出提示:免费游戏次数已用完,请付费。
实现步骤:
1.创建一个文件,存储游戏次数
2.创建一个Propeties集合
3.把文件中的元素添加到集合中
4.把键值对中的值转换为int类型,定义一个count来存储游戏次数
5.用if来判断,当count小于5时进行游戏,游戏结束后count++,再把count值转换为字符串类型存入集合, 当count大于5时,给出提示:免费游戏次数已用完,请付费
6.把集合中元素添加到文件中
代码实现:
游戏类:
package com.edu.game;import java.util.Scanner;public class Game { public static void guessNumber(){ //获取随机数 int random=(int) (Math.random()*100+1); //创建键盘录入对象并获取键盘录入数据 Scanner sc = new Scanner(System.in); System.out.println("请输入所猜的数字:"); int number = sc.nextInt(); //while循环进行判断 while (true) { if (number>random) { System.out.println("大了!请重新输入:"); number=sc.nextInt(); }else if (number<random) { System.out.println("小了!请重新输入:"); number=sc.nextInt(); }else if (number==random) { System.out.println("恭喜你猜对了!"); break; } } }}
测试类:
package com.edu.test;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.Properties;import com.edu.game.Game;public class Test { public static void main(String[] args) throws IOException { //1.创建一个文件,存储游戏次数 //2.创建一个Propeties集合 Properties prop = new Properties(); //3.把文件中的元素添加到集合中 prop.load(new FileReader("count.txt")); //4.把键值对中的值转换为int类型,定义一个count来存储游戏次数 int count=Integer.parseInt(prop.getProperty("count")); //5.用if来判断,当count小于5时进行游戏,游戏结束后count++,再把count值转换为字符串类型存入集合, //当count大于5时,给出提示:免费游戏次数已用完,请付费 if (count<5) { Game.guessNumber(); count++; prop.setProperty("count", String.valueOf(count)); prop.store(new FileWriter("count.txt"), null); }else { System.out.println("免费游戏次数已用完,请付费!"); } }}
运行结果:
当进行1次游戏后,count.txt更新存储的数据:
当进行5次游戏后,给出提示:
此时count.txt中的数据:
实现这个案例过程中的问题:
问题一:之前的代码,每结束一次游戏,count(用来记录游戏次数的int值)值更新,但是count.txt文件中的数据没有更新,导致不能在游戏次数超过5次的时候给出提示。
问题二:Properties集合的键值对都是String类型,所以一直找不到合适的变量类型来记录游戏次数。
如何解决问题:
对于问题一:每次count值更新,都把更新后的值存入Properties集合,然后调用store()方法把集合中的元素存入文件。
prop.setProperty("count", String.valueOf(count));prop.store(new FileWriter("count.txt"), null);
对于问题二:定义一个int类型的count,调用Integer包装类的parseInt()方法把字符串转换为int类型数据,当count更新后,再调用String类的valueOf()方法把int类型数据转换为字符串,然后存入集合,再存入文件。
参考:
int和String类型的相互转换:
int—>String:
方式1:String s = 100+“”;
方式2:String.valueOf(int);
方式3:Integer.toString(int);
String—>int:
Integer.parseInt(String);
- Java实现--游戏次数案例(IO流文件存储游戏次数)
- java实现Bingo游戏优化,可以控制次数期望
- java用文件流实现查看下载次数
- java案例-实现斗地主游戏案例
- 游戏试玩次数的限制
- Java IO流 Properties练习-记录应用程序运行次数
- 读写文件减少IO次数的方法
- JAVA---字符串出现的次数案例
- Java实现——统计文件中字符串出现次数
- Introduction to Java Programming编程题5.32<赢取双骰子游戏的次数>
- 统计出现次数案例
- Lesson_for_java_day17--java中的IO流(IO基本流、键盘输入、管道流、文件及文件夹操作、Properties类、切割文件、记录软件运行次数)
- Think In Java Chapter 18 IO系统 练习17 计算文件中字符出现次数
- Java游戏开发案例-方块游戏
- Java游戏开发案例-方块游戏
- Java游戏开发案例-方块游戏
- 2015网易游戏笔试第一题(找9706的重复次数)
- Java实现--登录和注册案例(IO流实现)
- C++ cin和scanf
- [leetcode]: 268. Missing Number
- 湘潭邀请赛G- Parentheses(贪心,思维)
- 万能Opencv版本库自动Load大法
- java引用小记
- Java实现--游戏次数案例(IO流文件存储游戏次数)
- beego orm 调用多次sql的事物同步
- mysql处理海量数据时的一些优化查询速度方法
- Java 安全套接字编程以及 keytool 使用最佳实践
- OpenGL Texture 纹理
- IOS视频播放
- glide返回bitmap
- 一个屌丝程序猿的人生(六十六)
- 机器学习笔记2-基于KNN算法的手写字识别程序