Guest User

Untitled

a guest
Dec 11th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.00 KB | None | 0 0
  1. /* Homework 2: Tic Tac Toe
  2. Program by: Emerson Murray
  3. File Name: H2_TicTacToe.java
  4. Function: A basic tic tac toe program
  5. */
  6.  
  7. import java.io.*;
  8.  
  9. public class H2_TicTacToe
  10. {
  11. public static void main(String args[]) throws IOException
  12. {
  13. char[] board = {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '};
  14. boolean turn = true;
  15. boolean tie = false;
  16. boolean win = false;
  17.  
  18. int moveNum;
  19. int moveCount = 0;
  20. String inputMove;
  21. BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in));
  22. menu();
  23.  
  24.  
  25. while (tie == false && win == false) {
  26.  
  27.  
  28. if (turn == true) {
  29. System.out.println("Enter your move, Player X: ");
  30. inputMove = dataIn.readLine();
  31. moveNum = Integer.parseInt(inputMove);
  32. turn = false;
  33. moveCount++;
  34. player1(moveNum, turn, moveCount, board);
  35.  
  36.  
  37. }
  38. else {
  39. System.out.println("Enter your move, Player O: ");
  40. inputMove = dataIn.readLine();
  41. moveNum = Integer.parseInt(inputMove);
  42. turn = true;
  43. moveCount++;
  44. player2(moveNum, turn, moveCount, board);
  45.  
  46.  
  47. }
  48. checkWin(win, board);
  49. checkTie(moveCount, tie);
  50.  
  51.  
  52. }
  53.  
  54.  
  55. }
  56.  
  57. public static void menu()
  58. {
  59. System.out.println("0|1|2");
  60. System.out.println("-----");
  61. System.out.println("3|4|5");
  62. System.out.println("-----");
  63. System.out.println("6|7|8");
  64. }
  65.  
  66. public static void showBoard(char theBoard[])
  67. {
  68. System.out.println(theBoard[0] + "|" + theBoard[1] + "|" + theBoard[2]);
  69. System.out.println("-----");
  70. System.out.println(theBoard[3] + "|" + theBoard[4] + "|" + theBoard[5]);
  71. System.out.println("-----");
  72. System.out.println(theBoard[6] + "|" + theBoard[7] + "|" + theBoard[8]);
  73. }
  74.  
  75. public static void player1(int moveNum, boolean turn, int moveCount, char theBoard[])
  76. {
  77.  
  78. switch(moveNum)
  79. {
  80. case 0:
  81. if(theBoard[0] == ' ') {
  82. theBoard[0] = 'X';
  83. menu();
  84. showBoard(theBoard);
  85. }
  86. else
  87. {
  88. System.out.println("That space is already taken, please try again.");
  89. turn = true;
  90. moveCount--;
  91. menu();
  92.  
  93. }
  94. break;
  95.  
  96. case 1:
  97.  
  98. if(theBoard[1] == ' ') {
  99. theBoard[1] = 'X';
  100. menu();
  101. showBoard(theBoard);
  102. }
  103.  
  104. else
  105. {
  106. System.out.println("That space is already taken, please try again.");
  107. turn = true;
  108. moveCount--;
  109. menu();
  110. }
  111. break;
  112.  
  113. case 2:
  114.  
  115. if(theBoard[2] == ' ') {
  116. theBoard[2] = 'X';
  117. menu();
  118. showBoard(theBoard);
  119. }
  120. else
  121. {
  122. System.out.println("That space is already taken, please try again.");
  123. turn = true;
  124. moveCount--;
  125. menu();
  126. }
  127. break;
  128.  
  129. case 3:
  130.  
  131. if(theBoard[3] == ' ') {
  132. theBoard[3] = 'X';
  133. menu();
  134. showBoard(theBoard);
  135. }
  136. else
  137. {
  138. System.out.println("That space is already taken, please try again.");
  139. turn = true;
  140. moveCount--;
  141. menu();
  142. }
  143. break;
  144. case 4:
  145.  
  146. if(theBoard[4] == ' ') {
  147. theBoard[4] = 'X';
  148. menu();
  149. showBoard(theBoard);
  150. }
  151. else
  152. {
  153. System.out.println("That space is already taken, please try again.");
  154. turn = true;
  155. moveCount--;
  156. menu();
  157. }
  158. break;
  159. case 5:
  160.  
  161. if(theBoard[5] == ' ') {
  162. theBoard[5] = 'X';
  163. menu();
  164. showBoard(theBoard);
  165. }
  166. else
  167. {
  168. System.out.println("That space is already taken, please try again.");
  169. turn = true;
  170. moveCount--;
  171. menu();
  172. }
  173. break;
  174.  
  175. case 6:
  176. if(theBoard[6] == ' ') {
  177. theBoard[6] = 'X';
  178. menu();
  179. showBoard(theBoard);
  180. }
  181. else
  182. {
  183. System.out.println("That space is already taken, please try again.");
  184. turn = true;
  185. moveCount--;
  186. menu();
  187. }
  188. break;
  189.  
  190. case 7:
  191. if(theBoard[7] == ' ') {
  192. theBoard[7] = 'X';
  193. menu();
  194. showBoard(theBoard);
  195. }
  196. else
  197. {
  198. System.out.println("That space is already taken, please try again.");
  199. turn = true;
  200. moveCount--;
  201. menu();
  202. }
  203. break;
  204.  
  205. case 8:
  206. if(theBoard[8] == ' ') {
  207. theBoard[8] = 'X';
  208. menu();
  209. showBoard(theBoard);
  210. }
  211. else
  212. {
  213. System.out.println("That space is already taken, please try again.");
  214. turn = true;
  215. moveCount--;
  216. menu();
  217. }
  218. break;
  219.  
  220. default:
  221. System.out.println("That is not a valid move, please try again.");
  222. menu();
  223.  
  224.  
  225.  
  226. }
  227. }
  228. public static void player2(int moveNum, boolean turn, int moveCount, char theBoard[])
  229. {
  230.  
  231. switch(moveNum)
  232. {
  233. case 0:
  234. if(theBoard[0] == ' ') {
  235. theBoard[0] = 'O';
  236. menu();
  237. showBoard(theBoard);
  238. }
  239. else
  240. {
  241. System.out.println("That space is already taken, please try again.");
  242. turn = false;
  243. moveCount--;
  244.  
  245. menu();
  246.  
  247. }
  248. break;
  249.  
  250. case 1:
  251.  
  252. if(theBoard[1] == ' ') {
  253. theBoard[1] = 'O';
  254. menu();
  255. showBoard(theBoard);
  256. }
  257. else
  258. {
  259. System.out.println("That space is already taken, please try again.");
  260. turn = false;
  261. moveCount--;
  262. menu();
  263. }
  264. break;
  265.  
  266. case 2:
  267.  
  268. if(theBoard[2] == ' ') {
  269. theBoard[2] = 'O';
  270. menu();
  271. showBoard(theBoard);
  272. }
  273. else
  274. {
  275. System.out.println("That space is already taken, please try again.");
  276. turn = false;
  277. moveCount--;
  278. menu();
  279. }
  280. break;
  281.  
  282. case 3:
  283.  
  284. if(theBoard[3] == ' ') {
  285. theBoard[3] = 'O';
  286. menu();
  287. showBoard(theBoard);
  288. }
  289. else
  290. {
  291. System.out.println("That space is already taken, please try again.");
  292. turn = false;
  293. moveCount--;
  294. menu();
  295. }
  296. break;
  297. case 4:
  298.  
  299. if(theBoard[4] == ' ') {
  300. theBoard[4] = 'O';
  301. menu();
  302. showBoard(theBoard);
  303. }
  304. else
  305. {
  306. System.out.println("That space is already taken, please try again.");
  307. turn = false;
  308. moveCount--;
  309. menu();
  310. }
  311. break;
  312. case 5:
  313.  
  314. if(theBoard[5] == ' ') {
  315. theBoard[5] = 'O';
  316. menu();
  317. showBoard(theBoard);
  318. }
  319. else
  320. {
  321. System.out.println("That space is already taken, please try again.");
  322. turn = false;
  323. moveCount--;
  324. menu();
  325. }
  326. break;
  327.  
  328. case 6:
  329. if(theBoard[6] == ' ') {
  330. theBoard[6] = 'O';
  331. menu();
  332. showBoard(theBoard);
  333. }
  334. else
  335. {
  336. System.out.println("That space is already taken, please try again.");
  337. turn = false;
  338. moveCount--;
  339. menu();
  340. }
  341. break;
  342.  
  343. case 7:
  344. if(theBoard[7] == ' ') {
  345. theBoard[7] = 'O';
  346. menu();
  347. showBoard(theBoard);
  348. }
  349. else
  350. {
  351. System.out.println("That space is already taken, please try again.");
  352. turn = false;
  353. moveCount--;
  354. menu();
  355. }
  356. break;
  357.  
  358. case 8:
  359. if(theBoard[8] == ' ') {
  360. theBoard[8] = 'O';
  361. menu();
  362. showBoard(theBoard);
  363. }
  364. else
  365. {
  366. System.out.println("That space is already taken, please try again.");
  367. turn = false;
  368. moveCount--;
  369. menu();
  370. }
  371. break;
  372.  
  373. default:
  374. System.out.println("That is not a valid move, please try again.");
  375. menu();
  376. }
  377. }
  378. public static void checkTie(int moveCount, boolean tie)
  379. {
  380. if(moveCount == 9)
  381. {
  382. System.out.println("TIED GAME");
  383. tie = true;
  384. }
  385. }
  386.  
  387. public static void checkWin(boolean win, char board[])
  388. {
  389. if((board[0] == board[1]) && (board[1] == board[2]))
  390. {
  391. if(board[0] != ' ')
  392. {
  393. System.out.println("Player " + board[0] + " wins!");
  394. win = true;
  395. }
  396. }
  397. if((board[3] == board[4]) && (board[4] == board[5]))
  398. {
  399. if(board[3] != ' ')
  400. {
  401. System.out.println("Player " + board[3] + " wins!");
  402. win = true;
  403. }
  404. }
  405. if((board[6] == board[7]) && (board[7] == board[8]))
  406. {
  407. if(board[6] != ' ')
  408. {
  409. System.out.println("Player " + board[6] + " wins!");
  410. win = true;
  411. }
  412. }
  413. if((board[0] == board[3]) && (board[3] == board[6]))
  414. {
  415. if(board[0] != ' ')
  416. {
  417. System.out.println("Player " + board[0] + " wins!");
  418. win = true;
  419. }
  420. }
  421. if((board[1] == board[4]) && (board[4] == board[7]))
  422. {
  423. if(board[1] != ' ')
  424. {
  425. System.out.println("Player " + board[1] + " wins!");
  426. win = true;
  427. }
  428. }
  429. if((board[2] == board[5]) && (board[5] == board[8]))
  430. {
  431. if(board[2] != ' ')
  432. {
  433. System.out.println("Player " + board[2] + " wins!");
  434. win = true;
  435. }
  436. }
  437. if((board[0] == board[4]) && (board[4] == board[8]))
  438. {
  439. if(board[0] != ' ')
  440. {
  441. System.out.println("Player " + board[0] + " wins!");
  442. win = true;
  443. }
  444. }
  445. if((board[2] == board[4]) && (board[4] == board[6]))
  446. {
  447. if(board[2] != ' ')
  448. {
  449. System.out.println("Player " + board[2] + " wins!");
  450. win = true;
  451. }
  452. }
  453. }
  454. }
Add Comment
Please, Sign In to add comment