在学习Random类时我们制作过猜数字小游戏,学习了Properties类后,可以为此游戏添加保存得分记录功能

游戏规则:

玩家可以选择玩游戏还是查看得分

玩游戏:

首先玩家需要选择难度:

难度级别

范围

简单

1~10

中等

1~100

困难

1~1000

专家

1~10000

程序会根据随机生成一个难度随机生成一个整数。

玩家现在可以猜数,系统会判断猜大了还是猜小了。

最后根据玩家的尝试次数产生得分,并保存到文件中。

查看得分:

根据难度显示得分

制作步骤:

首先编写游戏主菜单方法:

public static void MainMenu() {

System.out.println("====主菜单====");

System.out.println("1.玩游戏");

System.out.println("2.查看得分");

System.out.println("0.返回");

}

选择难度方法:

public static voidChooseLevel() {

Scanner sc= newScanner(System.in);while(true) {

System.out.println("请选择难度:");

System.out.println("1.简单");

System.out.println("2.中等");

System.out.println("3.困难");

System.out.println("4.专家");switch(sc.next()) {//跟据难度传参

case "1":

NewGame(10);break;case "2":

NewGame(100);break;case "3":

NewGame(1000);break;case "4":

NewGame(10000);break;default:continue;

}break;

}

}

新游戏方法:

public static void NewGame(intmax) {

Scanner sc= newScanner(System.in);int number = newRandom().nextInt(max);

System.out.println("神秘数字已产生,(0~"+max+")");int count = 1;while(true) {

System.out.println("第"+count+"次猜:");int guess =sc.nextInt();if(guess>number) {

System.out.println("您猜大了");

count++;continue;

}else if(guess

System.out.println("您猜小了");

count++;continue;

}else{

System.out.println("您猜对了!一共猜了"+count+"次");if(updateFile(max,count)) {

System.out.println("新记录!");

}return;

}

}

}

更新得分文件

public static boolean updateFile(int type,intnum) {

FileInputStream fis= null;try{

fis= new FileInputStream("src\\practice\\scores");

}catch(FileNotFoundException e) {

e.printStackTrace();

}

Properties p= newProperties();try{

p.load(fis);

}catch(IOException e) {

e.printStackTrace();

}int oldscore =Integer.parseInt(p.getProperty(Integer.toString(type)));if(oldscore>num||oldscore==0) {

p.setProperty(Integer.toString(type), Integer.toString(num));

FileOutputStream fos= null;try{

fos= new FileOutputStream("src\\practice\\scores");

}catch(FileNotFoundException e) {

e.printStackTrace();

}try{

p.store(fos,null);

}catch(IOException e) {

e.printStackTrace();

}try{

fis.close();

fos.close();

}catch(IOException e) {

e.printStackTrace();

}return true;

}try{

fis.close();

}catch(IOException e) {

e.printStackTrace();

}return false;

}

重置得分

public static voidReset() {

FileOutputStream fos= null;try{

fos= new FileOutputStream("src\\practice\\scores");

}catch(FileNotFoundException e) {

e.printStackTrace();

}

Properties p= newProperties();

p.setProperty("10", "0");

p.setProperty("100", "0");

p.setProperty("1000", "0");

p.setProperty("10000", "0");try{

p.store(fos,null);

fos.close();

}catch(IOException e) {

e.printStackTrace();

}

}

获得得分:

public staticString getScore(String type) {

FileInputStream fis= null;try{

fis= new FileInputStream("src\\practice\\scores");

}catch(FileNotFoundException e) {

e.printStackTrace();

}

Properties p= newProperties();try{

p.load(fis);

}catch(IOException e) {

e.printStackTrace();

}try{

fis.close();

}catch(IOException e) {

e.printStackTrace();

}returnp.getProperty(type);

}

展示得分:

public static voidshowScores() {

Scanner sc= newScanner (System.in);while(true) {

System.out.println("得分记录:\n");

System.out.println("简单模式:"+(getScore("10").equals("0")?"暂无得分":getScore("10")));

System.out.println("中等模式:"+(getScore("100").equals("0")?"暂无得分":getScore("100")));

System.out.println("困难模式:"+(getScore("1000").equals("0")?"暂无得分":getScore("1000")));

System.out.println("专家模式:"+(getScore("10000").equals("0")?"暂无得分":getScore("10000")));

System.out.println("输入c重置得分,输入0返回");switch(sc.next()) {case "0":return;case "c":case "C":

Reset();break;

}

}

}

测试类:

public static voidmain(String[] args) {

Scanner sc= newScanner(System.in);while(true) {

MainMenu();switch(sc.next()) {case "1":

ChooseLevel();break;case "2":

showScores();break;case "0":return;default:continue;

}

}

}

运行效果:

