Guest User

Untitled

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