# The Secret Soccer Strategies of the Interrupting Cows

## Who we are:

The Interrupting Cows are an ASCII Soccer team created for CS4324. They were developed on the premise that it is possible to plan (and code) successful soccer strategies. These strategies will succeed without the team having the ability to make on-the-fly changes. (This is much like the coach having the absolute say-so; there is no way for the players to disregard the plays when on the field). Unfortunately for all those soccer players out there, we hope to show that the coach does know best. For the purposes of this explanation, the goals are at the east and west ends of the field. Assume that the Interrupting Cows are always moving from the East to the West. There are four positions, two offense and two defense. The players switch position depending on who is closest to the ball. The two closest players play offense, and the two players farther out play defense. A player's position is determined at the beginning of each turn. This algorithm maximizes the capabilities of the players to work together as a team. Instead of the players attempting to keep up with the ball (difficult because the ball moves faster than they do), the closest player assumes the roll of aggressive forward, while the further players take the defensive roles. The advantage here is that if a player that was once defensive is now in the lead with the ball, it will charge, and another will take over defense automatically.

### Vision

We can find out nearly exactly where the ball is to get an accurate distance measurement in addition to an angle, which will be used for the player strategies. We know wedges of visibilities from the ball angles, and we can composite multiple wedges to get a better guess. Of course, the ball may have moved then, so we use fuzzy balls to move into a superposition of states. In the event that we get an exact sighting, then the wonderful laws of quantum mechanics come in, and the ball cannot be elsewhere. We identify an exact ball position for the players' strategies by picking randomly from the weighted fuzzy balls.

### Offensive Strategy

We have two players dedicated to offense at all times. Their chief goal is to get to the ball. The closest player to the ball moves in the direction of the ball but also tries to always stay east of it (this is to enable the player to kick the ball in the proper direction once he (she) arrives at the ball's location). The second closest player moves towards the ball if it is greater than half the kick distance away. (Kick distance is the definition of how far the ball will travel if unobstructed when kicked. This is defined by the main soccer program.) If it is not, then it will go towards the ball and align itself in a flanking position. The flanking position we use has the player further away stay a little back and to the side of the front player. This helps to protect against break aways by the other team and allows for support of the closer player.

Our players only employ a more refined strategy when they can actually see the ball. (The ball can only be seen if it is in a square directly adjacent to a player.)

Our strategy is based on the theory that the easiest way to score is to break away with the ball.

This is coded very specifically. You may notice some redundancies, but this is intentional to allow the coaches to fine tune the teams.

• If the ball is N of the player:
• and something is NE:
• it's an opponent:
• and there's a teammate E:
• go NW (to receive kick)
• if NW is occupied, go W (to receive kick)
• and there's an opponent E:
• stay
• it's a teammate:
• and there's an opponent E:
• go W (to receive kick)
• if W is occupied, go SW (to receive kick)
• and there's a teammate E:
• go W (to receive kick)
• if W is occupied, go SW (to receive kick)
• it's something else:
• you aren't near a wall:
• go E (to get to other side of ball)
• you are near a wall
• stay
• and there is something E:
• go NE (to get to the other side of the ball)
• and there is something NW:
• go NE
• else go NE
• If the ball is NE of the player:
• and there is something E:
• it's a teammate:
• go W (to receive kick)
• if W is occupied, go SW (to get out of the way)
• it's an opponent:
• stay
• else go E
• If the ball is S of the player:
• and something is SE:
• it's an opponent:
• and there's a teammate E:
• go SW (to receive kick)
• if SW is occupied, go W (to receive kick)
• and there's an opponent E:
• stay
• it's a teammate:
• and there's an opponent E:
• go W (to receive kick)
• if W is occupied, go NW (to receive kick)
• and there's a teammate E:
• go W (to receive kick)
• if W is occupied, go NW (to receive kick)
• it's something else:
• you aren't near a wall:
• go E (to get to other side of ball)
• you are near a wall
• go SE (to move towards the other side of the ball)
• and there is something E:
• go SE (to get to the other side of the ball)
• and there is something SW:
• go SE
• else go SE
• If the ball is SE of the player:
• and there is something E:
• it's a teammate:
• go W (to receive kick)
• if W is occupied, go NW (to get out of the way)
• it's an opponent:
• stay
• else go E
• If the ball is E of the player:
• and there is something SW:
• the team is on the other side of the ball (E of the player)
• go W (to receive kick)
• if W is occupied, go NW
• if W and NW are occupied, go SW
• the team is not there
• go NE
• if NE is occupied, go SE
• if NE and SE are occupied, stay
• If the ball is W of the player:
• KICK IT!

### Defensive Strategy

The two players furthest away from the ball are our "defensive line". These two players work hard to protect our goal line. They both hang back and are quick to cut off any advances by the other team. The two players furthest away from the ball are defensive.

Of these two, the player closest to the ball is more aggressive. This player goes directly to the ball when it comes within its territory - the last part of the east end of the field. Otherwise, it hovers just about kick distance behind the ball and waits for action.

The player furthest away is designated goalie. As the other defensive player, it is in charge of not letting the ball cross the goal line. It does this by immediately attacking any ball that approaches it in the east quarter of the field. It stays back from the pack - about one and a half times kick distance - in order to guard against the break away and to better protect the goal line.

### Results

In trial runs, the Interrupting Cows have performed very well against the teams provided in the ASCII soccer package. The Interrupting Cows consistently defeat all of the teams, with the exception of learn1 which does not compile properly and the Dynamic Rollers and Soccer Spaniels who we beat only 60% of the time. This algorithm as proven itself very effective against many different strategies. We hope to compete against other teams in the near future with similar (or better :) ) success.

### The Results

We are undefeated against all other sample teams. except for Dynamic Rollers and Soccer Spaniels, whom we beat about 60% of the time. These two teams beat the other teams most of the time.

Interrupting Cows results
Dynamic Rollers and Soccer Spaniels results

### The Source Code

main.c

You will need to create a directory cows for it and give it the other default files.

### The Coaches

The plays and algorithms for the Interrupting Cows were developed by Gary Yngve and Alison Smith, junior computer science majors at Georgia Tech.
Gary may be contacted at gary@cc.gatech.edu
Alison may be contacted at ans@cc.gatech.edu

Back to the Interrupting Cows' Homepage