java 做猜数字小游戏_Java Properties类:利用Properties类制作猜数字小游戏相关推荐

  1. python猜数字1001untitled_如何利用Matlab GUI制作猜数字游戏

    第二堂课布置了一个Mission Impossible:如何利用Matlab GUI制作猜数字游戏 这个任务对很多人来说会非常困难,首先要面对的是 Matlab GUI的机制,这是完全未知的机制,在面 ...

  2. java中的匿名类方法覆盖_Java技巧:用匿名类来实现简化程序调试

    Java技巧:用匿名类来实现简化程序调试 在Java中,匿名类(Anonymous inner classes)多用来处理事件(event handle).但其实,它们对于debug也很有帮助.本文将 ...

  3. 【游戏开发实战】使用Unity 2019制作仿微信小游戏飞机大战(七):主角飞机碰撞与爆炸

    文章目录 零.教程目录 一.前言 二.本篇目标 三.飞机机碰撞组件:BoxCollider2D.Rigidbody2D 四.添加Tag:Enemy 五.主角飞机碰撞处理:OnTriggerEnter2 ...

  4. coreldraw怎么画猴子_小猴头像简笔画【CDR11设计制作逼真的小猴头像实例教程】...

    CorelDraw是一款用来设计和制作矢量图形的软件,使用起来简单方便,成为很多设计人员的首爱.猴年马上就到了,让笔者带大家一起来绘制一个可爱的小猴头像吧!文章末尾提供.cdr文件供大家下载参考. 所 ...

  5. 如何利用Construct 2制作一个简单的游戏

    Construct 2 是一款专门制作游戏的软件,它的存在,让没有编程基础的人也可以轻松的制作游戏,享受其中的快乐. 这是一款几乎没有门槛的软件,任何人都可以快速上手.作为广大游戏爱好者之一,我希望将 ...

  6. java 判断字符串是否包含字母_Java中判断某一字符串是否包含数字、字母和中文...

    importjava.util.regex.Matcher;importjava.util.regex.Pattern;public classStrValidate {//纯数字 private s ...

  7. java做一个客房管理系统定制_Java实现酒店客房管理系统

    本文实例为大家分享了Java实现酒店客房管理系统的具体代码,供大家参考,具体内容如下 LoginFrame.java package loginManage; import java.awt.Colo ...

  8. java用if判断输入字符_java怎么用if判断输入的是不是数字

    System.out.println("\t\t\t\t欢迎使用富贵不能淫购物系统1.0版!");System.out.println("\t\t\t\t\t1.登录系统 ...

  9. java 判断一个字符串是否由数字组成的_Java中怎样判断一个字符串是否是数字

    展开全部 1.使用Character.isDigit(char)判断 String str = "123abc"; if (!"".equals(str)) { ...

  10. java做的登录界面共享文件_java毕业设计_springboot框架的局域网文件共享平台

    这是一个基于java的毕业设计项目,毕设课题为springboot框架的局域网文件共享平台, 是一个采用b/s结构的javaweb项目, 开发工具eclipsei/eclipse, 项目框架jsp+s ...

最新文章

  1. 网络营销推广软件教你学会单页面SEO优化技巧,轻松赢流量!
  2. SAP中内部订单和PS的区别
  3. lxml 和 XPah (爬虫)
  4. C#常用集合的使用(转载)
  5. c语言对c99标准声明,C语言中C89与C99的区别
  6. 苹果又遭集体诉讼,网友拍手:干得漂亮......
  7. 《上海堡垒》改编电影发布 QQ阅读披露作者江南心声
  8. Android图形---Graphics(概要)
  9. seaborn箱线图_Seaborn线图的数据可视化
  10. WebRTC之RFC协议下载(八)
  11. CentOS部署JavaWeb项目
  12. 使用Netsparker扫描及**某站点
  13. 台式计算机投影仪无线传输软件,台式机无线投屏到投影仪 4台PC电脑一个屏
  14. 基本知识 100176
  15. 小新air15为啥没人买_小新air15为啥没人买
  16. 明解C语言入门篇_第8章_动手编写各种程序吧
  17. 【电子器件笔记4】电感参数和选型
  18. 电缆 电流_如何不用电缆观看每项运动(运动返回时)
  19. What CANN Can?一辆小车背后的智能故事
  20. JAVASE总结回顾(秦疆老师)

热门文章

  1. 计算机技术中的常见概念
  2. CSS 两列布局 之 左侧适应,右侧固定 3种方式
  3. DFS Codeforces Round #290 (Div. 2) B. Fox And Two Dots
  4. (step4.3.1) hdu 1010(Tempter of the Bone——DFS)
  5. 解决RD2作业在IE和Fire Fox中CSS效果不同的问题~
  6. 大数据_Flink_Java版_状态管理(2)_算子状态---Flink工作笔记0061
  7. Netty工作笔记0015---MappedByteBuffer使用
  8. 正则表达式学习笔记006--转义符的认识与应用
  9. 经典线程同步 互斥量Mutex的使用分析
  10. detectron2 demo cuda10.0 py3.6