Online Chess Project 3 Due date: April 17 th. Introduction Third in series of three projects This project focuses on adding online support –2 players.

Slides:



Advertisements
Similar presentations
Adversarial Search Chapter 6 Sections 1 – 4. Outline Optimal decisions α-β pruning Imperfect, real-time decisions.
Advertisements

Adversarial Search Chapter 6 Section 1 – 4. Types of Games.
Adversarial Search Chapter 5.
Chess Problem Solver Solves a given chess position for checkmate Problem input in text format.
An Introduction to Artificial Intelligence Lecture VI: Adversarial Search (Games) Ramin Halavati In which we examine problems.
1 Adversarial Search Chapter 6 Section 1 – 4 The Master vs Machine: A Video.
Algorithms & Computer Chess A presentation by Zachary Fiskin Christopher Cruzen.
Network synchronization of Online Games Li, Zetan.
Minimax and Alpha-Beta Reduction Borrows from Spring 2006 CS 440 Lecture Slides.
Real-Time Authentication Using Digital Signature Schema Marissa Hollingsworth BOISECRYPT ‘09.
1 L54 Networking (3). 2 OBJECTIVES In this chapter you will learn:  To understand Java networking with URLs, sockets and datagrams.  To implement Java.
Speak A Simple VoIP Application CS529 Multimedia Networking Due date: October 21 st by 11:59pm Project 2.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 580 Artificial Intelligence Ch.6: Adversarial Search Fall 2008 Marco Valtorta.
CSCI 4550/8556 Computer Networks Comer, Chapter 3: Network Programming and Applications.
Shallow Blue Project 2 Due date: April 5 th. Introduction Second in series of three projects This project focuses on getting AI opponent Subsequent project.
Master’s course Bioinformatics Data Analysis and Tools Lecture 6: Internet Basics Centre for Integrative Bioinformatics.
An Introduction to Internetworking. Why distributed systems - Share resources (devices & CPU) - Communicate people (by transmitting data)
Chess Board Project 1 Due dates: March 23. Introduction First of series of three projects This project focuses on getting a representative chess board.
Adversarial Search: Game Playing Reading: Chess paper.
UPLOADING YOUR SERVER CODE TO YOUR VIRTUAL MACHINE.
An Introduction to Internetworking. Algorithm for client-server communication with UDP (connectionless) A SERVER A CLIENT Create a server-socket (listener)and.
Internet and Intranet Protocols and Applications Lecture 0: Administrivia January 23, 2002 Joseph Conron Computer Science Department New York University.
A Technical Game Project 4 Due dates: Game Idea Friday, March 16 th Game Plan Friday, March 23 rd Web Page Sunday, April 9 th First Playable Wednesday,
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Application Layer Functionality and Protocols Network Fundamentals – Chapter.
Speak A Simple VoIP Application Project 2 Due date: March 3 rd by 11:59pm.
Web server and web browser It’s a take and give policy in between client and server through HTTP(Hyper Text Transport Protocol) Server takes a request.
Quoridor Classic Game Manager Kevin Dickerson April 2004.
INTRODUCTION TO WEB DATABASE PROGRAMMING
Socket Lab Info. Computer Network. Requirement Use TCP socket to implement a pair of programs, containing a server and a client. The server program shall.
Postacademic Interuniversity Course in Information Technology – Module C1p1 Contents Data Communications Applications –File & print serving –Mail –Domain.
CS3516 A15 Help Session 1 CS3516 — TCP/IP Socket Programming Presented by Oleksandr Narykov
HOW WEB SERVER WORKS? By- PUSHPENDU MONDAL RAJAT CHAUHAN RAHUL YADAV RANJIT MEENA RAHUL TYAGI.
Jozef Goetz, Application Layer PART VI Jozef Goetz, Position of application layer The application layer enables the user, whether human.
Design Document Presentation. Review Quoridor – a board game played on a grid where players must advance tokens across a board to win. Our basic objective:
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
2: Application Layer 1 Chapter 2: Application layer r 2.1 Principles of network applications r 2.2 Web and HTTP r 2.3 FTP r 2.4 Electronic Mail  SMTP,
Introduction  Client/Server technology is seen by many as the solution to the difficulty of linking together the various departments of corporation.
Establishing communication with Envirobat using TCP/IP Presented by Apourva Parthasarathy Date : 18/06/13.
Adversarial Search Chapter 6 Section 1 – 4. Outline Optimal decisions α-β pruning Imperfect, real-time decisions.
Project 1. Goals  Write a simple TCP/IP client that supports a specific protocol  The server is running right now on login.ccs.neu.edu:27993  If your.
Distributed Computing Systems Project 3 – Nutella: A P2P Streaming Movie System Due: Tuesday, April 15 th.
 Remote Method Invocation  A true distributed computing application interface for Java, written to provide easy access to objects existing on remote.
