rendered paste bodyimport java.lang.*;
import java.io.*;
import java.net.*;
public class TTT
{
public static char[] game = new char[9];
public static boolean Running = true;
public static char move_letter = 'X';
public static int move_position = 0;
// network variables.
public static boolean Networked = false;
public static boolean Network_Host = false;
public static BufferedReader Network_In;
public static PrintWriter Network_Out;
public static Socket Network_Player;
public static boolean Network_MyMove = false;
public static String Network_IP = "192.168.10.233";
public static void main(String[] args)
{
SetupGame();
PrintGame();
while ( Running )
{
GetMove();
CheckForWin();
}
}
public static void GetMove()
{
if ( Networked )
{
if ( Network_MyMove == true )
{
System.out.println("Where you like to go? ( Note: you are " + GetMyself() + " )");
System.out.print("> ");
int a = TextIO.getInt();
if ( a == 0 ) { EndGame(); }
move_position = a-1;
// Determine Letter.
if ( Network_Host ) {
move_letter = 'X';
} else {
move_letter = 'O';
}
if ( CheckMove() )
{
Network_Out.println(move_position);
Network_MyMove = false;
}
} else {
System.out.println("Waiting for other player..");
String data = "10";
try {
while ( !Network_In.ready() ) {}
data = Network_In.readLine();
}
catch(Exception e) {
return;
}
// Determine Letter.
if ( Network_Host ) {
move_letter = 'O';
} else {
move_letter = 'X';
}
move_position = Integer.parseInt(data);
if ( CheckMove() )
{
Network_MyMove = true;
}
}
} else {
System.out.println("Where you like to go?");
System.out.print("> ");
int a = TextIO.getInt();
if ( a == 0 ) { EndGame(); }
move_position = a-1;
if ( move_letter == 'X' ) { move_letter = 'O'; }
else { move_letter = 'X'; }
}
}
public static boolean StartNetworking(boolean Server)
{
Networked = true;
try {
if ( Server )
{
Network_Host = true;
Network_MyMove = true;
ServerSocket srvr = new ServerSocket(1234);
System.out.println("Waiting for other player..");
Network_Player = srvr.accept();
} else {
//192.168.10.233
System.out.println("Connecting to " + Network_IP);
Network_Player = new Socket(Network_IP, 1234);
}
Network_In = new BufferedReader(new InputStreamReader(Network_Player.getInputStream()));
Network_Out = new PrintWriter(Network_Player.getOutputStream(), true);
System.out.println("Starting game.");
return true;
}
catch(Exception e) {
System.out.println("Something went wrong.");
return false;
}
}
public static boolean CheckMove()
{
if (( move_position < 0 ) || ( move_position > 8 )) { return false; }
if ( game[move_position] != ' ' )
{
System.out.println("Slot in use.");
return false;
} else {
game[move_position] = move_letter;
PrintGame();
return true;
}
}
public static void SetupGame()
{
for (int a = 0; a < 9; a++)
{
game[a] = ' ';
}
System.out.println("Tic Tac Toe Setup:");
System.out.println(" 1) Local Game");
System.out.println(" 2) Network Game");
System.out.print("> ");
int a = TextIO.getInt();
if ( a == 2 )
{
System.out.println();
System.out.println("Network Game Setup:");
System.out.println(" 1) Host");
System.out.println(" 2) Join");
System.out.print("> ");
int b = TextIO.getInt();
if ( b == 1 )
{
StartNetworking(true);
} else {
System.out.println("Enter the IP of the person you're connecting to.");
String IP = TextIO.getlnString();
StartNetworking(false);
}
}
}
public static void PrintGame()
{
System.out.println(" | | ");
System.out.println(" " + game[6] + " | " + game[7] + " | " + game[8] + " ");
System.out.println("_____|_____|_____");
System.out.println(" | | ");
System.out.println(" " + game[3] + " | " + game[4] + " | " + game[5] + " ");
System.out.println("_____|_____|_____");
System.out.println(" | | ");
System.out.println(" " + game[0] + " | " + game[1] + " | " + game[2] + " ");
System.out.println(" | | ");
}
public static void CheckForWin()
{
char winner = ' ';
// Check for X.
if (( game[0] == 'X' ) && ( game[1] == 'X' ) && ( game[2] == 'X' )) { winner = 'X'; }
if (( game[3] == 'X' ) && ( game[4] == 'X' ) && ( game[5] == 'X' )) { winner = 'X'; }
if (( game[6] == 'X' ) && ( game[7] == 'X' ) && ( game[8] == 'X' )) { winner = 'X'; }
if (( game[6] == 'X' ) && ( game[3] == 'X' ) && ( game[0] == 'X' )) { winner = 'X'; }
if (( game[7] == 'X' ) && ( game[4] == 'X' ) && ( game[1] == 'X' )) { winner = 'X'; }
if (( game[8] == 'X' ) && ( game[5] == 'X' ) && ( game[2] == 'X' )) { winner = 'X'; }
if (( game[6] == 'X' ) && ( game[4] == 'X' ) && ( game[2] == 'X' )) { winner = 'X'; }
if (( game[8] == 'X' ) && ( game[4] == 'X' ) && ( game[0] == 'X' )) { winner = 'X'; }
// Check for O.
if (( game[0] == 'O' ) && ( game[1] == 'O' ) && ( game[2] == 'O' )) { winner = 'O'; }
if (( game[3] == 'O' ) && ( game[4] == 'O' ) && ( game[5] == 'O' )) { winner = 'O'; }
if (( game[6] == 'O' ) && ( game[7] == 'O' ) && ( game[8] == 'O' )) { winner = 'O'; }
if (( game[6] == 'O' ) && ( game[3] == 'O' ) && ( game[0] == 'O' )) { winner = 'O'; }
if (( game[7] == 'O' ) && ( game[4] == 'O' ) && ( game[1] == 'O' )) { winner = 'O'; }
if (( game[8] == 'O' ) && ( game[5] == 'O' ) && ( game[2] == 'O' )) { winner = 'O'; }
if (( game[6] == 'O' ) && ( game[4] == 'O' ) && ( game[2] == 'O' )) { winner = 'O'; }
if (( game[8] == 'O' ) && ( game[4] == 'O' ) && ( game[0] == 'O' )) { winner = 'O'; }
// Check the winner.
if ( winner == 'X' )
{
System.out.println("X WINS!");
EndGame();
}
if ( winner == 'O' )
{
System.out.println("O WINS!");
EndGame();
}
if ( CheckForTie() == true )
{
System.out.println("Tie game.");
EndGame();
}
}
public static boolean CheckForTie()
{
for (int a = 0; a < 9; a++ )
{
if ( game[a] == ' ' ) { return false; }
}
return true;
}
public static void EndGame()
{
Running = false;
System.out.println("Game over.");
return;
}
public static char GetMyself()
{
if ( Network_Host ) {
return 'X';
} else {
return 'O';
}
}
}