Beispiel #1
0
    def __init__(self, player_name, player_code, game_num, use_memory=True):
        con = MemoryDB.get_con(use_memory)
        cur = con.cursor()
        #print(player_name)
        cur.execute(
            """select sum(pa),sum(runs),sum(hits),sum(doubles),sum(triples),sum(homeruns),sum(rbi),sum(stolen_base),
            sum(caught_stealing),sum(walks),sum(strikeouts),sum(hit_by_pitch),sum(sacfly) from batter where
            player_name=? and game < ? and season=?""",
            (player_name, game_num, ENV.YEAR))

        attr = cur.fetchone()
        # print(attr[0])
        if attr[0] is None:
            attr = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

        # if(len(attr)==NUM_OF_BATTER_ARGS):
        self.name = player_name
        self.code = player_code
        self.atbat = int(attr[0])
        self.runs = int(attr[1])
        self.hits = int(attr[2])
        self.doubles = int(attr[3])
        self.triples = int(attr[4])
        self.hr = int(attr[5])
        self.singles = self.hits - self.hr - self.triples - self.doubles
        self.rbi = int(attr[6])
        self.sb = int(attr[7])
        self.cs = int(attr[8])
        self.walks = int(attr[9])
        self.strikeout = int(attr[10])
        self.hbp = int(attr[11])
        self.sacfly = int(attr[12])
        self.defense = 90
        if (self.atbat > 0):
            self.obp = float(self.hits + self.walks + self.hbp) / float(
                self.atbat + self.walks + self.hbp + self.sacfly)
        else:
            self.obp = 0

        if (self.atbat > 0):
            self.avg = int(float(self.hits) / float(self.atbat) * 1000)
        else:
            self.avg = 0
            self.atbat = 1

        cur.execute(
            """select sum(ab),sum(hits),sum(runs),sum(doubles),sum(triples),sum(homeruns),
            sum(walks) from batter where player_code=? and season=2012""", [player_code])
        row = cur.fetchone()
        self.prev_hits = 0
        self.prev_runs = 0
        self.prev_doubles = 0
        self.prev_triples = 0
        self.prev_hr = 0
        self.prev_walks = 0
        self.prev_singles = 0
        if row is not None and row[2] is not None:
            self.prev_atbat = row[0]
            self.prev_hits = row[1]
            self.prev_runs = row[2]
            self.prev_doubles = row[3]
            self.prev_triples = row[4]
            self.prev_hr = row[5]
            self.prev_walks = row[6]
            self.prev_singles = self.prev_hits - self.prev_doubles - self.prev_triples - self.prev_hr
        else:
            self.prev_atbat = 0

        self.gameStats = [0, 0, 0, 0, 0, 0, 0, 0]
Beispiel #2
0
logging.basicConfig(filename=LOG_FILENAME,
                    level=logging.DEBUG,
                    )

logger = logging.getLogger(__name__)

# NUM_OF_GAMES=10000000
# NUM_OF_GAMES=2703600
if sys.argv[2] is not None:
    NUM_OF_GAMES = int(sys.argv[2])
else:
    NUM_OF_GAMES = 10

logger.info('Starting baseball Simulator Run All')

con = MemoryDB.get_con()
cur = con.cursor()

allGames = []

xml = open(sys.argv[1], 'r')
allXML = ET.parse(xml)
for game in allXML.iter('game'):
    preDate = sys.argv[1][-8:][:4]
    print("{}".format(preDate))
    day = preDate[2:]
    if day.startswith('0'):
        day = day[-1:]
    MONTH_INDEX = ['', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    date = MONTH_INDEX[int(preDate[:-2])] + day
    #print(date)
Beispiel #3
0
    def __init__(self, player_name, player_code, game_num, use_memory=True):
        con = MemoryDB.get_con(use_memory)
        cur = con.cursor()
        #print(player_name)
        cur.execute(
            """select sum(ip),sum(hits),sum(doubles),sum(triples),sum(homeruns),sum(er),sum(walks),sum(strikeouts),
            sum(batters_faced),sum(pitch_count),sum(strikes),sum(groundouts),sum(fly_balls),sum(line_drives),
            sum(hit_by_pitch) from pitcher where player_name=? and game < ?""",
            (player_name, game_num))
        attr = cur.fetchone()

        cur.execute("select rest_days,entered,excited from pitcher where player_code=? and game=?;",
                    (player_code, game_num))
        info = cur.fetchone()
        if attr[9] is None or attr is None:
            info = [1, 1, 1]
        if attr[9] is None or attr is None:
            print("Defaulting to 1s")
            attr = [1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1]
        #print(attr)

        self.name = player_name
        self.code = player_code
        self.rest = info[0]
        self.ip = attr[0]
        self.hits = attr[1]
        self.doubles = attr[2]
        self.triples = attr[3]
        self.homeruns = attr[4]
        self.singles = self.hits - self.homeruns - self.triples - self.doubles
        self.er = attr[5]
        self.walks = attr[6]
        self.strikeouts = attr[7]
        self.batters_faced = attr[8]
        self.pitch_count = attr[9]
        self.strikes = attr[10]
        self.groundouts = attr[11]
        self.fly_balls = attr[12]
        self.line_drives = attr[13]
        self.hit_by_pitch = attr[14]
        self.obpa = float((self.hits + self.walks + self.hit_by_pitch) / self.batters_faced)
        #print("hits:", self.hits)
        #print("walks:", self.walks)
        #print("hbp:", self.hit_by_pitch)
        #print("batters_faced:", self.batters_faced)
        self.entered = info[1]
        self.exited = info[2]


        # cur.execute("select bfp,h,hr,bb from pitcher where playerID=? and season=2012",[player_code])
        cur.execute(
            "select sum(batters_faced),sum(hits),sum(homeruns),sum(walks) from pitcher where player_code=? and season=2012",
            [player_code])
        row = cur.fetchone()

        self.prev_batters_faced = 0
        self.prev_hits = 0
        self.prev_homeruns = 0
        self.prev_walks = 0
        if row is not None and row[0] is not None:
            self.prev_batters_faced = row[0]
            self.prev_hits = row[1]
            self.prev_homeruns = row[2]
            self.prev_walks = row[3]
        else:
            cur.execute(
                "select sum(batters_faced),sum(hits),sum(homeruns),sum(walks) from pitcher where player_code=? and season=2011",
                [player_code])
            row = cur.fetchone()
            if row is None or row[0] is None:
                row = [0, 0, 0, 0]
            self.prev_hits = row[1]
            self.prev_homeruns = row[2]
            self.prev_walks = row[3]
            self.prev_batters_faced = row[0]