Java Forums

Main Menu
Home
Today's Posts
FAQ
Search
Contact Us

Java Network
Java Tips
Java Tips Blog

Sponsored Links





Welcome to the Java Forums.

You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community, you will:

  • have access to post topics
  • communicate privately with other members (PM)
  • not see advertisements between posts
  • have the possibility to earn one of our surprises if you are an active member
  • access many other special features that will be introduced later.

Registration is fast, simple and absolutely free so please, join our community today!

If you have any problems with the registration process or your account login, please contact us.

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 05-16-2008, 03:20 PM
Member
 
Join Date: May 2008
Posts: 9
CrazyShells Slam is on a distinguished road
Tic Tac Toe Networked
OK so I have it working. I know its buggy, and theres a few holes to fill u can legitly play. Now I just want to make it so I can have a Client/Server type game. So heres the TicTacToe Class

Code:
import java.util.Scanner; import java.util.Random; public class TicTacToe { public static void main(String[] args) { Scanner keyboard=new Scanner(System.in); String[][] board= {{" "," "," "},{" "," "," "},{" "," "," "}}; int x=0; int y=0; int option=0; String player1; String player2; System.out.println("Press 1 for 2 players, or press 7 to exit"); option=keyboard.nextInt(); if (option==1) { System.out.println("Player 1 enter your name"); player1=keyboard.next(); System.out.println("Player 2 enter your name"); player2=keyboard.next(); boolean w=winner(board); while (w==true||w==false) { System.out.println(player1+"Enter your choice"); x=keyboard.nextInt(); y=keyboard.nextInt(); if (board[x][y]=="X") { System.out.println("That space is already taken"); continue; } if (board[x][y]=="Y"){ System.out.println("That space is already taken"); continue; } board[x][y]="X"; displayBoard(board); do { System.out.println(player2+" enter your choice"); x=keyboard.nextInt(); y=keyboard.nextInt(); if (board[x][y]=="X") { System.out.println("That space is already taken"); continue; } if (board[x][y]=="O") { System.out.println("That space is already taken"); continue; } board[x][y]="O"; displayBoard(board); break; } while (true); } } } public static void displayBoard (String z[][]) { System.out.println(" "+z[0][0]+" | "+z[0][1]+" | "+z[0][2]); System.out.println(" ---------"); System.out.println(" "+z[1][0]+" | "+z[1][1]+" | "+z[1][2]); System.out.println(" ---------"); System.out.println(" "+z[2][0]+" | "+z[2][1]+" | "+z[2][2]); } public static boolean winner (String z[][]) { if ( ( z[0][0]=="X" && z[0][1]=="X" && z[0][2]=="X" ) || ( z[1][0]=="X" && z[1][1]=="X" && z[1][2]=="X" ) || ( z[2][0]=="X" && z[2][1]=="X" && z[2][2]=="X" ) || ( z[0][0]=="X" && z[1][0]=="X" && z[2][0]=="X" ) || ( z[0][1]=="X" && z[1][1]=="X" && z[2][1]=="X" ) || ( z[0][0]=="X" && z[1][1]=="X" && z[2][2]=="X" ) || ( z[0][2]=="X" && z[1][1]=="X" && z[2][0]=="X" ) ) { return true; } else {return false;} } }
and I need to make it work with these other classes...

Code:
import java.net.*; import java.io.*; public class TicTacToeProtocol { private static final int WAITING = 0; private static final int SENTHELLO = 1; private int state = WAITING; public String processInput(String theInput) { String theOutput = null; if (state == WAITING) { theOutput = "Hello from Server"; state = SENTHELLO; } else { // state is SENTHELLO try { // Display message from client. System.out.println("Client: " + theInput); BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); // Display prompt for server. System.out.print(">> "); // Read a line of input from the server. theOutput = stdIn.readLine(); } catch (IOException e) { System.err.println("IMProtocol: IO error."); System.exit(1); } // end catch } // end else return theOutput; } // end processInput } // end IMProtocol
Code:
import java.net.*; import java.io.*; public class TicTacToeServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket = null; boolean listening = true; try { serverSocket = new ServerSocket(4444); } catch (IOException e) { System.err.println("Could not listen on port: 4444."); System.exit(-1); } while (listening) new TicTacToeMultiServerThread(serverSocket.accept()).start(); serverSocket.close(); } }
Code:
import java.io.*; import java.net.*; public class TicTacToeClient { public static void main(String[] args) throws IOException { Socket TicTacToeSocket = null; PrintWriter out = null; //BufferedReader in = null; Message inMessage = null; // ObjectInputStream in = null; // try { TicTacToeSocket = new Socket("192.168.1.104", 4444); out = new PrintWriter(TicTacToeSocket.getOutputStream(), true); //in = new BufferedReader(new InputStreamReader(kkSocket.getInputStream())); in = new ObjectInputStream(TicTacToeSocket.getInputStream()); // inMessage = (Message) in.readObject(); // } catch (UnknownHostException e) { System.err.println("Don't know about host: "); System.exit(1); } catch (IOException e) { System.err.println("Couldn't get I/O for the connection to: 192.168.0.11."); System.exit(1); } catch (ClassNotFoundException cnfe) { // System.err.println("Problem reading object: class not found"); // System.exit(1); // } // BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); String fromServer; String fromUser; //while ((fromServer = in.readLine()) != null) { while ((fromServer = inMessage.getResponse()) != null) { System.out.println("Server: " + fromServer); if (fromServer.equals("Bye")) break; // Display prompt for client. System.out.print("> "); // Read a line of input from the client. fromUser = stdIn.readLine(); // Echo client's input. if (fromUser != null) { System.out.println("Client: " + fromUser); out.println(fromUser); } // Get the next message from the server. try { // inMessage = (Message) in.readObject(); // } // catch (ClassNotFoundException cnfe) { // System.err.println("IMClient: Problem reading object: class not found"); // System.exit(1); // } // } out.close(); in.close(); stdIn.close(); TicTacToeSocket.close(); } }
Code:
public class Message implements java.io.Serializable { // instance variables - replace the example below with your own private String response; /** * Constructor for objects of class Message */ public Message(String r) { // initialize instance variables this.response = r; } /** * getResponse: getter method for response, an instance variable * * @param none * @return a String, the response */ public String getResponse() { return response; } }
Code:
import java.net.*; import java.io.*; public class TicTacToeMultiServerThread extends Thread { private Socket socket = null; public TicTacToeMultiServerThread(Socket socket) { super("IMMultiServerThread"); this.socket = socket; } public void run() { //System.out.println("Inside run."); try { //PrintWriter out = new PrintWriter(socket.getOutputStream(), true); ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream()); // BufferedReader in = new BufferedReader( new InputStreamReader( socket.getInputStream())); String inputLine, outputLine; TicTacToeProtocol kkp = new TicTacToeProtocol(); outputLine = kkp.processInput(null); //out.println(outputLine); Message message = new Message(outputLine); // out.writeObject(message); // while ((inputLine = in.readLine()) != null) { outputLine = kkp.processInput(inputLine); //out.println(outputLine); message = new Message(outputLine); // out.writeObject(message); // if (outputLine.equals("Bye")) break; } System.out.println("Close connection"); out.close(); in.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } }
I dont believe I have to do that much with the Server class, but all the other classes I would appreciate if someone were able to tell me where to start, and Ill prolly be able to pick up the rest
Bookmark Post in Technorati
Reply With Quote
Sponsored Links
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Networked Tic Tac Toe Zosden Networking 1 04-26-2008 09:18 AM


All times are GMT +3. The time now is 09:42 AM.


VBulletin, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright ©2006 - 2007, www.java-forums.org