(系统)基于I/O文件处理的猜拳系统

来源:互联网 发布:冷笑话 知乎 编辑:程序博客网 时间:2024/06/08 09:51

这里写图片描述

//电脑出拳类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"));    }}

第一次玩

这里写图片描述

第二次玩

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

这里写图片描述

查看电脑中的指定文件

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

这里写图片描述

原创粉丝点击