Assignment Day | Thursday, October 9, 2017 |
Due Date | See schedule page [updated] |
Project 2: Discrete Event Simulation: Time Stepped - Soccer Teams
Your job is to create teams for a soccer simulator server. The soccer server is implemented by a previous student of this class - Will Whitesite.
IN the previous version of the project students started off with a simulated server implemented in C / and using terminal (ASCII) for visualization -and reimplemted to Java and its GUI (previous course project with potentially useful Q/A).
Both the ASCII and Java Soccer code is provided here.
ACII soccer is is not guaranteed to work in your environment, it has been tested on earlier version of redhat, Solaris and it works on the current C/Mac environment. At a minimum you will need to 'port' ASCII server so that it runs/executes on nike, and the Java soccer server must run on your laptop.
Port ASCII soccer teams to Java soccer server teams:
Port 3 teams from the ASCII soccer server to the Java soccer server.
(1) rollers (described in header),
(2) gboone (a captain on a team, and other players follow the captains. Captain is the player closest to the ball, and the role of captain changes to the player closest to the ball). Other players are behind the captain, or lined up behind the ball so they can capture the ball in the event that the ball passes the captain). (board sketch here)
(3) wall (wall of players). The general ideas is that the players spread out into a wall of players, in "offensive mode" as the ball heads towards the goal player 2 spreads out by moving up (NW), and player 3 spreads out by moving down (SW), while players 1&4 continues straight (W) towards the goal. Similarly if ball themoves in an angle but still towards the goal, i.e., NW/SW, players 1&4 heads W - straight towards the goal, while the other players heads in the same direction as the ball. Some caveats - when ball moves up (S) player 1 moves E pending relative y position of player 2, and when ball moves (N) player 4 moves E pending relative y position of player 3 (schematic here for 'wall' in offensive mode).
For defensive mode - see code/and imagine 'wall of players.' Create 2 new team strategies:
Suggestions/Requirements : both must beat the (provided) brute force team.
(1) both must beat the brute force team
(2) teams must be different
(3) write a paragraph describing your strategy. Extend, or Evaluate/Experiment) the Java Soccer Server (simple extensions, select 1-3 items, scoring based on effort).
(1) Study the impact of adding more players (11 per team). [5 - 10 pts depending on the depth of the study]
(2) Study the impact of designated players vs. player that changes roles (e.g., a goalie becoming an offensive player).
(3) Implement variable power / direction of kicks [10 pts]
(4) Add soccer rules into the game, such as rules concerning (intentional)
(5) Study the server and make suggestions on how to improve it [1-10 pts]
(6) Propose an extension or a study that you find interesting.
For "study" set up experiments to study an issue and write about the results.
Caveats: Need JDK for the batfile to compile. Make sure you still have JDK if you upgraded your computer after 1301.
Grading will focus more on implementting the strategies, rather than porting the exact syntax.
Submission Guidelines
Submit code, write-up(s) on nike, and a readme file describing what you did.
Grade Criteria
10 pts - supporting framework - clean ports
60 pts -
teams ported (20 points each, bulk of project)
20 pts -
2 new teams (10 points each), teams need to be different.
10 pts
- java soccer extensions (5-10 points each)