**Not a member of Pastebin yet?**

**, it unlocks many cool features!**

__Sign Up__- import math
- import random
- import csv
- import re
- #load players
- players = []
- with open('players.csv', newline='') as csvfile:
- reader = csv.reader(csvfile, delimiter=',')
- for row in reader:
- players.append(row)
- #special rounding where X.YZ has a YZ% chance of being X+1 and a 1-YZ% chance of being X
- def weightedround(x):
- adjust_floor = math.floor(x)
- adjust_ceiling = adjust_floor + 1
- roll = random.uniform(adjust_floor,adjust_ceiling)
- if roll < x:
- result = adjust_ceiling
- else:
- result = adjust_floor
- return result
- #get rosters and other gameplan options
- away_att = [1,2]
- away_mid = [3,4,5]
- away_def = [6,7,8]
- away_keep = [9]
- away_keepdepth = [3,3,3,2,2,1]
- home_att = [10,11,12]
- home_mid = [13,14]
- home_def = [15,16,17]
- home_keep = [18]
- home_keepdepth = [3,2,2,2,1,1]
- away_roster = []
- home_roster = []
- for i in away_att:
- index = int(players[i][0])
- position = players[i][1]
- name = players[i][2]
- traits = players[i][8]
- POS = weightedround(int(players[i][12])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][13])-int(players[i][12])))
- REA = weightedround(int(players[i][14])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][15])-int(players[i][14])))
- HAN = weightedround(int(players[i][16])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][17])-int(players[i][16])))
- MAR = weightedround(int(players[i][18])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][19])-int(players[i][18])))
- TAC = weightedround(int(players[i][20])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][21])-int(players[i][20])))
- PAS = weightedround(int(players[i][22])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][23])-int(players[i][22])))
- DRI = weightedround(int(players[i][24])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][25])-int(players[i][24])))
- OFF = weightedround(int(players[i][26])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][27])-int(players[i][26])))
- VIS = weightedround(int(players[i][28])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][29])-int(players[i][28])))
- FIN = weightedround(int(players[i][30])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][31])-int(players[i][30])))
- ACC = weightedround(int(players[i][32])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][33])-int(players[i][32])))
- AGG = int(players[i][34])
- away_roster.append([index,position,name,traits,POS,REA,HAN,MAR,TAC,PAS,DRI,OFF,VIS,FIN,ACC,AGG])
- for i in away_mid:
- index = int(players[i][0])
- position = players[i][1]
- name = players[i][2]
- traits = players[i][8]
- POS = weightedround(int(players[i][12])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][13])-int(players[i][12])))
- REA = weightedround(int(players[i][14])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][15])-int(players[i][14])))
- HAN = weightedround(int(players[i][16])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][17])-int(players[i][16])))
- MAR = weightedround(int(players[i][18])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][19])-int(players[i][18])))
- TAC = weightedround(int(players[i][20])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][21])-int(players[i][20])))
- PAS = weightedround(int(players[i][22])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][23])-int(players[i][22])))
- DRI = weightedround(int(players[i][24])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][25])-int(players[i][24])))
- OFF = weightedround(int(players[i][26])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][27])-int(players[i][26])))
- VIS = weightedround(int(players[i][28])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][29])-int(players[i][28])))
- FIN = weightedround(int(players[i][30])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][31])-int(players[i][30])))
- ACC = weightedround(int(players[i][32])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][33])-int(players[i][32])))
- AGG = int(players[i][34])
- away_roster.append([index,position,name,traits,POS,REA,HAN,MAR,TAC,PAS,DRI,OFF,VIS,FIN,ACC,AGG])
- for i in away_def:
- index = int(players[i][0])
- position = players[i][1]
- name = players[i][2]
- traits = players[i][8]
- POS = weightedround(int(players[i][12])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][13])-int(players[i][12])))
- REA = weightedround(int(players[i][14])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][15])-int(players[i][14])))
- HAN = weightedround(int(players[i][16])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][17])-int(players[i][16])))
- MAR = weightedround(int(players[i][18])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][19])-int(players[i][18])))
- TAC = weightedround(int(players[i][20])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][21])-int(players[i][20])))
- PAS = weightedround(int(players[i][22])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][23])-int(players[i][22])))
- DRI = weightedround(int(players[i][24])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][25])-int(players[i][24])))
- OFF = weightedround(int(players[i][26])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][27])-int(players[i][26])))
- VIS = weightedround(int(players[i][28])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][29])-int(players[i][28])))
- FIN = weightedround(int(players[i][30])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][31])-int(players[i][30])))
- ACC = weightedround(int(players[i][32])+random.gauss(0,0.25)+random.gauss(0.15,0.05)*(int(players[i][33])-int(players[i][32])))
- AGG = int(players[i][34])
- away_roster.append([index,position,name,traits,POS,REA,HAN,MAR,TAC,PAS,DRI,OFF,VIS,FIN,ACC,AGG])
- for i in away_keep:
- index = int(players[i][0])
- position = players[i][1]
- name = players[i][2]
- traits = players[i][8]
- AGG = int(players[i][34])
- away_roster.append([index,position,name,traits,POS,REA,HAN,MAR,TAC,PAS,DRI,OFF,VIS,FIN,ACC,AGG])
- for i in home_att:
- index = int(players[i][0])
- position = players[i][1]
- name = players[i][2]
- traits = players[i][8]
- AGG = int(players[i][34])
- home_roster.append([index,position,name,traits,POS,REA,HAN,MAR,TAC,PAS,DRI,OFF,VIS,FIN,ACC,AGG])
- for i in home_mid:
- index = int(players[i][0])
- position = players[i][1]
- name = players[i][2]
- traits = players[i][8]
- AGG = int(players[i][34])
- home_roster.append([index,position,name,traits,POS,REA,HAN,MAR,TAC,PAS,DRI,OFF,VIS,FIN,ACC,AGG])
- for i in home_def:
- index = int(players[i][0])
- position = players[i][1]
- name = players[i][2]
- traits = players[i][8]
- AGG = int(players[i][34])
- home_roster.append([index,position,name,traits,POS,REA,HAN,MAR,TAC,PAS,DRI,OFF,VIS,FIN,ACC,AGG])
- for i in home_keep:
- index = int(players[i][0])
- position = players[i][1]
- name = players[i][2]
- traits = players[i][8]
- AGG = int(players[i][34])
- home_roster.append([index,position,name,traits,POS,REA,HAN,MAR,TAC,PAS,DRI,OFF,VIS,FIN,ACC,AGG])
- print(away_roster)
- print(home_roster)
- half = 1
- #roll extra time
- extra_time = weightedround(max(random.gauss(150,45),0))
- time = 900 + extra_time
- print("The first half will be 15 minutes and feature",extra_time // 60,"minutes and",extra_time % 60,"seconds of extra time")
- #get kickoff possession
- def kickoff(x):
- global possession
- global depth
- global offense
- global time
- depth = 2
- if x == "Home":
- i = 0
- while i < len(home_roster):
- x = home_roster[i][0]
- if x == home_mid[0]:
- possession = i
- i += 1
- else:
- i += 1
- if time - extra_time <= 0:
- minutes = str((time - extra_time) // 60)
- seconds = str(-1*(time - extra_time) % 60)
- timelist = [minutes,":",seconds.zfill(2)]
- else:
- minutes = str((time - extra_time) // 60)
- seconds = str((time - extra_time) % 60)
- timelist = [minutes,":",seconds.zfill(2)]
- print("".join(timelist)," And there's the kickoff, with",home_roster[possession][2],"takes possession")
- elif x == "Away":
- i = 0
- while i < len(away_roster):
- x = away_roster[i][0]
- if x == away_mid[0]:
- possession = i
- i += 1
- else:
- i += 1
- if time - extra_time <= 0:
- minutes = str((time - extra_time) // 60)
- seconds = str(-1*(time - extra_time) % 60)
- timelist = [minutes,":",seconds.zfill(2)]
- else:
- minutes = str((time - extra_time) // 60)
- seconds = str((time - extra_time) % 60)
- timelist = [minutes,":",seconds.zfill(2)]
- print("".join(timelist)," And there's the kickoff, with",away_roster[possession][2],"takes possession")
- #if they'll take a shot
- def takeshot(x):
- global offense
- global possession
- global time
- take_roll = random.randint(1,60 - x*10)
- if offense == "Home":
- y = home_roster[possession][15]
- if take_roll > y:
- result = False
- elif take_roll <= y:
- result = True
- elif offense == "Away":
- y = away_roster[possession][15]
- if take_roll > y:
- result = False
- elif take_roll <= y:
- result = True
- return result
- #is shot on target
- def ontarget():
- global offense
- global possession
- global depth
- global time
- target_roll = random.randint(1,15 + depth * 15)
- if offense == "Home":
- y = home_roster[possession][14]
- if target_roll > y:
- result = False
- elif target_roll <= y:
- result = True
- elif offense == "Away":
- y = away_roster[possession][14]
- if target_roll > y:
- result = False
- elif target_roll <= y:
- result = True
- time -= weightedround(random.gauss(6,1))
- return result
- #Determining who's guarding who
- def marking():
- global possession
- global offense
- global marking_off
- global marking_def
- global depth
- global time
- away_att2 = away_att[:]
- away_mid2 = away_mid[:]
- away_def2 = away_def[:]
- home_att2 = home_att[:]
- home_mid2 = home_mid[:]
- home_def2 = home_def[:]
- marking_off = []
- marking_def = []
- if offense == "Home":
- i = 0
- while i < len(home_att2):
- q = home_att2[i]
- t = 0
- while t < len(home_roster):
- y = home_roster[t][0]
- if y == q:
- r = t
- t += 1
- else:
- t += 1
- marking_off.append(r)
- try:
- z = random.choice(away_def2)
- away_def2.remove(z)
- except:
- z = random.choice(away_mid2)
- away_mid2.remove(z)
- t = 0
- while t < len(away_roster):
- y = away_roster[t][0]
- if y == z:
- s = t
- t += 1
- else:
- t += 1
- marking_def.append(s)
- i += 1
- i = 0
- while i < len(home_mid2):
- q = home_mid2[i]
- t = 0
- while t < len(home_roster):
- y = home_roster[t][0]
- if y == q:
- r = t
- t += 1
- else:
- t += 1
- marking_off.append(r)
- try:
- try:
- z = random.choice(away_def2)
- away_def2.remove(z)
- except:
- z = random.choice(away_mid2)
- away_mid2.remove(z)
- except:
- z = random.choice(away_att2)
- away_att2.remove(z)
- t = 0
- while t < len(away_roster):
- y = away_roster[t][0]
- if y == z:
- s = t
- t += 1
- else:
- t += 1
- marking_def.append(s)
- i += 1
- i = 0
- while i < len(home_def2):
- q = home_def2[i]
- t = 0
- while t < len(home_roster):
- y = home_roster[t][0]
- if y == q:
- r = t
- t += 1
- else:
- t += 1
- marking_off.append(r)
- try:
- z = random.choice(away_mid2)
- away_mid2.remove(z)
- except:
- z = random.choice(away_att2)
- away_att2.remove(z)
- t = 0
- while t < len(away_roster):
- y = away_roster[t][0]
- if y == z:
- s = t
- t += 1
- else:
- t += 1
- marking_def.append(s)
- i += 1
- elif offense == "Away":
- i = 0
- while i < len(away_att2):
- q = away_att2[i]
- t = 0
- while t < len(away_roster):
- y = away_roster[t][0]
- if y == q:
- r = t
- t += 1
- else:
- t += 1
- marking_off.append(r)
- try:
- z = random.choice(home_def2)
- home_def2.remove(z)
- except:
- z = random.choice(away_mid2)
- home_mid2.remove(z)
- t = 0
- while t < len(home_roster):
- y = home_roster[t][0]
- if y == z:
- s = t
- t += 1
- else:
- t += 1
- marking_def.append(s)
- i += 1
- i = 0
- while i < len(away_mid2):
- q = away_mid2[i]
- t = 0
- while t < len(away_roster):
- y = away_roster[t][0]
- if y == q:
- r = t
- t += 1
- else:
- t += 1
- marking_off.append(r)
- try:
- try:
- z = random.choice(home_def2)
- home_def2.remove(z)
- except:
- z = random.choice(home_mid2)
- home_mid2.remove(z)
- except:
- z = random.choice(home_att2)
- home_att2.remove(z)
- t = 0
- while t < len(home_roster):
- y = home_roster[t][0]
- if y == z:
- s = t
- t += 1
- else:
- t += 1
- marking_def.append(s)
- i += 1
- i = 0
- while i < len(away_def2):
- q = away_def2[i]
- t = 0
- while t < len(away_roster):
- y = away_roster[t][0]
- if y == q:
- r = t
- t += 1
- else:
- t += 1
- marking_off.append(r)
- try:
- z = random.choice(home_mid2)
- home_mid2.remove(z)
- except:
- z = random.choice(home_att2)
- home_att2.remove(z)
- t = 0
- while t < len(home_roster):
- y = home_roster[t][0]
- if y == z:
- s = t
- t += 1
- else:
- t += 1
- marking_def.append(s)
- i += 1
- #dribble and tackle function
- def dribble():
- global possession
- global offense
- global depth
- global marking_off
- global marking_def
- global time
- z = marking_off.index(possession)
- y = marking_def[z]
- if offense == "Home":
- print(home_roster[possession][2],"on the ball with",away_roster[y][2],"defending.")
- elif offense == "Away":
- print(away_roster[possession][2],"on the ball with",home_roster[y][2],"defending.")
- #passing
- def passattempt():
- global possession
- global offense
- global depth
- global time
- if depth == 3:
- x = random.choice([3,3,2,2])
- depth = x
- elif depth == 2:
- x = random.choice([3,2,2,2,1,1])
- depth = x
- elif depth == 1:
- x = random.choice([2,2,1,1])
- depth = x
- if offense == "Home":
- pass
- elif offense == "Away":
- pass
- #change possession macro
- def changepossession(x):
- global possession
- global offense
- global depth
- global time
- if x == 1: ##Shots off target//Keeper catches
- i = 0
- if offense == "Away":
- offense = "Home"
- while i < len(home_roster):
- x = home_roster[i][0]
- if x == home_keep[0]:
- possession = i
- keeper = i
- i += 1
- else:
- i += 1
- if "Distributor" in home_roster[keeper][3]:
- distributor_bonus = 1
- else:
- distributor_bonus = 0
- t = random.choice(home_keepdepth)
- if t == 3: #return to defense
- q = random.choice(home_def)
- i = 0
- while i < len(home_roster):
- z = home_roster[i][0]
- if z == q:
- possession = i
- i += 1
- else:
- i += 1
- depth = 3
- print("Keeper",home_roster[keeper][2],"rolls the ball to his defender",home_roster[possession][2])
- elif t == 2: #return to midfield
- z = random.randint(1+distributor_bonus,4)
- if z > 2:
- q = random.choice(home_mid)
- i = 0
- while i < len(home_roster):
- z = home_roster[i][0]
- if z == q:
- possession = i
- i += 1
- else:
- i += 1
- depth = 2
- print("Keeper",home_roster[keeper][2],"boots the ball into the midfield where it's collected by",home_roster[possession][2])
- else:
- q = random.choice(away_mid)
- i = 0
- while i < len(away_roster):
- z = away_roster[i][0]
- if z == q:
- possession = i
- i += 1
- else:
- i += 1
- depth = 2
- offense = "Away"
- print("Keeper",home_roster[keeper][2],"boots the ball into the midfield, but it's stolen by",away_roster[possession][2])
- elif t == 1: #push on the attack
- z = random.randint(1+distributor_bonus,4)
- if z == 4:
- q = random.choice(home_att)
- i = 0
- while i < len(home_roster):
- z = home_roster[i][0]
- if z == q:
- possession = i
- i += 1
- else:
- i += 1
- depth = 1
- print("Keeper",home_roster[keeper][2],"pushes the ball deep into the attack and it connects to",home_roster[possession][2])
- else:
- q = random.choice(away_def)
- i = 0
- while i < len(away_roster):
- z = away_roster[i][0]
- if z == q:
- possession = i
- i += 1
- else:
- i += 1
- depth = 3
- offense = "Away"
- print("Keeper",home_roster[keeper][2],"launches the ball over his teammates where it's easily collected by",away_roster[possession][2])
- elif offense == "Home":
- offense = "Away"
- while i < len(away_roster):
- x = away_roster[i][0]
- if x == away_keep[0]:
- possession = i
- keeper = i
- i += 1
- else:
- i += 1
- if "Distributor" in away_roster[keeper][3]:
- distributor_bonus = 1
- else:
- distributor_bonus = 0
- t = random.choice(away_keepdepth)
- if t == 3: #return to defense
- q = random.choice(away_def)
- i = 0
- while i < len(away_roster):
- z = away_roster[i][0]
- if z == q:
- possession = i
- i += 1
- else:
- i += 1
- depth = 3
- print("Keeper",away_roster[keeper][2],"rolls the ball to his defender",away_roster[possession][2])
- elif t == 2: #return to midfield
- z = random.randint(1+distributor_bonus,4)
- if z > 2:
- q = random.choice(away_mid)
- i = 0
- while i < len(away_roster):
- z = away_roster[i][0]
- if z == q:
- possession = i
- i += 1
- else:
- i += 1
- depth = 2
- print("Keeper",away_roster[keeper][2],"boots the ball into the midfield where it's collected by",away_roster[possession][2])
- else:
- q = random.choice(home_mid)
- i = 0
- while i < len(home_roster):
- z = home_roster[i][0]
- if z == q:
- possession = i
- i += 1
- else:
- i += 1
- depth = 2
- offense = "Home"
- print("Keeper",away_roster[keeper][2],"boots the ball into the midfield, but it's stolen by",home_roster[possession][2])
- elif t == 1: #push on the attack
- z = random.randint(1+distributor_bonus,4)
- if z == 4:
- q = random.choice(away_att)
- i = 0
- while i < len(away_roster):
- z = away_roster[i][0]
- if z == q:
- possession = i
- i += 1
- else:
- i += 1
- depth = 1
- print("Keeper",away_roster[keeper][2],"pushes the ball deep into the attack and it connects to",away_roster[possession][2])
- else:
- q = random.choice(home_def)
- i = 0
- while i < len(home_roster):
- z = home_roster[i][0]
- if z == q:
- possession = i
- i += 1
- else:
- i += 1
- depth = 3
- offense = "Home"
- print("Keeper",away_roster[keeper][2],"launches the ball over his teammates where it's easily collected by",home_roster[possession][2])
- kickoff_flag = True
- offense = "Away"
- while time > 0:
- while kickoff_flag == True:
- print("KICKOFF")
- if offense == "Away":
- kickoff("Away")
- elif offense == "Home":
- kickoff("Home")
- kickoff_flag = False
- time -= weightedround(random.gauss(10,2.5))
- if takeshot(1) == True:
- if ontarget() == True:
- if offense == "Home":
- print("Shot taken by",home_roster[possession][2]," and it's on target.")
- kickoff_flag = True
- offense = "Away"
- print("CONTINUE")
- continue
- elif offense == "Away":
- print("Shot taken by",away_roster[possession][2]," and it's on target.")
- kickoff_flag = True
- offense = "Home"
- print("CONTINUE")
- continue
- else:
- if offense == "Home":
- print("Shot taken by",home_roster[possession][2]," but it's off-target.")
- changepossession(1)
- elif offense == "Away":
- print("Shot taken by",away_roster[possession][2]," but it's off-target.")
- changepossession(1)
- marking()
- dribble()
- Example results:
- =============================================================================== RESTART: C:\Users\roman\OneDrive\Desktop\Colosseum League Football\Engine.py ===============================================================================
- [[1, 'ST', 'Striker 1', '[]', 2, 1, 3, 2, 2, 8, 10, 11, 8, 12, 8, 14], [2, 'ST', 'Striker 2', '[]', 3, 2, 2, 2, 2, 9, 10, 11, 10, 13, 8, 14], [3, 'MF', 'Fielder 1', '[]', 2, 2, 2, 6, 6, 10, 10, 9, 14, 10, 9, 10], [4, 'MF', 'Fielder 2', '[]', 2, 2, 2, 6, 6, 10, 10, 8, 10, 10, 8, 10], [5, 'MF', 'Fielder 3', '[]', 3, 2, 2, 5, 6, 11, 10, 9, 10, 9, 7, 10], [6, 'DB', 'Back 1', '[]', 2, 2, 2, 10, 10, 7, 8, 6, 7, 6, 4, 5], [7, 'DB', 'Back 2', '[]', 2, 2, 2, 10, 10, 6, 8, 6, 7, 6, 4, 5], [8, 'DB', 'Back 3', '[]', 2, 2, 2, 10, 10, 7, 9, 6, 7, 6, 4, 5], [9, 'GK', 'Keeper 1', '[]', 10, 10, 10, 4, 4, 4, 4, 4, 4, 5, 4, 4]]
- [[10, 'ST', 'Striker A', '[]', 2, 1, 2, 1, 1, 8, 12, 10, 10, 7, 9, 16], [11, 'ST', 'Striker B', '[]', 2, 2, 2, 1, 1, 7, 11, 11, 8, 11, 9, 11], [12, 'ST', 'Striker C', '[]', 2, 2, 2, 1, 1, 7, 11, 10, 9, 14, 8, 14], [13, 'MF', 'Fielder A', '[]', 2, 2, 2, 6, 6, 9, 8, 8, 10, 3, 9, 8], [14, 'MF', 'Fielder C', '[]', 2, 2, 2, 6, 6, 10, 9, 8, 7, 3, 8, 8], [15, 'DB', 'Back A', '[]', 2, 2, 2, 9, 9, 6, 7, 6, 8, 3, 8, 3], [16, 'DB', 'Back B', '[]', 2, 2, 2, 9, 9, 5, 9, 5, 8, 3, 7, 3], [17, 'DB', 'Back C', '[]', 2, 2, 2, 9, 9, 5, 7, 6, 9, 4, 8, 3], [18, 'GK', 'Keeper A', '[‘Distributor’]', 8, 9, 9, 4, 3, 5, 4, 5, 4, 4, 4, 4]]
- The first half will be 15 minutes and feature 3 minutes and 17 seconds of extra time
- KICKOFF
- 15:00 And there's the kickoff, with Fielder 1 takes possession
- Shot taken by Fielder 1 and it's on target.
- CONTINUE
- KICKOFF
- 14:44 And there's the kickoff, with Fielder A takes possession
- Fielder A on the ball with Fielder 2 defending.
- Shot taken by Fielder A but it's off-target.
- Keeper Keeper 1 launches the ball over his teammates where it's easily collected by Back C
- Back C on the ball with Striker 2 defending.
- Back C on the ball with Striker 1 defending.
- Back C on the ball with Striker 2 defending.
- Back C on the ball with Striker 1 defending.
- Back C on the ball with Striker 1 defending.
- Back C on the ball with Striker 1 defending.
- Back C on the ball with Striker 2 defending.
- Back C on the ball with Striker 2 defending.
- Back C on the ball with Striker 1 defending.
- Back C on the ball with Striker 2 defending.
- Back C on the ball with Striker 1 defending.
- Back C on the ball with Striker 2 defending.
- Shot taken by Back C but it's off-target.
- Keeper Keeper 1 rolls the ball to his defender Back 2
- Back 2 on the ball with Striker A defending.
- Back 2 on the ball with Striker C defending.
- Shot taken by Back 2 but it's off-target.
- Keeper Keeper A boots the ball into the midfield where it's collected by Fielder A
- Fielder A on the ball with Fielder 3 defending.
- Fielder A on the ball with Fielder 3 defending.
- Fielder A on the ball with Fielder 1 defending.
- Fielder A on the ball with Fielder 1 defending.
- Shot taken by Fielder A and it's on target.
- CONTINUE
- KICKOFF
- 11:14 And there's the kickoff, with Fielder 1 takes possession
- Fielder 1 on the ball with Back B defending.
- Shot taken by Fielder 1 but it's off-target.
- Keeper Keeper A pushes the ball deep into the attack and it connects to Striker B
- Striker B on the ball with Back 2 defending.
- Shot taken by Striker B but it's off-target.
- Keeper Keeper 1 launches the ball over his teammates where it's easily collected by Back B
- Back B on the ball with Striker 2 defending.
- Back B on the ball with Striker 2 defending.
- Back B on the ball with Striker 1 defending.
- Shot taken by Back B and it's on target.
- CONTINUE
- KICKOFF
- 9:51 And there's the kickoff, with Fielder 1 takes possession
- Fielder 1 on the ball with Back B defending.
- Fielder 1 on the ball with Back B defending.
- Shot taken by Fielder 1 but it's off-target.
- Keeper Keeper A rolls the ball to his defender Back A
- Back A on the ball with Fielder 2 defending.
- Back A on the ball with Fielder 2 defending.
- Back A on the ball with Fielder 1 defending.
- Back A on the ball with Fielder 1 defending.
- Back A on the ball with Fielder 1 defending.
- Back A on the ball with Fielder 1 defending.
- Back A on the ball with Fielder 2 defending.
- Back A on the ball with Fielder 2 defending.
- Back A on the ball with Fielder 2 defending.
- Back A on the ball with Fielder 2 defending.
- Back A on the ball with Fielder 2 defending.
- Back A on the ball with Fielder 2 defending.
- Back A on the ball with Fielder 3 defending.
- Back A on the ball with Fielder 3 defending.
- Back A on the ball with Fielder 3 defending.
- Back A on the ball with Fielder 3 defending.
- Back A on the ball with Fielder 2 defending.
- Back A on the ball with Fielder 1 defending.
- Back A on the ball with Fielder 3 defending.
- Shot taken by Back A and it's on target.
- CONTINUE
- KICKOFF
- 5:58 And there's the kickoff, with Fielder 1 takes possession
- Shot taken by Fielder 1 but it's off-target.
- Keeper Keeper A launches the ball over his teammates where it's easily collected by Back 1
- Back 1 on the ball with Striker C defending.
- Back 1 on the ball with Striker C defending.
- Shot taken by Back 1 but it's off-target.
- Keeper Keeper A pushes the ball deep into the attack and it connects to Striker B
- Striker B on the ball with Back 1 defending.
- Striker B on the ball with Back 3 defending.
- Shot taken by Striker B but it's off-target.
- Keeper Keeper 1 launches the ball over his teammates where it's easily collected by Back A
- Back A on the ball with Fielder 1 defending.
- Back A on the ball with Fielder 3 defending.
- Back A on the ball with Fielder 1 defending.
- Back A on the ball with Fielder 1 defending.
- Back A on the ball with Fielder 3 defending.
- Back A on the ball with Fielder 3 defending.
- Back A on the ball with Fielder 2 defending.
- Shot taken by Back A but it's off-target.
- Keeper Keeper 1 rolls the ball to his defender Back 1
- Back 1 on the ball with Striker C defending.
- Shot taken by Back 1 but it's off-target.
- Keeper Keeper A boots the ball into the midfield where it's collected by Fielder C
- Fielder C on the ball with Fielder 3 defending.
- Fielder C on the ball with Fielder 3 defending.
- Fielder C on the ball with Fielder 1 defending.
- Shot taken by Fielder C but it's off-target.
- Keeper Keeper 1 launches the ball over his teammates where it's easily collected by Back C
- Back C on the ball with Striker 1 defending.
- Back C on the ball with Striker 2 defending.
- Back C on the ball with Striker 1 defending.
- Back C on the ball with Striker 1 defending.
- Back C on the ball with Striker 1 defending.
- Back C on the ball with Striker 1 defending.
- Back C on the ball with Striker 2 defending.
- Back C on the ball with Striker 1 defending.
- Back C on the ball with Striker 2 defending.
- Back C on the ball with Striker 2 defending.
- Back C on the ball with Striker 2 defending.
- Back C on the ball with Striker 1 defending.
- Back C on the ball with Striker 2 defending.
- Back C on the ball with Striker 2 defending.
- Back C on the ball with Striker 1 defending.
- Back C on the ball with Striker 2 defending.
- Back C on the ball with Striker 1 defending.
- Back C on the ball with Striker 2 defending.
- Back C on the ball with Striker 2 defending.
- Back C on the ball with Striker 1 defending.
- Back C on the ball with Striker 1 defending.
- Shot taken by Back C but it's off-target.
- Keeper Keeper 1 boots the ball into the midfield where it's collected by Fielder 1
- Fielder 1 on the ball with Back C defending.
- Shot taken by Fielder 1 but it's off-target.
- Keeper Keeper A boots the ball into the midfield, but it's stolen by Fielder 3
- Fielder 3 on the ball with Fielder C defending.
- Fielder 3 on the ball with Fielder C defending.
- Shot taken by Fielder 3 but it's off-target.
- Keeper Keeper A pushes the ball deep into the attack and it connects to Striker C
- Striker C on the ball with Back 2 defending.
- Striker C on the ball with Back 3 defending.
- Shot taken by Striker C but it's off-target.
- Keeper Keeper 1 launches the ball over his teammates where it's easily collected by Back A
- Back A on the ball with Fielder 3 defending.
- Back A on the ball with Fielder 2 defending.
- Back A on the ball with Fielder 1 defending.
- Shot taken by Back A but it's off-target.
- Keeper Keeper 1 rolls the ball to his defender Back 3
- Back 3 on the ball with Striker C defending.
- Back 3 on the ball with Striker C defending.
- Back 3 on the ball with Striker B defending.
- Back 3 on the ball with Striker C defending.

RAW Paste Data