Cilk Pousse James Process CS534. Overview Introduction to Pousse Searching Evaluation Function Move Ordering Conclusion.
ECEN “Internet Protocols and Modeling”, Spring 2012 Course Materials: Papers, Reference Texts: Bertsekas/Gallager, Stuber, Stallings, etc Class.
Carla P. Gomes CS4700 CS 4701: Practicum in Artificial Intelligence Carla P. Gomes
Adversarial Search Chapter Games vs. search problems "Unpredictable" opponent  specifying a move for every possible opponent reply Time limits.
Wireless Pong on the Nokia 770 Jason Waterman EE194-WIR April 27th, 2006.
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 7 Omar Meqdadi Department of Computer Science and Software Engineering University of.
Netprog: Client/Server Issues1 Issues in Client/Server Programming Refs: Chapter 27.
Explorations in Artificial Intelligence Prof. Carla P. Gomes Module 5 Adversarial Search (Thanks Meinolf Sellman!)
COMP2322 Lab 4 Socket Programming Toby Lam March 2, 2016.
Sockets A popular API for client-server interaction.
1 K. Salah Application Layer Module K. Salah Network layer duties.
Adversarial Search Chapter 5 Sections 1 – 4. AI & Expert Systems© Dr. Khalid Kaabneh, AAU Outline Optimal decisions α-β pruning Imperfect, real-time decisions.
ADVERSARIAL SEARCH Chapter 6 Section 1 – 4. OUTLINE Optimal decisions α-β pruning Imperfect, real-time decisions.
Understanding AI of 2 Player Games. Motivation Not much experience in AI (first AI project) and no specific interests/passion that I wanted to explore.
1 Chapter 1 INTRODUCTION TO WEB. 2 Objectives In this chapter, you will: Become familiar with the architecture of the World Wide Web Learn about communication.
COMP2322 Lab 4 Socket Programming
Tiny http client and server
Project 1 Simple Socket Client.
Asset List & Content Creation
Simple Socket Client Project 1.
Adversarial Search Chapter 5.
Adversarial Search.
Programming Assignment I
Simple Socket Client Project 1.
Issues in Client/Server Programming
Adversarial Search Chapter 6 Section 1 – 4.
Presentation transcript:

Online Chess Project 3 Due date: April 17 th

Introduction Third in series of three projects This project focuses on adding online support –2 players on separate computers play each other –1 player plays AI where AI running on separate computer You will work individually for this project! –No groups –Encouraged to talk about solutions with class mates –Can help each other debug code –Cutting and pasting or mailing code  too much

Details (1 of 2) Construct a client-server architecture –Server runs at “well-known” address and port –Player runs client on local machine and connects to server for online play –All communication is to and from client and server (ie- there is no client-client communication) Server is persistent –Waits for connections from exactly two players –Then starts players off in a game –When game over, returns to waiting for new connections to start next game Server keeps master game state –Controls where all the pieces are and whose turn it is Chess clients collect moves from the players (this is your proj1) –Sends player moves to server

Details (2 of 2) Advanced: –“Think" time: does not have to spend same amount of time per move, but make sure doesn’t think too long –Sophisticated Evaluation function: Basic count of material (ie- pieces) good, but a lot of additional enhancements that might be added –Opening vs. Mid-Game vs. End-Game: Evaluation of opening moves or end-game state may proceed differently than mid-game state. –Personality: Different versions of Blue (selected randomly, is fine) may be more aggressive or defensive or... Can change with Evaluation You will use: –MinMax search algorithm with AlphaBeta pruning –A board evaluation (lecture notes coming up have details) Implement in your choice of language (C, C++, Java,...) –Use a language you are familiar with!

Notes (1 of 2) Think about communication between server and client (protocol). Basic idea below: Startup –Connect (a TCP connection is established) –Client sends player name (a sequence of characters) –Server sends number representing player color (0 == white, 1 == black) Play –Server sends number representing turn (0 == white, 1 == black) –If Player's turn Player sends MOVE (see format below) Server sends number representing response (0 == ok, 1 == illegal move) –else Server sends opponent MOVE End –Server sends number representing final winner (0 == white, 1 == black) –Close (TCP connection is closed)

Notes (2 of 2) MOVE message in format of FROM:TO, where FROM and TO represent squares on the chess board. The rows of the chess board are numbered 1-8 and the columns a- h, like so:

Links See project Web page Java implementation, basic TCP sockets C++ implementation, Linux and Windows sockets –TCP and UDP and other stuff, but probably only need TCP Chess links from project 1

Submission Will use command line (Unix) turnin Submit all source files necessary to compile and run programs –Any Makefiles, etc. –All art (as appropriate) README –Saying how to build, platform, etc. –Any command line parameters for either –Notes on how a game against the AI is launched

Grading Basic Client-Server65% –Chess server manages basic game. Two human clients can connect and play Legal Move management10% –Server manages state by verifying that client moves are legal Persistent Server5% –Server persists after each chess game has terminated Online AI20% –Online AI implemented, either by allowing client to play as computer-controlled opponent or having AI to run at server