final presentation – cs 425 aaron o'banion todd astroth chris cobb matt stowe mark williams

30
Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Upload: barnaby-page

Post on 28-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Final Presentation – CS 425

Aaron O'Banion Todd AstrothChris CobbMatt Stowe

Mark Williams

Page 2: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Team QuoridorMission Statement

Our project is to produce a software version of the board game Quoridor

With network support With some AI components

Page 3: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Quoridor Basics

2-4 Players 6x6 to 12x12

square grid Variable number

of blocking walls for each player

Objective: First player to reach opposite side wins

Page 4: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Quoridor Rules

Tokens can only be moved to spaces not blocked by walls

Walls must never block any player from finishing the game

Page 5: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

End Users

Primarily Professor Klein and his players Students and teachers of AI course Anyone that wants to play the game that

understands all the rules.

Page 6: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Functional Requirements

Variable board size Number of walls each player starts with Start zones and Goal zones of each player Wall placement and Movement constraints The logs for keeping track of the moves Ability to play over a network Ability to play three built-in AI’s Ability to plug in AI modules

Page 7: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Non-Functional Requirements

Run on Windows Documentation User Manual Timely gameplay

Page 8: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Optional Features

More competitive AI’s Token Image upload Time clock Interactive help box explaining why a

desired illegal move is illegal

Page 9: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Design Goals

To provide an entertaining and enjoyable game-playing experience.

To provide an easy-to-use and aesthetically pleasing interface.

To allow players to compete remotely using a network.

To allow AI’s to be inserted into Quoridor

Page 10: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

The Quoridor Lifecycle Model

Page 11: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Phase 1:

InterfaceGame

User Interface Hotseat gameplay (one computer) Gameplay constraints

Phase 1: Game Functionality

Page 12: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Gameplay over a network Server and Clients

Phase 2: Networking

Phase 2:

Interface

Client

GameRemote

Interface

Server

Client Client

Host

ClientClient

Page 13: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Allow users to plug in AI’s Include three sample AI’s

Phase 3: Inserting AI’s

Phase 3:

Interface

Client

AI GameRemote

Interface

Server

Client Client

Host

ClientClient

Page 14: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Major Subsystems

Interface Game Client Server Artificial Intelligence

Page 15: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Interface Subsystem

User interaction Collect information from user Allows input of wall placement / token

movement Sends moves to Client Updates board state using information

received from Client

Page 16: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Game Subsystem

Stores the current board state Validates moves / wall placements and

sends results to Server Receives parameters of game setup from

Server

Page 17: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

networking Subsystems

Client Connects to the Server through sockets (BSD) Gateway for moves between Server and Interface Represents a player

Server Compiles and stores settings in Game subsystem Receives moves from Clients and AI’s, validates

moves using Game subsystem, and sends validation back to client

Page 18: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

AI Subsystem

AI’s can be created and inserted into the system

We will provide a C++ header file that allows connection of modules to Quoridor

Receives current board state from Server Passes AI’s moves to Server If illegal moves are received by Server,

Server will discontinue AI, and that player loses the game

Page 19: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

User Interface Mockups

Three Major Screens:• Title screen • Player Setup screen• Gameplay screen (game board)

Page 20: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Player Setup Screen

Three player types:• Local user• AI player• Remote user

Host controls setup All settings and options

are configured before the game starts

Sample setup screen

Page 21: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Game Board

The target goal is indicated for each player by their token color

Advance token by clicking a space– Legal moves are

highlighted on board Place a wall by clicking a

groove– Legal wall placements are

indicated in yellow Player starting locations:

1↓, 2↑, 3←, 4→

Sample game board

Page 22: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Persistent Data

We will allow a game in progress to be saved and continued at a later time

Data to store in a text file:– Setup information– Player information– Current Game state

Page 23: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Next Semester Timeline

Phase 1 (Hotseat)

Phase 2 (Networking)

Phase 3 (AI’s)

Page 24: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Team Organization

Steve KleinMain client

Bernard WaxmanUpper Management

Aaron O’BanionProject Manager

Todd Astroth Lead Documenter

Chris CobbLead Tester

Mark WilliamsLead Designer

Matt StoweLead Programmer

Page 25: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Risk Management

Backtracking Difficulty Acceptance Issues Late Finish Feature Creep Network Difficulties AI Functionality

Page 26: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

System Testing Plan

Interface Stand-Alone without Validation Interface Stand-Alone with Validation Network Connection

Server to 1 Client Server to Many Clients

Integration AI Integration

Page 27: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Alterations to the System

Baselines Proposing a Change Investigating a Proposed Change Change Management Board Implementing a Change

Page 28: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Team Training Plan

Internal Training Visual Basic Socket Programming (VB) AI Modules (C++)

External Training User Manual Help Menu

Page 29: Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams

Installation and Operation Plan

Installation– Responsibility

• First Copy – Us• Rest – Client

– Before April 25th

Operation– Before final Installation - Quoridor Team– After final Installation - Client