/* * This is a JavaScript Scratchpad. * * Enter some JavaScript, then Right Click or choose from the Execute Menu: * 1. Run to evaluate the selected text (Cmd-R), * 2. Inspect to bring up an Object Inspector on the result (Cmd-I), or, * 3. Display to insert the result in a comment after the selection. (Cmd-L) TicTacToe - RJM Programming - November, 2014 tictactoe.js Usage: Firefox Scratchpad tool */ var cgoes=""; var v11=0; var v12=0; var v13=0; var v21=0; var v22=0; var v23=0; var v31=0; var v32=0; var v33=0; var cscore=0; var dscore=0; var yscore=0; function newgame() { cgoes=""; v11=0; v12=0; v13=0; v21=0; v22=0; v23=0; v31=0; v32=0; v33=0; var huh; huh = document.getElementById("11"); huh.src = "http://www.rjmprogramming.com.au/wordpress/ttnone.png"; huh = document.getElementById("12"); huh.src = "http://www.rjmprogramming.com.au/wordpress/ttnone.png"; huh = document.getElementById("13"); huh.src = "http://www.rjmprogramming.com.au/wordpress/ttnone.png"; huh = document.getElementById("21"); huh.src = "http://www.rjmprogramming.com.au/wordpress/ttnone.png"; huh = document.getElementById("22"); huh.src = "http://www.rjmprogramming.com.au/wordpress/ttnone.png"; huh = document.getElementById("23"); huh.src = "http://www.rjmprogramming.com.au/wordpress/ttnone.png"; huh = document.getElementById("31"); huh.src = "http://www.rjmprogramming.com.au/wordpress/ttnone.png"; huh = document.getElementById("32"); huh.src = "http://www.rjmprogramming.com.au/wordpress/ttnone.png"; huh = document.getElementById("33"); huh.src = "http://www.rjmprogramming.com.au/wordpress/ttnone.png"; } function doit(imgo) { var wi = 0; var nxt; var suffix = imgo.id; if (cgoes.indexOf(";" + suffix + ";") != -1) { alert("Huh?"); } else { imgo.src = "http://www.rjmprogramming.com.au/wordpress/ttcross.png"; cgoes = cgoes + ";" + suffix + ";"; switch(suffix) { case '11': v11 = 1; if (eval(v11 + v12 + v13) == 3 || eval(v11 + v21 + v31) == 3 || eval(v11 + v22 + v33) == 3) wi = 1; break; case '12': v12 = 1; if (eval(v11 + v12 + v13) == 3 || eval(v12 + v22 + v32) == 3) wi = 1; break; case '13': v13 = 1; if (eval(v11 + v12 + v13) == 3 || eval(v13 + v23 + v33) == 3 || eval(v13 + v22 + v31) == 3) wi = 1; break; case '21': v21 = 1; if (eval(v21 + v22 + v23) == 3 || eval(v11 + v21 + v31) == 3) wi = 1; break; case '22': v22 = 1; if (eval(v21 + v22 + v23) == 3 || eval(v12 + v22 + v32) == 3 || eval(v11 + v22 + v33) == 3 || eval(v13 + v22 + v31) == 3) wi = 1; break; case '23': v23 = 1; if (eval(v21 + v22 + v23) == 3 || eval(v13 + v23 + v33) == 3) wi = 1; break; case '31': v31 = 1; if (eval(v31 + v32 + v33) == 3 || eval(v13 + v22 + v31) == 3 || eval(v11 + v21 + v31) == 3) wi = 1; break; case '32': v32 = 1; if (eval(v31 + v32 + v33) == 3 || eval(v12 + v22 + v32) == 3) wi = 1; break; case '33': v33 = 1; if (eval(v31 + v32 + v33) == 3 || eval(v13 + v23 + v33) == 3 || eval(v11 + v22 + v33) == 3) wi = 1; break; default: break; } if (wi == 1) { yscore = yscore + 1; alert("Congratulations! You win. Scores: Computer " + cscore + " vs You " + yscore + " (" + dscore + " draws)"); newgame(); } else if (wi == 0) { if (v22 == 0 && (eval(v21 + v22 + v23) == -2 || eval(v12 + v22 + v32) == -2 || eval(v11 + v22 + v33) == -2 || eval(v13 + v22 + v31) == -2)) { v22 = -1; wi = -1; nxt = document.getElementById('22'); } else if (v11 == 0 && (eval(v11 + v12 + v13) == -2 || eval(v11 + v21 + v31) == -2 || eval(v11 + v22 + v33) == -2)) { v11 = -1; wi = -1; nxt = document.getElementById('11'); } else if (v13 == 0 && (eval(v11 + v12 + v13) == -2 || eval(v13 + v23 + v33) == -2 || eval(v13 + v22 + v31) == -2)) { v13 = -1; wi = -1; nxt = document.getElementById('13'); } else if (v31 == 0 && (eval(v31 + v32 + v33) == -2 || eval(v13 + v22 + v31) == -2 || eval(v11 + v21 + v31) == -2)) { v31 = -1; wi = -1; nxt = document.getElementById('31'); } else if (v33 == 0 && (eval(v31 + v32 + v33) == -2 || eval(v13 + v23 + v33) == -2 || eval(v11 + v22 + v33) == -2)) { v33 = -1; wi = -1; nxt = document.getElementById('33'); } else if (v12 == 0 && (eval(v11 + v12 + v13) == -2 || eval(v12 + v22 + v32) == -2)) { v12 = -1; wi = -1; nxt = document.getElementById('12'); } else if (v21 == 0 && (eval(v21 + v22 + v23) == -2 || eval(v11 + v21 + v31) == -2)) { v21 = -1; wi = -1; nxt = document.getElementById('21'); } else if (v23 == 0 && (eval(v21 + v22 + v23) == -2 || eval(v13 + v23 + v33) == -2)) { v23 = -1; wi = -1; nxt = document.getElementById('23'); } else if (v32 == 0 && (eval(v31 + v32 + v33) == -2 || eval(v12 + v22 + v32) == -2)) { v32 = -1; wi = -1; nxt = document.getElementById('32'); } if (wi != 0) { nxt.src = "http://www.rjmprogramming.com.au/wordpress/ttcircle.png"; cgoes = cgoes + ";" + nxt.id + ";"; cscore = cscore + 1; alert("Computer wins! Bad luck. Scores: Computer " + cscore + " vs You " + yscore + " (" + dscore + " draws)"); newgame(); } if (wi == 0) { if (v22 == 0 && (eval(v21 + v22 + v23) == 2 || eval(v12 + v22 + v32) == 2 || eval(v11 + v22 + v33) == 2 || eval(v13 + v22 + v31) == 2)) { v22 = -1; nxt = document.getElementById('22'); } else if (v11 == 0 && (eval(v11 + v12 + v13) == 2 || eval(v11 + v21 + v31) == 2 || eval(v11 + v22 + v33) == 2)) { v11 = -1; nxt = document.getElementById('11'); } else if (v13 == 0 && (eval(v11 + v12 + v13) == 2 || eval(v13 + v23 + v33) == 2 || eval(v13 + v22 + v31) == 2)) { v13 = -1; nxt = document.getElementById('13'); } else if (v31 == 0 && (eval(v31 + v32 + v33) == 2 || eval(v13 + v22 + v31) == 2 || eval(v11 + v21 + v31) == 2)) { v31 = -1; nxt = document.getElementById('31'); } else if (v33 == 0 && (eval(v31 + v32 + v33) == 2 || eval(v13 + v23 + v33) == 2 || eval(v11 + v22 + v33) == 2)) { v33 = -1; nxt = document.getElementById('33'); } else if (v12 == 0 && (eval(v11 + v12 + v13) == 2 || eval(v12 + v22 + v32) == 2)) { v12 = -1; nxt = document.getElementById('12'); } else if (v21 == 0 && (eval(v21 + v22 + v23) == 2 || eval(v11 + v21 + v31) == 2)) { v21 = -1; nxt = document.getElementById('21'); } else if (v23 == 0 && (eval(v21 + v22 + v23) == 2 || eval(v13 + v23 + v33) == 2)) { v23 = -1; nxt = document.getElementById('23'); } else if (v32 == 0 && (eval(v31 + v32 + v33) == 2 || eval(v12 + v22 + v32) == 2)) { v32 = -1; nxt = document.getElementById('32'); } else if (v22 == 0) { v22 = -1; nxt = document.getElementById('22'); } else if (v11 == 0) { v11 = -1; nxt = document.getElementById('11'); } else if (v13 == 0) { v13 = -1; nxt = document.getElementById('13'); } else if (v31 == 0) { v31 = -1; nxt = document.getElementById('31'); } else if (v33 == 0) { v33 = -1; nxt = document.getElementById('33'); } else if (v12 == 0) { v12 = -1; nxt = document.getElementById('12'); } else if (v21 == 0) { v21 = -1; nxt = document.getElementById('21'); } else if (v23 == 0) { v23 = -1; nxt = document.getElementById('23'); } else if (v32 == 0) { v32 = -1; nxt = document.getElementById('32'); } else { dscore = dscore + 1; alert("It is a draw. Well played. Scores: Computer " + cscore + " vs You " + yscore + " (" + dscore + " draws)"); newgame(); } nxt.src = "http://www.rjmprogramming.com.au/wordpress/ttcircle.png"; cgoes = cgoes + ";" + nxt.id + ";"; } } } } var hcont = '

You say Tic Tac Toe ... I say Noughts and Crosses

'; var hcont2 = ' '; var hcont3 = ''; var hcont4 = ''; var hcont5 = ''; var hcont6 = ''; var hcont7 = ''; var hcont8 = ''; var hcont9 = ''; var hcont10 = ''; var hcont11 = ''; var hcont12 = ''; var hcont13 = ''; var hcont14 = ''; var hcont15 = ''; var hcont16 = ''; var hcont17 = ''; var hcont18 = ''; var hcont19 = ''; var hcont20 = '
'; var hcont21 = '
New game
'; //hcont += ''; document.body = document.createElement('BODY'); document.body.innerHTML = hcont + hcont2 + hcont3 + hcont4 + hcont5 + hcont6 + hcont7 + hcont8 + hcont9 + hcont10 + hcont11 + hcont12 + hcont13 + hcont14 + hcont15 + hcont16 + hcont17 + hcont18 + hcont19 + hcont20 + hcont21;