Submitted by – ABHAI KUMAR ( 2001101) Project Guide –Prof. H. Bindu
This is to certify that ABHAI KUMAR (2001101) of Indian Institute of Information Technology, Allahabad had taken and successfully completed his project, “ Online Gaming” under Prof. Hema Bindu. The project lends itself to 6 credit hours and has been carried out in full compliance with the requirements, specifications and constraints of the prescribed curriculum.
Date Prof. Hema Bindu Professor IIIT-Allaabad
We express our sincere gratitude and thanks to all those who have helped us in the completion of the project. Of all the person who have helped us, we would first of all like to thanks Prof. H. Bindu under whose able and sincere guidance we have completed our project and who helped us at each and every stage of our project. We would also like to thanks all our colleagues who provided us with valuable. Suggestions, and helped us, directly and indirectly, in every possible way in the successful completion of the project.
ABHAI KUMAR (2001101)
Game Details Different classes used Tool Uses Feature modification Conclusion References :
Abstract : This project is a online gaming where multiple players can play a game from different interconnected computers. One Server run on a host computer and it accepts the request send by any client . Client can play game only if there is any other player waiting to play the game. Implementation on this whole project is done through Java which make project platform independent. Game which is implemented using java is a scrabblet where each player have make words from a given set of words.
User’s guide: Game Details:
This project works on the server- client application where one server is running on a host computer . All clients (players) have to send a request to the server which maintains a list of different clients ( players) which are waiting for other player to the game.. On the start player have to enter his/her name which will be displayed in the list of other players .Player have to select one player to start the game. Player are presented
with a 15*15 grid of squares and given a set of seven square tiles with letters of the alphabet engraved on them .These tiles are selected at random from a bag of 100 tiles . The tiles can be clicked on with the mouse and dragged to a destination square
on the grid .If the spot is already occupied, the tile is returned to its original position. Tiles may be adjusted on the board during a turn ,but not when the turn is over. The first player start by placing several tiles in a line on the board to form a word in the English language . The first word must cover the center square . Subsequent words must touch at least one tile already played on the board . The player clicks on the Done button to end the turn.
Developer’s Guide :
Different classes used :
1) Scrabblet : The main class , also the first class to get called . it’s a handles all different classes used to implement the game.
2) Bag : The Bag class is very clean compared with Board .Its is a simple abstraction for the bag of letters . When you create a Bag ,we pass in a random seed , which allows us to create two bags that are random but the same by passing in the same random seed .The random number generator is stored in rand.
3) Letter : The Letter class is fairly clean in that it doesn’t know anything about the game or the board . It merely encapsulates the position and visual rendering of a single letter .It uses several static variable to hold information about fonts and sizes.
4) Server Connection: This is last class in the client side of this applet is Server Connection , which encapsulates the communication with the server and our opponent .There are server variables declared at the beginning of the class . The socket port number to attach to on the server is 6564.
5) Server : The Server is the main class for the server side of Scrabblet .Once this is installed on the web server ,we have to run it. The Server class starts out by declaring a few variable .The port has to be the same number ,6564 ,as we saw in server connection .The idcon Hash table is used to store all of the connection to all of the client.
6) Client Connection : This is the mirror image of server connection in applet .one of these is created for each client .Its job is to manage all of the I/O to and from a client . The private instance variables hold all of the states about this client . A reference to the server instance that created this client is held in server . The name of the player on this client is stored in name ,while the player’s automatically assigned ID number is held in id.
7) Intro canvas : The Intro canvas subclass of canvas is very simple .It just overrides paint() to draw the name of the applet and a brief notice about developer .It create some custom colors and fonts . The display strings are held in static variables simply for clarity.
Tool Uses :
Online Gaming project is implemented by using Java .We have use Java because in a network, two very board categories of object are transmitted between the server and your personal computer passive information and dynamic ,active programs.
Project uses different classes of Java which are there in Java main classes used are as following .
Applet Button Text field Grid layout Threads Server socket
Future Modifications :
In future we can add one more features in our project , that is we can implement dictionary to our game . this enables game to pick only correct words which are formed by the players. We not implemented dictionary at present because applet’s security does allow any dictionary to be compatible with it. In order to implement dictionary in future we have to given set of words to the sever and each time player press done ,server search for that word in the set of words , if match found server will update the score .
Through this project, I came to know a lot about the Java language and the Network architecture and how code a client –server application. For this game there is no need of an extra software, it should only be a Java enabled web browser. This game has been successfully verified and tested although there is a lot of scope for improvement.
1) Core java I & II: Helped us with the technicalities involved in the Java Language as well as the concepts involved. 2) Networking in Java:- Developers handbook for networking in java. 3) sun.java.com