From 19d35fa92439fb51af023dcf6089af6a668da4dd Mon Sep 17 00:00:00 2001 From: joshua williams Date: Wed, 28 Oct 2020 00:10:23 -0400 Subject: [PATCH] Finally finished. --- .../TicTacToe-Java/local/jlw23339/Main.class | Bin 0 -> 3441 bytes .../local/jlw23339/Player.class | Bin 1609 -> 2905 bytes .../TicTacToe-Java/local/jlw23339/main.class | Bin 1922 -> 0 bytes src/local/jlw23339/Main.java | 140 ++++++++++++++---- src/local/jlw23339/Player.java | 45 +++++- 5 files changed, 156 insertions(+), 29 deletions(-) create mode 100644 out/production/TicTacToe-Java/local/jlw23339/Main.class delete mode 100644 out/production/TicTacToe-Java/local/jlw23339/main.class diff --git a/out/production/TicTacToe-Java/local/jlw23339/Main.class b/out/production/TicTacToe-Java/local/jlw23339/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..ee02c573791b189fa19b1766dedb9ea70fa5c85b GIT binary patch literal 3441 zcmaJ^Yj7J^75=XESV>(cenhdIhpXmQJF+cor>3#eG>(!G2itMuR}=@DwY;%q%e#uS zvg=Y_C4@c*v{2GGPzZs+q5lXVrwQawhk*$*3_tk83_tpZfnnemGaY7_#C&&Gj%7R8 z?+X_l*Y@r zzOHN8e4mv`8e`G=!2l{ysbG_eAT|qBt}@!KB@KZ$m~Y*nyL#dg%Lh^TKiYw1(;Us?=0z9h{^r;*NCbVt{wq5)JPB;9>V zpt|7hswMS<@`Rl#c40STG;_pg*;udi^N}$>o>ozZdIA5KZaMe}Y^tkY3q%F;5mwQF zMuDm+ZBmb!MnbcOlGZq-tfd)NR$$NLAY5xKfCxUJpjkzW1isP+iE$KpC!pAvrVJVL zJ{8ZPjXFbr$?7y160_YYQ}e8f{b(21kQg`3te!TrNh@g*z-Q_@nTD=a>2hL>{vWl> zwjT#nJO>iWJFaDiq$!?tMot`3(SgGPK7!S4PU{S~Y6&Yl#T}W9HrtiVT1?at993{k z#iyj-PJ}Dh2)MJ!mvtXHDIGc0F{I$rOMI|bp3;m_b1HxnaLHSb#NZ^?)^*CzBX~i= zcgj)F@d)}=3}8^eVZA2 zb}Ejr>lbobDq8`8u%D<;sW4ztpPii=F;fB}CX;bNMMg&N%RWkmJ7$jR0vo%MhTfB# z8qqWT+DM9;iZ0m+2DMC5jtfe+HJ+5NujYcR=qSOPvMYOY-Ea{MkGcZA;ND7Ss<^zl z)3;1Q!Q2YsT2ZvnNh{YW877$J$g{M}m^Am8qnOP?TXB)jY!2yWvTn7{1zNKaC9^MP za)!a)#goqnl=fL#VzOIH+fgfcRl!ACNsN=$8FPlPrtP*!cO0RGCuY-Hg0Kbp%v>g+ zA4^IM{SucZS*gt0Vbip-Rz^#A>(;nAn%(HdcLKPAcNJWfO=3=9*K#jS8q?;a9&x~P z`o=LWVVRj(fvd$Gqp;91dYtH_^z5!K)11tuqieHJq*<}Ce>SZ@W_dBVOB7veBBrHM zeMw7?`tV(nLxf^>UkPcUrL4Axe0YzoPK0_3%_gL!*qujbL;dWFMl{r)nGI=U60Y`; zfZ8eBek`SBvwBv+b%EV$pm|)x3T_D0uD_J&bKt>K?1d%l(SVzU!PZ_>H9U5xXbq|Pux`&8i>2gUKxmc zq~w*7La8tAcBUKUbXZPP@=8ge)ED=xzuUY1Ze`uwU3cM+FW`x8`K(YEu%XA@<_@~& z@bmC(l;1^F{1$2!@MOE^7Irk`vF8r<0(msmc=Bj%^9H@)hQ{0Yq+HGE=p4NBn4$E1 z9=YT;O8E&~XJ&7r61T7kzvM^A9lj6mp&Ix3n*TG`e1vWIJD$Wp5yHR8 zgO9OO1h7j~@ckde)1nr2q8@uiGn&M+h=?ef#c{NVvuG8g*eAyL`kde!Pg3D5(|sTB z;bnY|h)D@P>jnNiY7BiVtu|L6xX|fZYmCh((0gEGeOH`~-8T zi9hlTQWMAac7^Xf=Q_B3+YKBDZ*OUL*SOm~HJ*EIURRqERD#|csIKt@m3?hKrXuLe zqwk_3<`@6QQ657VU6g;bjCw684|Jd$G5T;6t$gn1OZ<82juHilQixH7iNM!k@?MT6 zT;|g)y|HnC9cdHX51}wf!El1`+2L}aNTnhe^nb8*kqM^eP44x}51B&Yb?^lGAtFm0 zbC-qMJd!1*m=TKJTF7PorzxanD@_QXFlKhhn`Mo4R z*Sx>weV+eYUUbSvwVBVuy!v>J@{&8X7Cr5 z$6r|>|6pxFVWx%?9!~Q`MYFYfXLDKM luapFOnY)G?}3EexY5f z|Db(yxmK4iKD1c13zZ+x-_VEt0pHs`XumTvV8FC5=d#b<`+WP`d!L!#pRKI}=*4#t zR3M-ts38PJAUdZn>4}_f%_PRA=8UW(p!A!T=?n-2+B?QogavlFN=3)aB~In@`f|!F zI1#7_RAL7-6;&EuLA5|#&d%z Z!1cTZ2xvBZU(zHH=FoC`hp=)<0-nZ(oWvAW?Zd04fSY{{`8yXw160vwv8HImC_1xT5g*)w4jw?6qXmJ z>>Ra{Dq;dVU)-I}>Xv2XE3pszRkUe1fP-78NG}&0V?nyKHc^{)V%Sck>3w;sn zLAxZeLtuBihj*Jw$GE(qQ^O&=PB!f#$@M9q<^_he;jD(aNoaTjZwfRl=<`O>wz9f2 zVLG#16&&4iBz^6}9WN6TK@SeAcuT_(9Noy(R{sL(qP#69qw%qpa@#R3qdBIrKKf)1 zjGIJS+g|3f8VDpJ7{Cb?CpDbH=?!9Cf5Vnz%*c$ZOM0$oj9nL~-wN8-Abl#%Xc)v0 znbD`2%q_sYTI}n%Dl>Xc!!X_|VvhTl0C6XnV zaZ)Z+6)OU*|F6nqdc0sS8?=JYmx74wQm!KMk>)Jqv+T}%+TEG&vODu*!P7L?6}XH_ zu0uG=@m)%m5ODp);}0R?kDz8AqVhf>@y`2*uA(-0?H+35T-?X*cy#POntpNpjB{+| zs{lk1l%FH)L@hrm&AfX*R~4k|sg@k5M5LJmMe?uN#((T6Mv zYhoD9gxf+&TG7vk`3z!w>GqMZHo`vWh7t1s`eAgi=C5Ls@cU`^9s{bt`}E8CIZgS! z-=SiUiVwgj1+JmbkMuBSLB)tfyGCpL%w2^GO|l{Rk*sN+mVcdqzUd+1dkE1(bh~k) z#5lBRJcTT;kjXAJj%+tRT*la|nQ7i>;5tX?WRT8e1y&J3r0F*te}Lq~i=vP}JisxA z(Ca$%3ZTkILo>{fbxFf4Oy6ZGuBN**FJpJGBvUeCs%Pc)wzB=FwoL` z8>5{q-MzuUkx<}>Ql~Tq*Kea$0&Wb}DP1n;^FKma35gX&+JT2db3VLGF_ zB0BO+!xV*Gks>WQgrd?i`oeV6Thz0aimr_A?%}K~5m8d<{GY`~lvN;)0_R%p9cp~+ Vj-R^Y=lGH*5lX+pH~1Ef{{jYhXjT9K delta 825 zcmZ9J+fGwK6o$X)X_qpT(gK1)tyL5^hixey02KufpqvyBka*!%8UiULQloN3cmy*q z;GHq?Lcv0UiC5le;sY38z)PP%UAt66$Rx97&8+`l|N7^9;};$I`g`XS(9g`vh%;P8 zm@12irW&ni$S*&3^Uh-ac~3T*?Q^E`?rLsD5nOU#EX*m?s0WB@YQ1XT!kk5&QL3>z zLA^zTrjY|Ct$M;Snl(WVng^;ioS;S1O46*WbSR}cLfX7hz17EPvpB9fLA&{>`UPZb zI_NaEFFE8j>ee`%QiO`DOOKZG(!VUYN0X&j5h%DzIYoSI(S7DRdABg{Og~*&D9jJU zQKZbQe_dTNKl~l07>JwAfD;{!aD$r`W1fg{^DFRKO`1|LmAa*{D#I%DXrYi>8P2=K zVywAY9pxyp%28C8E5tcM@_t6LZ}?@wguRX0 zzzRIv#Iog3qUIy9*$v{`G>vU=NbYtx3|k!S*y7~4{ehamE3_S(Dbe+MjVe1fDJQ$L zMCQFv`Z+6mx5$AS5f&9WwIqmfJFWF+gOo+0_65tLi&%vsW1eEA+sNx-UALk`Hvpvil97m_oBPr?rYt?7hM7SxmvEe#&wBNkvbw& S6Xku1+j19?e44x5r}-~=@ov)q diff --git a/out/production/TicTacToe-Java/local/jlw23339/main.class b/out/production/TicTacToe-Java/local/jlw23339/main.class deleted file mode 100644 index 61f43be96a52577210f71176308fe43a040e15fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1922 zcmb7FO;;OL7=CVMCNl}sHhcsK1)5^5fs~{q7$wm75etn5il%TxbTNbx2Ez=7VCC4I z)t&Y~bklR(*#&s4vUB6A|H8lE>7w}DnRuv`4F~SM@4fHWeV+H7n?IlbdIX?|J5hw7 z=uk~)2n)ovtgozW!*VyWx7W7pdP^WYL+x(>|)b#TeVixwzj8b zh;9=-hzmqE>{bw1peHpN*!vfxvEy#gxDWk05+(+4QK0*jfCBoC4Bv2>G4=ltqsvhY zVOYl{6G>cVke86nTMk{LevmcKYOa%()aq(k67q^br=N4Ljdc9U$-hQDP@@|5>C!U9+Lv+>%Ql|ZZu6*{Hsgi3MSsbn*y2-O+ZZ%lT;KXooooT z?5*1Z7pjhHFYIlv+08rFT7xHDRayLHtLeyn`%rCdI=d3=Df~?{*tXAOZ))|l8c=UF zH|XAdikeq!6R+^{Bz0#(pzq~8L8CBJXeTEiWUL_5i?yNJIAKFnXkFi=HKQs`@2meosC3+9>1*Czvu@8i5_&|oLq^sdmq~PpUlO2#S45ceGj1r!#sew+3kIKHWaTlg93oXzsp(47BB35&yr9K38cax|6aI5#9q7O_K1v~U zi72{74|>EfUz!p0iVXTh0sZ0z5~7R&F^56FR;8dGco${*Kf?mv!%YarnC0IbLX1?x zElLVw44{Jdp)yJbK0uZAj>u;vs4kwe7b1)@J625}-B3zHgAXy29?BKfgj&=R+EF2_ z6!f?r4?jeILW}E@1%uGy#sOZxuZu^=e{pw!srw4$KO{EA@2z2W4KR#O=1TKr$a9^- z6?WG!?|Rk8k)&-J2Ih&tpk)TPxvKIuJ|bX|at7*i=sG?W;uvull>Ch@4|Ty7{u>vM z2~O~s_7VBew0n1m8RQ4?VBjatzz-aB@Db;^%FdtT_=w|Ej?X#1laWZ&|JO-{1Rg@|AIXJk0{{R3 diff --git a/src/local/jlw23339/Main.java b/src/local/jlw23339/Main.java index 1fc4b51..f7c1f9a 100644 --- a/src/local/jlw23339/Main.java +++ b/src/local/jlw23339/Main.java @@ -1,6 +1,6 @@ package local.jlw23339; -import java.util.Scanner; +import java.util.*; public class Main { @@ -8,26 +8,61 @@ public class Main public static void main(String[] args) { // write your code here - char[][] board = {{' ',' ', '|', ' ',' ', '|',' ', ' '}, - {'-','-', '+', '-','-', '+', '-','-'}, - {' ',' ', '|', ' ',' ', '|',' ', ' '}, - {'-','-', '+', '-','-', '+', '-','-'}, - {' ',' ', '|', ' ',' ', '|',' ', ' '}}; + char[][] board = {{' ', '|', ' ', '|', ' '}, + {'-', '+', '-', '+', '-'}, + {' ', '|', ' ', '|', ' '}, + {'-', '+', '-', '+', '-'}, + {' ', '|', ' ', '|', ' '}}; + Player p1 = new Player(); - Player p2 = new Player(); - System.out.println(p1.getPlayer()); - System.out.println(p2.getPlayer()); - printboard(board); - Scanner s = new Scanner(System.in); - System.out.println("Choose a position: "); - int position = s.nextInt(); - chooseposition(position, board); - printboard(board); + Player CPU = new Player("CPU"); + boolean is_running = true; + while (is_running) + { + printboard(board); + Scanner s = new Scanner(System.in); + + System.out.println(p1.getPlayer() + " Choose a position: "); + int position = s.nextInt(); + chooseposition(position, + board, + p1,CPU); + printboard(board); + if(p1.hasWon()){ + break; + } + if((p1.getMoves().size() + CPU.getMoves().size()) == 9){ + System.out.println("DRAW"); + break; + } + Random r = new Random(); + int randint = r.nextInt(9) + 1; + + chooseposition(randint, + board, + CPU,p1); +// printboard(board); + if(CPU.hasWon()){ + break; + } + System.out.println(p1.getMoves().size()); + if((p1.getMoves().size() + CPU.getMoves().size()) == 9){ + System.out.println("DRAW"); + break; + } + + + + + } + } - public static void printboard(char[][] board){ - for(char[] row : board) + + public static void printboard(char[][] board) + { + for (char[] row : board) { for (char ch : row) { @@ -36,34 +71,83 @@ public static void printboard(char[][] board){ System.out.println(); } } - public static void chooseposition(int position, char[][] board/**, User user**/){ - switch(position){ + + public static void chooseposition(int position, + char[][] board, + Player player,Player player2) + { + Random r = new Random(); + char space = ' '; + while(player.getMoves().contains(position) || player2.getMoves().contains(position)){ + if (player.getName().equals("CPU")) + { + position = r.nextInt(9)+1; + } + else{ + Scanner s = new Scanner(System.in); + System.out.println(player.getPlayer() + " Position already Taken; Try again.: "); + position = s.nextInt(); + } + + } + switch (position) + { case 1: - board[0][0] = 'X'; + + board[0][0] = player.symbol; + + player.setMoves(position); break; + case 2: - board[0][3] = 'X'; + + board[0][2] = player.symbol; + + player.setMoves(position); break; case 3: - board[0][6] = 'X'; + + board[0][4] = player.symbol; + + player.setMoves(position); break; case 4: - board[2][0] = 'X'; + + board[2][0] = player.symbol; + + player.setMoves(position); break; case 5: - board[2][3] = 'X'; + + board[2][2] = player.symbol; + player.setMoves(position); break; case 6: - board[2][6] = 'X'; + + board[2][4] = player.symbol; + + + player.setMoves(position); break; case 7: - board[4][0] = 'X'; + + board[4][0] = player.symbol; + + + player.setMoves(position); break; case 8: - board[4][3] = 'X'; + + board[4][2] = player.symbol; + + + player.setMoves(position); break; case 9: - board[4][6] = 'X'; + + board[4][4] = player.symbol; + + player.setMoves(position); break; } diff --git a/src/local/jlw23339/Player.java b/src/local/jlw23339/Player.java index 563a877..bc72805 100644 --- a/src/local/jlw23339/Player.java +++ b/src/local/jlw23339/Player.java @@ -1,13 +1,25 @@ package local.jlw23339; -import java.util.Scanner; +import java.util.*; public class Player { + private static int[][] wins = {{1,2,3},{4,5,6},{7,8,9},{1,4,7},{2,5,8},{3,6,9},{1,5,9},{3,5,7}}; + + private static int maxid; public int id; public String name; public char symbol; + public ArrayList moves = new ArrayList<>(); + public Player(String name) + { + this.name = name; + maxid++; + this.id = maxid; + this.symbol = 'O'; + + } public Player() { @@ -22,6 +34,7 @@ public Player() this.symbol = 'O'; } this.name = res; + } public String getPlayer() @@ -34,9 +47,39 @@ public String getName() return name; } + public ArrayList getMoves() + { + return moves; + } + + public void setMoves(int move) + { + this.moves.add(move); + } + public char getSymbol() { return symbol; } + public boolean hasWon(){ + for(int[] ar : wins){ + int count = 0; + + for( int i = 0;i