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:

  1. 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.

  1. 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

  2. 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
REPORT.txt (you may change the extension .txt if not plain text e.g., .doc, .pdf) should include minimally:
A description of your simulator (about 1 page)
A description of your teams and
Screenshots of your simulator.
User documentation, i.e. instructions for a new user on how to use your simulator (email the report to instructor).

     

 

Acknowledgements

The course may use materials from previous game programming courses taught at other universities.