/
Backgammon Framework CS 347 Backgammon Framework CS 347

Backgammon Framework CS 347 - PowerPoint Presentation

lois-ondreau
lois-ondreau . @lois-ondreau
Follow
346 views
Uploaded On 2018-09-18

Backgammon Framework CS 347 - PPT Presentation

Spring 2010 Stephen Mues Access Google Code svn checkout httpcs347backgammongooglecodecomsvntrunk cs347backgammonreadonly This command will be on the assignment Email Only when absolutely necessary ID: 669567

int run client server run int server client python game sampleclient create function move machines turn running join package localhost

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Backgammon Framework CS 347" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Backgammon Framework

CS 347

Spring 2010

Stephen MuesSlide2

Access

Google Codesvn checkout http://cs347backgammon.googlecode.com/svn/trunk/ cs347backgammon-read-only

This command will be on the assignment

Email

Only when absolutely necessarySlide3

Directories

codegen (Ignore This)guiClient (In progress)

sampleClient

(This is what you will edit)

server

(This is what you will connect to)

forPython2.5

(For campus machines)

sampleClient

serverSlide4

Code Generator

No longer necessaryAutomatically generates clients

The clients have been modified by handSlide5

guiClient

Work in progressWill be used for the tournament

Implemented in JavaSlide6

forPython2.5

Functionally identical copies of the server and clientGuaranteed to work on the machines in CS 213

Differences

Python client includes a copy of ctypes package

Server uses the threading python package instead of the multiprocessing

packageSlide7

Server

To start a serverMove into the server directory

Run

python main.py -b”

To stop a server

Ctrl-C on normal machines

Run

killall python” on campus machines (Using the code in the forPython2.5 folder)Slide8

sampleClient

Contains directories for C++, Python, JavaAll 3 clients communicate with the server through a C library

You will only edit AI.* and create any other files you

need

All the function calls you need are used in the example ASCII GUI client provided in each languageSlide9

AI.*

run()Is called to begin your turn

Returning True from this function ends your turn

Returning False from this function requests a status update, causing run to be

called

again

Your moves are not sent to the server until you return True or False (and your ServerBoard object is not updated until then either)Slide10

Available functions in run()

void serverBoards[0].move(int from, int to)void serverBoards[0].bearOff(int from)

int player0Score()

int player1Score()

int getPoint(int index)

int getDie(int index)

double player0Time()

double player1Time()

int getPlayerID()

int turnNumber()Slide11

Example ASCII GUISlide12

Players

If I am Player ...

My checkers are...

My home board consists of ...

When I am hit, I am sent to...

My ASCII symbol is ...

0

Negative

Points 1 to 6

Point 25

X

1

Positive

Points 24 to 19

Point 0

OSlide13

Running Your Client - C++

Move into the sampleClient/c/ directoryRun ‟

make”

Run

./client localhost” to create a game

Run

./client localhost 0” to join game 0Slide14

Running Your Client - Java

Move into the sampleClient/java/ directoryRun ‟

make”

Run

./run localhost” to create a game

Run

./run localhost 0” to join game 0Slide15

Running Your Client - Python

Move into the sampleClient/python/ directoryRun ‟

make” the first time

This builds the C library that communicates to the server

Run

./run localhost” to create a game

Run

./run localhost 0” to join game 0Slide16

Other Rules

If you try to end your turn with unused dice that you could have used, your turn will not end. Instead, the server will send you the updated board state, and your run function will be called again.

The doubling cube is not used. Your score is the number of checkers removed.

If you run out of time, you lose. Your opponent receives all 15 points. Your score is unchanged.Slide17

Questions?