问题描述:3v3游戏,每次开始游戏前先检查玩家列表,有过列表为空则向里面添加游戏玩家。游戏结束后,如果是新添加的游戏玩家,则写入到玩家列表当中,如果不是,结束操作。
创建游戏玩家对象:
public class GamePlayer {
private String id;
private Boolean gender;
private int attact;
public GamePlayer() {
}
public GamePlayer(String id, Boolean gender, int attact) {
this.id = id;
this.gender = gender;
this.attact = attact;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Boolean getGender() {
return gender;
}
public void setGender(Boolean gender) {
this.gender = gender;
}
public int getAttact() {
return attact;
}
public void setAttact(int attact) {
this.attact = attact;
}
}
主程序及其相关方法步骤:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
public class Test {
public static void main(String[] args) throws IOException {
// 检查好友列表文件及其目录,如果不存在则创建
System.out.println("检查好友列表及其目录,如果不存在则创建");
File file = new File("D:/Java/workspace/learnCourse/src/learn/pre/course10/listOfGameFriends.txt");
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs(); // 判断
}
if (!file.exists()) {
file.createNewFile();
}
// 创建集合用来存放玩家对象
System.out.println("创建集合用来存放玩家对象");
ArrayList<GamePlayer> list = new ArrayList<>();
// 读取文件内容到集合
System.out.println("读取文件到集合");
list = read(list);
// 判断是否为新的文件,是新的,则为其添加文件
System.out.println("判断好友列表是否为新,如果是新的,向集合中添加新的好友:");
Boolean isNew = (list.size() == 0);
if (isNew) {
list = addGamePlayer(3, list);
}
// 打印输出我方队伍的id和性别
System.out.println("打印输出我方队伍的召唤师ID和性别");
printIdAndGender(list);
// 将集合写入文件
if (isNew) {
writeIntoFile(list);
}
}
// 读取文件、存放到集合
public static ArrayList<GamePlayer> read(ArrayList<GamePlayer> list) throws IOException {
FileReader fr = new FileReader("D:/Java/workspace/learnCourse/src/learn/pre/course10/listOfGameFriends.txt");
BufferedReader br = new BufferedReader(fr);
String line;
String[] arr;
while ((line = br.readLine()) != null) {
System.out.println("运行了");
arr = line.split(",");
String idName = arr[0];
Boolean gender = Boolean.valueOf(arr[1]).booleanValue(); // 字符串转为布尔值
int attact = Integer.valueOf(arr[2]).intValue(); // 字符串转int值
GamePlayer gp = new GamePlayer(idName, gender, attact);
list.add(gp);
}
br.close();
return list;
}
// 添加游戏玩家(手动键入)
public static ArrayList<GamePlayer> addGamePlayer(int num, ArrayList<GamePlayer> list) {
Scanner sc = new Scanner(System.in);
System.out.println("运行了!");
for (int i = 1; i <= num; i++) {
System.out.print("请输入第" + i + "位玩家的ID:");
String idName = sc.next();
System.out.print("请输入第" + i + "位玩家的性别(true为男,false为女):");
Boolean gender = sc.nextBoolean();
System.out.print("请输入第" + i + "位玩家的熟练度:");
int attact = sc.nextInt();
GamePlayer gp = new GamePlayer(idName, gender, attact);
list.add(gp);
}
sc.close();
return list;
}
// 打印输出
public static void printIdAndGender(ArrayList<GamePlayer> arr) {
GamePlayer gp;
for (int i = 0; i < 3; i++) {
gp = arr.get(i);
String idName = gp.getId();
Boolean gender = gp.getGender();
if (gender) {
System.out.println("第" + (i + 1) + "位召唤师的ID为:" + idName + ",性别:男");
} else {
System.out.println("第" + (i + 1) + "位召唤师的ID为:" + idName + ",性别:女");
}
}
}
// 写入文件
public static void writeIntoFile(ArrayList<GamePlayer> arr) throws IOException {
FileWriter fw = new FileWriter("D:/Java/workspace/learnCourse/src/learn/pre/course10/listOfGameFriends.txt",
true);
BufferedWriter bw = new BufferedWriter(fw);
for (int i = 0; i < arr.size(); i++) {
GamePlayer gp = arr.get(i);
String idName = gp.getId();
Boolean gender = gp.getGender();
int attact = gp.getAttact();
bw.write(idName + "," + gender + "," + attact);
bw.newLine();
}
bw.close();
}
}
首次运行结果:
检查好友列表及其目录,如果不存在则创建
创建集合用来存放玩家对象
读取文件到集合
判断好友列表是否为新,如果是新的,向集合中添加新的好友:
运行了!
请输入第1位玩家的ID:火之高兴
请输入第1位玩家的性别(true为男,false为女):false
请输入第1位玩家的熟练度:233
请输入第2位玩家的ID:霜之哀伤
请输入第2位玩家的性别(true为男,false为女):true
请输入第2位玩家的熟练度:1122
请输入第3位玩家的ID:水之开心
请输入第3位玩家的性别(true为男,false为女):false
请输入第3位玩家的熟练度:12
打印输出我方队伍的召唤师ID和性别
第1位召唤师的ID为:火之高兴,性别:女
第2位召唤师的ID为:霜之哀伤,性别:男
第3位召唤师的ID为:水之开心,性别:女
第二次运行结果:
检查好友列表及其目录,如果不存在则创建
创建集合用来存放玩家对象
读取文件到集合
运行了
运行了
运行了
判断好友列表是否为新,如果是新的,向集合中添加新的好友:
打印输出我方队伍的召唤师ID和性别
第1位召唤师的ID为:火之高兴,性别:女
第2位召唤师的ID为:霜之哀伤,性别:男
第3位召唤师的ID为:水之开心,性别:女