ECE 491 Final Project Multiplayer Card Game Author: Tian Ma Presentation 5/4/2004.

Slides:



Advertisements
Similar presentations
What is a Computer Program? For a computer to be able to do anything (multiply, play a song, run a word processor), it must be given the instructions.
Advertisements

Transfer Content to a Website What is FTP? File Transfer Protocol FTP is a protocol – a set of rules Designed to allow files to be transferred across.
SOCiable A Game of Life Chances ©Jon Witt Version 1.0.
500 for 2 Enjoy your favourite card game with only 2 players 500 for 2
Windows Basics An Introduction to the Windows Operating System.
Implementing the Poker Game in Jess Vanmoerkerke Frederik Project APLAI.
Introduction to Defining Classes. Objectives: Design and implement a simple class from user requirements. Organize a program in terms of a view class.
Mock Objects. Unit-testing and TDD are challenging They require some effort to: – Write a test for a small functionality – Refactor production code and.
Introduction to Visual Basic.NET Uploaded By: M.Sheraz anjum.
It’s All in the Cards Adding and Subtracting Integers
Durak Tournament Outline
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
EEE436 / CS422 Final Presentation Group
Dealer Comm Hand Player makes Ante bet and optional Bonus bet. Five cards are dealt to each player from the shuffler. Five cards are dealt from the shuffler.
12 Pontoon1May Pontoon program CE : Fundamental Programming Techniques.
Computer Science 313 – Advanced Programming Topics.
MCDST : Supporting Users and Troubleshooting a Microsoft Windows XP Operating System Chapter 14: Troubleshooting Remote Connections.
Team 13: Cody Smoker Chris Rickerd Matthew Berryhill Galaxy Sleuth.
Spades Game Application with Video Conference Group 12 Anıl Yaman Emre Ergün Hüseyin Aktaş Pınar Tekir.
Mau Mau (mow- mow) A card game
A R R A Y ! for Multiplication!!
C HAPTER 4 W EB H OSTING. I. I NTRODUCTION To make your Web site visible to the world, it has to be hosted on a Web server. In this tutorial we will teach.
VOCABULARY  Deck or pack  Suit  Hearts  Clubs  Diamonds  Spades  Dealer  Shuffle  Pick up  Rank  Draw  Set  Joker  Jack 
Black Jack Dr. Bernard Chen University of Central Arkansas Spring 2012.
Daniel Korycinski CIS 487.  Developer: Valve Corporation  Game Type: First Person Shooter (FPS)  Rated for a mature audience  Price: $19.95.
Quoridor Classic Game Manager Kevin Dickerson April 2004.
Chapter 11-Multimedia Authoring Tools. Overview Introduction to multimedia authoring tools. Types of authoring tools. Cross-platform authoring notes.
M1G Introduction to Programming 2 4. Enhancing a class:Room.
UNIVERSITI TENAGA NASIONAL “Generates Professionals” CHAPTER 4 : Part 2 INTRODUCTION TO SOFTWARE DEVELOPMENT: PROGRAMMING & LANGUAGES.
Algorithms. What is an algorithm?  An algorithm is a clear, concise, and correct step- by-step sequence of actions.
With Windows XP, you can share files and documents with other users on your computer and with other users on a network. There is a new user interface.
Case Study: Telecommuting Mark Nowakowski, Tom Coyne, Jhonatan Sanchez.
AS Level ICT Selection and use of appropriate software: Interfaces.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Introduction to Firewalls TEC 236. What is a Firewall? A firewall is hardware, software, or a combination of both that is used to prevent unauthorized.
Scanner Run Jared Wilkin Chris Good. A Children’s Game.
Process Improvement with Solitaire Using the PC Solitaire game to learn basic (and advanced) techniques of Process Improvement (So easy, even a can do.
Math Games Compiled By: Joan Bartlett and Heather Bartlett.
What is the Purpose of This Class
Pitch Playing Agent Project for Into to AI Jody Ammeter.
CHAPTER TWO INTRODUCTION TO VISUAL BASIC © Prepared By: Razif Razali 1.
Object-Oriented Design Simple Program Design Third Edition A Step-by-Step Approach 11.
 Programming Language  Object Oriented Programming  JAVA – An Introduction  JAVA Milestones  JAVA Features.
Section 1.1 What is Multimedia?
Texas Forty-Two By: Nate Normandin CS 470. What is Texas Forty-Two? A Domino Game A way for people to learn the game A way for people to play others A.
Experimental evidence of the emergence of aesthetic rules in pure coordination games Federica Alberti (Uea) Creed/Cedex/Uea Meeting Experimental Economics.
Module 4 Part 2 Introduction To Software Development : Programming & Languages Introduction To Software Development : Programming & Languages.
TownMUD An Interface for a Text-Based Multiple User Dimension.
BSc Honours Project Introduction CSY4010 Amir Minai Module Leader.
Public Politics Professor Jonathan Day The Presidency (POLS 318)
M1G Introduction to Programming 2 5. Completing the program.
Copyright © 2002, Department of Systems and Computer Engineering, Carleton University 1 Exercise 6 This assignment is probably best started by running.
Where we are now At this point you’ve got your game concept/idea and you need to turn this into a working document (specification) You will know the environment.
M1G Introduction to Programming 2 3. Creating Classes: Room and Item.
Author Ivan Dominic Baguio. ABOUT THE GAME Game Objective  The goal of each player in the game is to discard all cards in his hand before every other.
OpEnSp a Ce LCA Proposal Calvin Chin David Couvrette Jung Son Mikiko Jama CSE403 Summer 06.
Game Procedures Who does what, where, when, and how?
Week 8 : User-Defined Objects (Simple Blackjack Game)
The Standard Genetic Algorithm Start with a “population” of “individuals” Rank these individuals according to their “fitness” Select pairs of individuals.
© 2014 International Technology and Engineering Educators Association, STEM  Center for Teaching and Learning™ Game Art and Design Unit 3 Lesson 3 Procedure.
M1G Introduction to Programming 2 2. Creating Classes: Game and Player.
Multi player client sever Snake Game Technology : JAVA (swing for user interface and Socket for passing coordinates of snakes, food item and score)
FIREWALLS By k.shivakumar 08k81f0025. CONTENTS Introduction. What is firewall? Hardware vs. software firewalls. Working of a software firewalls. Firewall.
Getting started: Number
CHAPTER 8 Multimedia Authoring Tools
Windows 7                      .
Move in Two’s From the card Pass between two’s. T T
Chapter Two Visual Basic.Net.
Truth tables: Ways to organize results of Boolean expressions.
Task 2 Implementation help
Presentation transcript:

ECE 491 Final Project Multiplayer Card Game Author: Tian Ma Presentation 5/4/2004

Project Goals The goals for this project is to demonstrate, experience, and explore all aspects of Java Internet Programming This project will concentrate on three main areas of Java Java communications (Sockets) Graphical User Interface (GUI) Object Oriented Implementation Other Advance Features

Problem Statement In todays world, many people would like to play games with 2 or more persons rather than playing with boring computers. However, to have people gather in one place to start a game is not always a suitable solution. Finding partners might not be easy.

Solution This project, I implemented a multiplayer card game to allow players to play a card game across Internet so people will not need to worry about finding partners and gather people in one location to play the game. With an Internet connection, they can play the game with people all over the world.

Tools Pure Java Language J2SE 1.4 compiler Local host server In this project I installed the Internet Information Service (IIS) that comes in with the original Windows XP Professional CD and use it as a local host server

Main Features of this Application A public chat room: allows people to communicate with people all over the world. 10 private game rooms: maximum of 10 groups of people can be play simultaneous in the server. Game Play Flexibility: The game can be play anyway between 2 to 4 persons (4 is the best), in case you dont have four. Chatting within game room: players can communicate with their own group while in the game room playing the game. Communications in the private rooms are restricted and not open to the public. User friendly GUI with graphics: graphics and images are added for better visualization and buttons and text fields are created for ease of use.

Game Introduction The card game that I implemented is pronounce as Da Lao Er in Chinese, or translated in English as Big 2, or pronounce as Daifugo in Japanese, or translated in English as Big rich. This is a very popular card game in Asia. Why Da Lao Er ? Well, this the only card game that I enjoy playing and play well. Whatever name you want to called it, all we care is how to play? There are so many rules of playing it. So I will have my own rules too. These are the rules that I normally playing with my friends

Game Objective The objective of the game is to be the first one to get rid of all of your cards by playing them. Cards can be played single or in certain playable combinations. The first person who get rid of all the cards wins, while others score penalty points. This Game can be play by 2 – 4 players (4 players is the best).

Playing the game The player who holds a diamond 3 (or the smallest card if less than 4 player) will begins and must play this card, either by itself or as part of a playable combination. The person to this player's right plays next, and follows the counter clockwise direction. At your turn you must either pass (play no cards) or beat the previous play by playing a higher combination of the same number of cards. Single card must be beat by single card, pairs must be beat by pairs, triples must be beat by triples, and 5 cards must beat 5 cards. This continues for several rounds if necessary, until all but one of the players pass in succession, or no one being able or willing to beat the last play. The person who played highest (all the others having passed) wins the turn and begins again by playing any card or legal combination of cards. You are never under any obligation to beat a card or set of cards just because you are able to - you may always choose to pass and keep your high cards for a better opportunity. Passing does not prevent you from playing when your turn comes round again.

Card Ranking Card Ranking: The ranking of the cards from smallest to largest are the following: 3 < 4 < 5 < 6 < 7 < 8 < 9 < 10 < Jack < Queen < King < Ace < 2 Suits Ranking for the card have the same number the rank will define by the Suit diamonds<clubs<hearts<spades Notations: d – diamond c – club h – hearts s - spades

Playable Combinations Single card The ranking of the single cards from smallest to largest are the following: 3 < 4 < 5 < 6 < 7 < 8 < 9 < 10 < Jack < Queen < King < Ace < 2 for the card have the same number, the rank will define by a Suit diamonds<clubs<hearts<spades For example, a 3d < heart 3h 2 cards (Pairs) A pair of cards who have the same number (faces). For example, a pair of 2s, pair of Jacks. The rank is determine by the rank of the cards. If the two pairs have the same number, their rank will be determine by their suits. For example, (jack d, jack h) < (jack c and jack s) 3 cards (Triples) Three cards of the same number. 3 Aces, 3 tens, etc.

Playable Combinations cont. 5 cards Ranking: Straights<Flush<Full House<Four of a kind<Straight Flush A Straight consists of five cards of consecutive rank with mixed suits. A straight with higher ranks beats a lower one, irrespective of the suits of the cards. When the ranks are the same, the suit of the largest card determines which is higher. For example, 3d 4c 5d 6c 7d < 3c 4d 5c 6d 7s, since 7d<7s A Flush consists of any five cards of the same suit. A flush in a higher suit beats a flush in a lower suit, irrespective of the ranks of the cards. Between two flushes in the same suit, the one with the largest card determines the rank of a flush. For example, 3d 5d 6d 7d 8d < 3d 6d 8d 9d 10d, since 8d<10d

Playable Combinations cont. A Full House consists of three cards of the same number and a pairs; between two full houses, the one whose triple is of higher rank is better. For example, 5d 5c 5s 6d 6d < 8d 8c 8h 3c 3s Four of a kind (or quads) are made up of all four cards of the same number, plus any fifth card. The fifth card must be included - four equal cards by themselves are not a playable combination. Between two fours of a kind, the rank of the four cards determines which is higher. A Straight Flush consists of five consecutive cards of the same suit, twos ranking below threes and aces ranking high or low, as in straights. The rank of the highest card determines which of two straight flushes is higher; between two equal ranked straight flushes, the one in the higher suit is better For example, 3d 4d 5d 6d 7d<3h 4h 5h 6h 7h

Scores Scores: The players other than the winner score penalty points for the cards remaining in their hands. If you have: cards, one penalty point for each cards 8 – 9 cards, 2 points per card, total of 16, 18 points respectably 10 – 12 cards, 3 points per card cards, total of 30 33, 36 respectably 13 cards 4 points per card, total of 52 points, because you never played any cards at all. The winner, having no cards, gets no penalty points for the hand.

Program Demo

Display Design Documents Display and explain the GUI Flow Chart

Display Architecture Documents The overall architecture is pretty much self-explanatory. Double arrow indicate bidirectional dependencies (dependent in both way). One arrow denotes single dependency. Instead of each of the classes I will explain some key classes since you can find all the explanations in the documentations. ). The game class basically implements the game. One can see there are many class associated with game. The TestServer class runs the server. The TestApplet.html is use for people to accessing the server. The client engine handle all the actions execute by the client (e.g. chat, enter game room, play cards, etc…). The server engine handle all the actions execute by the server. The client server connection connects the client engine and server engine through server interface and client interface respectfully. From the diagram above, first the clients access the TestApplet it will lead him to enter the entrance GUI, the action listener will sends actions to the Client Engine and the client engine will sends action to the client interface and so on following the diagram until the server gets it. After the server get the actions, it interpret what action to be taken (command interpreter), then perform the necessary tasks in the engine. If all goes well, players are connected and proceed to MainRoom GUI. The MainRoom GUI basically follows the same principles as it implements listeners and sends actions to the client engine, so as other GUI (e.g. game gui commands). So basically, the flow of the program is behave having a GUI listens the command sends to Client Engine and Client Engine performs all the actions.

Hours Spend Weekly hours spend on this project Week of 3/7 - 3/138 Week of 3/14 - 3/2012 Week of 3/21 - 3/2725 Week of 3/28 - 4/315 Week of 4/11 - 4/1716 Week of 4/18 - 4/2428 Week of 4/25 - 4/318 Total hours112

Conclusion This multi-player card game project have demonstrated important aspects of Java Internet and especially how how people communicate through the internet using Java. This project is highly related to what we learned in our class. It capture almost every topics we have covered such as: GUI programming, Networking, Applets, Inheritance, and more. The game Da Lao Er is a card game that I really enjoy playing. Since my implementation is done in an Object Oriented way, it can be extended to play other card games as well with no hardship. Although this project took me 112 hours to complete, I truly enjoyed the entire process, except for debugging! This project enhanced my skills in Java and it built-up my confidence on what I can do with Java. Furthermore, it has demonstrated my thorough understanding of Java Internet programming and my ability to develop Java Internet application.

Questions & Answers

Thank you all for your time. End of Presentation