/*
* 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 between=location.search.split('between=')[1] ? decodeURIComponent(location.search.split('between=')[1].split('&')[0]) : '1.0';
var idvsclass=location.search.split('idvsclass=')[1] ? decodeURIComponent(location.search.split('idvsclass=')[1].split('&')[0]) : 'id';
var exbidvsclass=location.search.split('idvsclass=')[1] ? '&idvsclass=' + decodeURIComponent(location.search.split('idvsclass=')[1].split('&')[0]) : '';
var atend='?reflexes=y' + exbidvsclass + '&between=';
var obetween=null;
var threedots=location.search.split('idvsclass=')[1] ? "" : "";
var letter='X';
var idprefix='';
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;
var scols=['red','olive','orange','brown','green','blue','magenta','pink','purple'];
var scolsofar=',,';
var stylebits=location.search.split('idvsclass=')[1] ? '' : '';
function isok(iou) {
if (iou.value == '') {
if (iou.placeholder == letter) {
if (letter == 'X') {
letter='X'; //'O';
} else {
letter='X';
}
return true;
} else {
return false;
}
} else {
return false;
}
}
function newgame() {
cgoes="";
v11=0;
v12=0;
v13=0;
v21=0;
v22=0;
v23=0;
v31=0;
v32=0;
v33=0;
var huh;
if (!document.getElementById("11")) { // must be class approach
var ils=document.getElementsByTagName('img');
for (var jils=0; jils= '0' && (sarr[isarr] + ' ').substring(0,1) <= '9')) {
childclass=sarr[isarr];
} else if (parentclass == '') {
parentclass=sarr[isarr];
} else {
parentclass+=' ' + sarr[isarr];
}
}
suffix=childclass;
}
}
}
if (idprefix != '') {
suffix=suffix.replace(idprefix,'');
}
if (cgoes.indexOf(";" + suffix + ";") != -1) {
alert(cvgoes + "Huh?");
} else {
if (idprefix != '') {
imgo.value = "X";
} else {
imgo.src = "//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 = documentgetElementById(idprefix + '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 = documentgetElementById(idprefix + '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 = documentgetElementById(idprefix + '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 = documentgetElementById(idprefix + '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 = documentgetElementById(idprefix + '33');
} else if (v12 == 0 && (eval(v11 + v12 + v13) == -2 || eval(v12 + v22 + v32) == -2)) {
v12 = -1;
wi = -1;
nxt = documentgetElementById(idprefix + '12');
} else if (v21 == 0 && (eval(v21 + v22 + v23) == -2 || eval(v11 + v21 + v31) == -2)) {
v21 = -1;
wi = -1;
nxt = documentgetElementById(idprefix + '21');
} else if (v23 == 0 && (eval(v21 + v22 + v23) == -2 || eval(v13 + v23 + v33) == -2)) {
v23 = -1;
wi = -1;
nxt = documentgetElementById(idprefix + '23');
} else if (v32 == 0 && (eval(v31 + v32 + v33) == -2 || eval(v12 + v22 + v32) == -2)) {
v32 = -1;
wi = -1;
nxt = documentgetElementById(idprefix + '32');
}
if (wi != 0) {
if (idprefix != '') {
nxt.value = "O";
} else {
nxt.src = "//www.rjmprogramming.com.au/wordpress/ttcircle.png";
}
if (idprefix != '') {
cgoes = cgoes + ";" + nxt.id.replace(idprefix,'') + ";";
} else {
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 = documentgetElementById(idprefix + '22');
} else if (v11 == 0 && (eval(v11 + v12 + v13) == 2 || eval(v11 + v21 + v31) == 2 || eval(v11 + v22 + v33) == 2)) {
v11 = -1;
nxt = documentgetElementById(idprefix + '11');
} else if (v13 == 0 && (eval(v11 + v12 + v13) == 2 || eval(v13 + v23 + v33) == 2 || eval(v13 + v22 + v31) == 2)) {
v13 = -1;
nxt = documentgetElementById(idprefix + '13');
} else if (v31 == 0 && (eval(v31 + v32 + v33) == 2 || eval(v13 + v22 + v31) == 2 || eval(v11 + v21 + v31) == 2)) {
v31 = -1;
nxt = documentgetElementById(idprefix + '31');
} else if (v33 == 0 && (eval(v31 + v32 + v33) == 2 || eval(v13 + v23 + v33) == 2 || eval(v11 + v22 + v33) == 2)) {
v33 = -1;
nxt = documentgetElementById(idprefix + '33');
} else if (v12 == 0 && (eval(v11 + v12 + v13) == 2 || eval(v12 + v22 + v32) == 2)) {
v12 = -1;
nxt = documentgetElementById(idprefix + '12');
} else if (v21 == 0 && (eval(v21 + v22 + v23) == 2 || eval(v11 + v21 + v31) == 2)) {
v21 = -1;
nxt = documentgetElementById(idprefix + '21');
} else if (v23 == 0 && (eval(v21 + v22 + v23) == 2 || eval(v13 + v23 + v33) == 2)) {
v23 = -1;
nxt = documentgetElementById(idprefix + '23');
} else if (v32 == 0 && (eval(v31 + v32 + v33) == 2 || eval(v12 + v22 + v32) == 2)) {
v32 = -1;
nxt = documentgetElementById(idprefix + '32');
} else if (v22 == 0) {
v22 = -1;
nxt = documentgetElementById(idprefix + '22');
} else if (v11 == 0) {
v11 = -1;
nxt = documentgetElementById(idprefix + '11');
} else if (v13 == 0) {
v13 = -1;
nxt = documentgetElementById(idprefix + '13');
} else if (v31 == 0) {
v31 = -1;
nxt = documentgetElementById(idprefix + '31');
} else if (v33 == 0) {
v33 = -1;
nxt = documentgetElementById(idprefix + '33');
} else if (v12 == 0) {
v12 = -1;
nxt = documentgetElementById(idprefix + '12');
} else if (v21 == 0) {
v21 = -1;
nxt = documentgetElementById(idprefix + '21');
} else if (v23 == 0) {
v23 = -1;
nxt = documentgetElementById(idprefix + '23');
} else if (v32 == 0) {
v32 = -1;
nxt = documentgetElementById(idprefix + '32');
} else {
dscore = dscore + 1;
alert("It is a draw. Well played. Scores: Computer " + cscore + " vs You " + yscore + " (" + dscore + " draws)");
newgame();
}
if (idprefix != '') {
nxt.value = "O";
} else {
nxt.src = "//www.rjmprogramming.com.au/wordpress/ttcircle.png";
}
if (idprefix != '') {
if (('' + nxt.id) == '') {
cgoes = cgoes + ";" + nxt.className.split(' ')[0].replace(idprefix,'') + ";";
} else {
cgoes = cgoes + ";" + nxt.id.replace(idprefix,'') + ";";
}
} else {
if (('' + nxt.id) == '') {
cgoes = cgoes + ";" + nxt.className.split(' ')[0];
} else {
cgoes = cgoes + ";" + nxt.id + ";";
}
}
}
}
}
}
function randp() {
var ir=0,ims=document.getElementsByTagName('input');
for (var jms=0; jms').replace(' onclick="doit(this);"',' onclick="if (isok(this)) { doit(this); }"').replace('').replace(' onclick="doit(this);"',' onclick="if (isok(this)) { doit(this); }"').replace('';
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 = '' + stylebits;
setTimeout(ph, 800);
//hcont += '