J2ME: Tic Tac Toe - Tufts University

Download Report

Transcript J2ME: Tic Tac Toe - Tufts University

J2ME: Tic Tac Toe
By Jud Porter and John Tat
Goals for Project
 Design and implement multiplayer game
 Network connectivity between mobile
devices
 Keep scoring for the game
 Implement a cursor to select positions
Why Tic Tac Toe?
 Simple game to implement
 Framework can be used to implement more
complex game
 Designed and implemented in J2ME
 Java Micro Edition
 Wireless Toolkit 2.2
 Generic toolkit instead of vendor specific
 Better chance of working on a variety of devices
J2ME and Wireless Toolkit
 Device that program is implemented on
must be specified
 Device implements profile
 Profiles are built upon configuration
 MIDP 2.0
 Mobile Information Device Profile 2.0
 CLDC 1.1
 Connection Limited Device Configuration 1.1
Tic Tac Toe Classes
 TacTacToeMidlet
 First class that runs
 Allows the user to select between Client and Server
 Creates a new instance of Client or Server depending on choice
 TicTacToeCanvas





Drawing of the board
Key Pressed
Check for winner
Keeps track of scores
Updates opponents pieces
Tic Tac Toe Classes Cont’d
 TicTacToeServer
 Creates instance of TicTacToeCanvas class
 Communication scheme with client
 First to move
 Sends an integer to client of grid selection
 Waits to receive integer for client of grid selection
 TicTacToeClient
 Creates instance of TicTacToeCanvas class
 Communication scheme with server
 Wait for server to move
 receives the integer and places a piece accordingly onto the
board
Game Structure
Communication Scheme
 Bluetooth
 Protocol too difficult for scope of this project
 Could not get simple application to work
 Other Protocols: Datagram, Socket, COMM
 Moved onto Socket Protocol
 Endpoint for communication of two devices
 Socket connection on port localhost 5000
 InputStream and OutputStream are opened when server
discovers the client or client finds server
 Two way communication scheme
Communication Scheme
 Server has first move
 Client waits for server to move
 On move (when Fire key is pressed)
location of move encoded as integer is sent
to other device
 On receipt of location, other client now has
control of board to send next move
TicTacToeCanvas
 Paint
 Draws board
 Draws pieces
 Draws cursor
 SetPiece
 Stores client/server moves
 Change turns
 keyPressed
 Moves the cursor on the screen
 Selects the board position and sends it to the client/server
 CheckWinner
 Checks for a winner
 Reset
 Resets the board for both client and server
Server/Client Screenshots
Game Screenshots
Winner Screenshots