fanorona game manager james andariese jeremiah lewis matt rykaczewski

26
Fanorona Game Manager James Andariese Jeremiah Lewis Matt Rykaczewski

Upload: oswin-cameron

Post on 17-Dec-2015

217 views

Category:

Documents


2 download

TRANSCRIPT

Fanorona Game Manager

James AndarieseJeremiah Lewis

Matt Rykaczewski

Project Overview

• Design a game manager for the game of Fanorona

• Communication must be done through TCP • Project must be completed before Nov. 17th

User Stories/TasksDevelop a protocol and move format.

Rank: 1

Server should display a game board that shows each move.

Rank: 2

•Develop a protocol.•Develop a move format.

• Design a game board(Linked Array).• Display the game board.•Design an interface for communication between game state classes and the User Interface.

User Stories/Tasks Cont.Display the logic of validating each move and store the game states.

Rank: 3

Server should accept moves from a client, apply the move to the game board, and send the move to the opponent.

Rank: 4

• Validate the logic of each move.•Make the move on the internal game board representation.•Send update notifications to the User Interface whenever the validated move batch is sent to the other client.

• Server accepts the move.•Server sends valid move to the other client, applies the move to the game board, and sends an acknowledge message to the first client.

User Stories/Tasks Cont.User connects to a server that will act as a game manager for at least one game of Fanorona.

Rank: 5

Server should display the winner of each game.

Rank: 6

• Create a TCP connection for 2 users, and loop until the first move.• Close the connection after each game is completed.

• Display a message naming the winner of the game.

User Stories/Tasks Cont.Server should keep a log of moves made for each game played.

Rank: 7

• Keep a log of each move made.

EstimatesDevelop a protocol and move format.

Server should display a game board that shows each move.

Estimated NUTs: 20

Estimated NUTs: 1

Display the logic of validating each move and store the game states.

Estimated NUTs: 10

Server should accept moves from a client, apply the move to the game board, and send the move to the opponent.

Estimated NUTs: 10

Estimates Cont.

Server should display the winner of each game.

Estimated NUTs: 0.5

Server should keep a log of moves made for each game played.

Estimated NUTs: 1.5

User connects to a server that will act as a game manager for at least one game of Fanorona.

Estimated NUTs: 5

Bidding

• Bidding was done “silent action” style • 1 NUTs = 12 programming minutes

Bidding/Assigned TasksDevelop a protocol and move format.

Rank: 1 Estimated NUTs: 1

Develop a protocol.• James 0 NUTs Assigned To• Jeremiah 0 NUTs• Matt 0 NUTs

•Develop a move format.• James 0.5 NUTs• Jeremiah 0.5 NUTs• Matt 0.5 NUTs Assigned To

Bidding/Assigned Tasks ContServer should display a game board that shows each move.

Rank: 2 Estimated NUTs: 20

Design a game board(Linked Array).• James 10 NUTs• Jeremiah 2.5 NUTs Winner• Matt 10 NUTs

Display the game board.• James 3 NUTs Winner• Jeremiah 10 NUTs• Matt 15 NUTs

Design an interface for communication between game state classes and the User Interface.

• James 1 NUTs Winner• Jeremiah 5 NUTs• Matt 5 NUTs

Bidding/Assigned TasksDisplay the logic of validating each move and store the game states.

Rank: 3 Estimated NUTs: 10

Validate the logic of each move.• James 8 NUTs• Jeremiah 2.5 NUTs Winner• Matt 4.5 NUTs

Make the move on the internal game board representation.

• James 1 NUTs• Jeremiah 1 NUTs• Matt 1.5 NUTs Assigned To

Send update notifications to the User Interface whenever the validated move batch is sent to the other client.

• James 1 NUTs Winner• Jeremiah 5.5 NUTs• Matt 7 NUTs

Bidding/Assigned Tasks Cont.Server should accept moves from a client, apply the move to the game board, and send the move to the opponent.

Rank: 4 Estimated NUTs: 10

Server accepts the move.• James 3 NUTs• Jeremiah 2.5 NUTs Winner• Matt 4 NUTS

Server sends valid move to the other client, applies the move to the game board, and sends an acknowledge message to the first client.

• James 1 NUTs Winner• Jeremiah 2.5 NUTs• Matt 4 NUTs

Bidding/Assigned Tasks ContUser connects to a server that will act as a game manager for at least one game of Fanorona.

Rank: 5 Estimated NUTs: 5

Create a TCP connection for 2 users, and loop until the first move.

• James 2 NUTs Winner• Jeremiah 2.5 NUTs• Matt 4 NUTs

Close the connection after each game is completed.• James 1 NUTs Winner• Jeremiah 2 NUTs• Matt 2.5 NUTs

Bidding/Assigned Tasks ContServer should display the winner of each game.

Rank: 6 Estimated NUTs: 0.5

Display a message naming the winner of the game. • James 1 NUTs• Jeremiah 0.5 NUTs• Matt 3 NUTs Assigned To

Server should keep a log of moves made for each game played.

Rank: 7 Estimated NUTs: 1.5

Keep a log of each move made. • James 3 NUTs• Jeremiah 1.5 NUTs Winner• Matt 2 NUTs

Work Schedule• 18 per week (6 hours per team member)

• All programming to be done in pairs

• Each team member meets 3 days per week, in 2 hour increments– Monday (James and Jeremiah)– Tuesday (James and Matt)– Wednesday (James, Jeremiah, Matt)– Thursday (Jeremiah, Matt)

Actual vs. EstimatedDevelop a protocol and move format.

Server should display a game board that shows each move.

Estimated NUTs: 20

Estimated NUTs: 1

Display the logic of validating each move and store the game states.

Estimated NUTs: 10

Server should accept moves from a client, apply the move to the game board, and send the move to the opponent.

Estimated NUTs: 10

Actual NUTs: 20

Actual NUTs: 3.5

Actual NUTs: 10

Actual NUTs: 10

Actual/Estimated NUTs: 3.5/1

Actual/Estimated NUTs: 3.5/1

Actual/Estimated NUTs: 3.5/1

Actual/Estimated NUTs: 3.5/1

Actual vs. Estimated Cont.

Server should display the winner of each game.

Estimated NUTs: 0.5

Server should keep a log of moves made for each game played.

Estimated NUTs: 1.5

User connects to a server that will act as a game manager for at least one game of Fanorona.

Estimated NUTs: 5

Actual NUTs: 0.5

Actual NUTs: 1.5

Actual NUTs: 5 Actual/Estimated NUTs: 3.5/1

Actual/Estimated NUTs: 3.5/1

Actual/Estimated NUTs: 3.5/1

Design and Algorithms

Testing

• Two types of test:Server Tests

Done with JUnitUser Interface(GUI) Tests

Done by stating expected outcome and testing

Server Tests

• Test connection to server• Test assigning players to colors

First play to connect should be white

• Test sending string(moves) through threadsInsure all entire move is received

• Test logging feature• Test cycle detection

Check for the same board state as previous moves

User Interface(GUI) Tests

• When UI opens, blank board should appearServer should be ready to accept 2

connections• Test “Fancy Board” option

When selected “Fancy Board” appears• Test “Random Sides” option

When Selected colors are chosen randomly• Test settings being saved

UI settings should be saved when UI closes

Deviations From XP Principles

• 6 hour work week instead of 40 hour

Finished Product

• All user stories completed • Demo soon to follow

Challenges We Faced

• Pair Programming via Elluminate LiveNew program for teamNot real-time programmingSlow start-upsSystem Crashes

What We Learned

• Pair Programming in a school settingDifficult to match scheduleLittle time to work together