Java开发Hangman游戏如何实现输入4时显示rules.txt规则文件
Hangman猜词游戏规则读取功能实现
现存问题说明
- 原代码分支逻辑存在缺陷:三个难度判断使用独立
if语句,仅最后一个if(diff==3)绑定了else分支,会导致输入1、2选择低难度时,也错误弹出无效输入提示 - 缺少输入值为4时读取
rules.txt规则文件的对应逻辑分支
修改后可直接运行的完整代码
import java.util.Scanner; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; class Hangman { public static void main(String[] args) { Scanner guess = new Scanner(System.in); System.out.println("Hello, and welcome to Hangman!"); System.out.println("Choose (1)easy (2)medium (3)hard (4)rules: "); int diff = guess.nextInt(); if(diff==1) { Play obj = new Play(); obj.Start(diff); } else if(diff==2) { Play obj = new Play(); obj.Start(diff); } else if(diff==3) { Play obj = new Play(); obj.Start(diff); } else if(diff==4) { System.out.println("========== 游戏规则 =========="); // 自动管理文件流,读取结束后自动释放资源,无需手动关闭 try (BufferedReader br = new BufferedReader(new FileReader("rules.txt"))) { String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { System.out.println("规则文件读取失败,请检查rules.txt是否放在程序运行目录下"); } } else{ System.out.print("enter a valid number, please try again"); } guess.close(); } }
部署注意事项
- 请把编写好的
rules.txt规则文件放在程序运行的根目录(和编译生成的Hangman.class文件同层级),否则会触发文件找不到的报错 - 所有分支统一改为
if-else if结构后,程序只会匹配第一个符合条件的分支,不会再出现选择低难度也弹无效提示的问题 - 文件读取使用Java 7及以上版本支持的try-with-resources语法,自动回收文件资源,不会出现资源泄漏问题
内容的提问来源于stack exchange,提问作者Ans Fu
相关产品推荐
相关产品推荐

