(系统)基于IO文件处理的猜拳系统

xiaoxiao2021-02-28  115

//电脑出拳类 public class Computer { private int num; public Computer() { super(); Random random = new Random(); this.num = random.nextInt(3) + 1; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } public String ComputerJudge() { String string = "出错"; switch (num) { case 1: string = "剪刀"; break; case 2: string = "石头"; break; case 3: string = "布"; break; default: break; } return string; } //玩家出拳类 public class User { private int num; public int getNum() { return num; } public void setNum(int num) { this.num = num; } public User(int num) { super(); this.num = num; } public String userJudge() { String string = null; switch (num) { case 1: string = "剪刀"; break; case 2: string = "石头"; break; case 3: string = "布"; break; default: break; } return string; } } //胜负判定类 public class Judge { private String userWin = "用户 胜"; private String computerWin = "用户 负"; private String noWin = "平局"; public String judge(Computer computer, User user) { if (computer.getNum() == 1) { switch (user.getNum()) { case 1: return noWin; case 2: return userWin; case 3: return computerWin; default: break; } } else if (computer.getNum() == 2) { switch (user.getNum()) { case 1: return userWin; case 2: return noWin; case 3: return computerWin; default: break; } } else { switch (user.getNum()) { case 1: return userWin; case 2: return computerWin; case 3: return noWin; default: break; } } return computerWin; } } import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream.GetField; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; //主程序入口 public class File1 { public static void main(String[] args) throws IOException { // 判断是否有这个文件夹。没有就创建 File file = new File("d:/game"); if (!file.exists()) { file.mkdir(); } // 判断是否有这个文件,没有就创建 File file2 = new File("d:/game/user.txt"); if (!file2.exists()) { file2.createNewFile(); } // 读取文件中的数据 FileInputStream file3 = new FileInputStream("d:/game/user.txt"); byte[] data = new byte[1024]; int len; while ((len = file3.read(data)) != -1) { String string = new String(data, 0, len); System.out.println(string); } file3.close(); // ---------------------以上是准备工作------------------------ // ----------------------游戏开始-------------------------- Date date = new Date(); FileOutputStream fos = new FileOutputStream("d:/game/user.txt", true); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); String dateString = sf.format(date); System.out.println(dateString); fos.write("\r\n".getBytes()); fos.write(dateString.getBytes()); fos.flush(); fos.close(); System.out.println("开始游戏"); String key = "N"; int k = 1; do { FileOutputStream fos1 = new FileOutputStream("d:/game/user.txt", true); System.out.println("请输入数字:1-剪刀,2-石头,3-布"); Scanner scanner = new Scanner(System.in); User user = new User(scanner.nextInt()); Computer computer = new Computer(); System.out.println("电脑出了" + computer.ComputerJudge()); Judge judge = new Judge(); System.out.println(judge.judge(computer, user)); String string = new String("第" + k + "局," + "电脑出了" + computer.ComputerJudge() + ",用户出了" + user.userJudge() + " " + judge.judge(computer, user)); fos1.write("\r\n".getBytes()); fos1.write(string.getBytes()); fos1.flush(); fos1.close(); System.out.println("是否继续Y/N"); key = scanner.next(); k++; } while (key.equals("Y")); } }

第一次玩

第二次玩

可以看到,此时历史纪录被显示

查看电脑中的指定文件

可以看到,历史战绩已经被存储在本地

转载请注明原文地址: https://www.6miu.com/read-21589.html

最新回复(0)