题目:
设计一个猜数字小游戏,可以试玩5次。试玩结束之后,给出提示:游戏试玩结束, 请付费。
GuessNumber.java
public class GuessNumber {
private GuessNumber() {
}
public static void start() {
//产生一个随机数
int number = (int) (Math.random() * 10) + 1;
//定义一个统计变量
int count = 0;
while (true) {
//键盘录入一个数据
Scanner sc = new Scanner(System.in);
System.out.println("请输入1-10之间的数据:");
int guessNumber = sc.nextInt();
count++;
//判断
if (guessNumber > number) {
System.out.println("所猜数据" + guessNumber + "偏大");
} else if (guessNumber < number) {
System.out.println("所猜数据" + guessNumber + "偏小");
} else {
System.out.println("厉害哟," + count + "次就猜中了");
break;
}
}
}
}
Test.java
public class Test {
//static int z = 0;
public static void main(String[] args) throws IOException {
//读取某个地方的数据,如果数据不大于5,可以继续玩。否则就提示“游戏试玩已结束,请付费”
//创建一个文件
File file = new File("count.txt");
if (!file.exists()) {
file.createNewFile();//如果没有计数文件,创建一个
}
// GuessNumber.start();
//把数据加载到集合中
Properties prop = new Properties();//创建一个无默认值的空属性列表
FileReader fr = new FileReader("count.txt");//读取文件
//FileWriter w= new FileWriter("count.txt");
// BufferedWriter bw = new BufferedWriter(new FileWriter("count.txt"));
// bw.write("z=0");
// z++;
// w.write("count=0",0,8);
// bw.flush();
prop.load(fr);//按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。
fr.close();//关闭文件输入流
String value = prop.getProperty("count");// 用指定的键count在此属性列表中搜索属性
int number = Integer.parseInt(value);//是把()里的内容转换成整数
if (number > 5) {
System.out.println("游戏试玩已结束,请付费!");
System.exit(0);
} else {
number++;
//valueOf(),该方法返回原值
prop.setProperty("count", String.valueOf(number));// setProperty(String key, String value),调用 Hashtable 的方法 put
FileWriter fw = new FileWriter("count.txt");
//store(Writer writer, String comments)
// 以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符。
prop.store(fw, null);
fw.close();
GuessNumber.start();
}
}
}
结果输出: