Project 1 & 2: A Grid Based Soccer Simulation Server
Assignment Day | January 09, 2017 |
Check Point 1 Warmup | January 12, 2017 Port ASCII Soccer from nice to work on laptop (should be straight forward). Basicially get it to run on your laptop. |
Check Point 2 Final | January 24 (Demonstrate Java Version on Laptops in Class) |
Project 2: Create Teams for class server. |
Create 2 smart teams different from brute force, example, random, diagonal, or kickers. One team can be a recreation of rollers, mjd, gboone, learn1, spaniels, or rollers. January 31 (project 2 submit teams)
|
Collaboration Policy - Read Carefully
You must work on this project individually, but you may discuss this assignment with other students in the class and ask and provide help in useful ways, preferable over our email list so we can all benefit from your great ideas. You may consult (but not copy) any outside resources you including books, papers, web sites and people.
If you use resources other than the class materials, indicate what you used along with your answer.
Objective
Your job is to create a soccer simulator in Java where competitor can create their own soccer teams and use your simulator to compete. You should also provide a graphical interface displaying the teams process. If you are curious what such a simulator would look like take look at ASCII soccer which is a simple simulator implemented in C. Your implementation should provide the same functionality as ASCII soccer, but with graphics.
ASCII soccer is provided, but it 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 (snow leopard and lion).
Questions/Answers:
- Question: What is the environment like?
Answer: The world should be a grid based world -- were there are only specific locations that the players can inhabit.
- Question: How far should the ball go?
Answer:
The direction should be a bit noisy -- i.e., the ball may not go exactly away from each player.
The distance should be a bit noisy -- sometimes the ball goes further sometimes it goes shorter
- Question: Can players be on top of another?
Answer: This should be prohibited (this is also what ASCII soccer does).
Create Simple Example Teams.
In addition to develop a soccer simulator you will also need to implement two
example teams A1 & A2. You should recreate the brute force team in the ascii soccer server, and you try to create a 2nd team that beats the brute force team.
Project 2: Create Teams for Class Server
After we select a class server, either from class mates or a previous semester. You will need to design and implement two additional teams B1 & B2 for this server.
These teams will need to use a different strategy from brute force, diagonal, example, kickers, wall, or random.
B1: One team that uses some brute force technique (but a variation of the existing team strategy) such that each player goes directly towards the ball.
B2: One team that you design yourself. (you may re-create one of the remaining teams into java, but it would be great if you could try to improve on the strategy).Other Information (Project 1 and Project2) and Getting Started.
You need to write your simulator and teams so that it can easily be distributed and used by other people. Here are some HINTS:
Be careful on how you define your team API
Look at the README file provided in ASCII soccer for hints or README file.
Make sure you environment sees the following executables:
g++
ranlib
ar
How to get the ASCII soccer and run it on atlas:
get the ASCII soccer software at
project1soccer/ASCII_soccer.zi
go to unzipped directory, then
cd soccer
Check out the README file at README
see Quickstart in README file to run server and teams.
Run the script:
contest example wall
Other Requirements
Submitting (more details coming soon): You need to name the directory of your source code "project1/". You must to include a README.txt file describing how to run and compile your program. You also need to include a Makefile, you can find an example Makefile in the directory of the shell helper files directory accessible from the schedule web page. Create a directory project1 Submit your file via the submit command: submit project1 cs8220 For your team project, create directory project2 and submit via the submit command. submit project2 cs8220 source files in Java needed that compiles and runs on nike. Put all the materials needed in the project 1 directory (including a README.txt file) README.txt |