用Java创建游戏对象的时间表

时间:2014-01-06 20:14:06

标签: java object schedule

我正在为棒球赛季开发一个统计跟踪器。我希望能够在程序中加载整个计划,使每个游戏成为一个相对简单的对象。

创建游戏对象不是问题。我想知道的是,实施时间表的最佳方法是什么?在团队类中,我有一个ArrayList计划。

我需要一种方法从文本文件加载计划信息,循环遍历它并为每一行创建一个游戏对象。如果这不是有效创建162个对象的最佳方式,请告诉我。

干杯

编辑:

游戏课非常简单:

public class Game implements Serializable{

Date gameDate;

Team team;

public int runsScored, runsAllowed;

public ArrayList<BallPlayer> lineup = new ArrayList<BallPlayer>();
public ArrayList<Pitcher> pitchers = new ArrayList<Pitcher>();
public Pitcher starter;

String opponent;
boolean homeAway;

boolean result;

public Game(Team gTeam, Pitcher gStarter, String gOpponent, String homeOrAway, Date gDate){

    this.team = gTeam;
    this.starter = gStarter;
    this.opponent = gOpponent;
    if(homeOrAway.equalsIgnoreCase("home")){this.homeAway = true;}
    this.runsScored = 0;
    this.runsAllowed = 0;
    gameDate = gDate;

}

public String getOpponent(){return opponent;}
public void setOpponent(String o){this.opponent = o;}

public boolean getHomeAway(){return homeAway;}
public void setHomeAway(String ho){if(ho.equalsIgnoreCase("home")){this.homeAway = true;}else{this.homeAway = false;}}

}

1 个答案:

答案 0 :(得分:0)

这是一个相当普遍的问题,但我想我会就你最初如何处理这个问题给你一些想法。

对于您的模型,您可以从以下内容开始:

GameVO (id, home team id (TeamVO), away team id (TeamVO), location id, schedule_id)
TeamVO (id, mascot, name, hometown, etc.)
LocationVO (id, city, state, stadium name, etc.)
PlayerVO(id, position, fname, lname, number, team_id, array_of_stat_ids)
StatVO(id, game_id, player_id, base_hits, home_runs, rbi, strike_out, etc)
ScheduleVO(id, location_id, home_team_id, away_team_id, play_time)

对于文本文件,我建议您熟悉Regular Expressions。正则表达式允许您读取数据字符串并根据您特定的模式提取数据。您的文本文件将是固定长度的文本文件,逗号分隔值(CSV)或其他一些格式(首先要确保您了解数据的结构)。确定要提取的模式后,创建正则表达式以匹配每一行并提取适当的值。这是一个练习Regex

的好地方

最后,在对对象进行串行化时,请查看XStream for .NET等序列化程序。我喜欢这个库的Java版本,因为它允许您快速将java对象转换为XML / json并再次返回。