<html>
<head>
<title>Dominoes Block Game - RJM Programming - August, 2026</title>
<style>
#seven1 img { padding: 3 3 3 3; }
#seven2 img { padding: 3 3 3 3; }
#thstock img { padding: 3 3 3 3; }
</style>
<script type=text/javascript>

var sbutih1='', sbutih2='';
var firstplayeris=0, isplayer1go=false, isplayer2go=false;
var thetilearr=[], player1arr=[], player2arr=[], stockarr=[];
var sofara='', ij=0, was1ih='', was2ih='', hastohave=[];
var pip1cnt=0, pip2cnt=0, winner='', winerby=0, thescore1=0, thescore2=0;

function newgame() {
var huhask=confirm('Congratulations, ' + winner + '! You scored ' + winnerby + ' points. Yes starts a new game.');
if (huhask) {
location.href='./dominoes_block_game.html?score1=' + encodeURIComponent(document.getElementById('score1').innerHTML.replace('Score: ','')) + '&score2=' + encodeURIComponent(document.getElementById('score2').innerHTML.replace('Score: ','')) + '&name1=' + encodeURIComponent(document.getElementById('name1').innerHTML) + '&name2=' + encodeURIComponent(document.getElementById('name2').innerHTML);
}
}

function objoneit(oneoh) {
if (oneoh.indexOf('dominoes_') != -1) {
pip1cnt+=eval('' + oneoh.split('dominoes_')[1].split('_')[0]);
pip1cnt+=eval('' + oneoh.split('dominoes_')[1].split('_')[1].substring(0,1));
}
return oneoh;
}

function objtwoit(twooh) {
if (twooh.indexOf('dominoes_') != -1) {
pip2cnt+=eval('' + twooh.split('dominoes_')[1].split('_')[0]);
pip2cnt+=eval('' + twooh.split('dominoes_')[1].split('_')[1].substring(0,1));
}
return twooh;
}

function endgameone(oneih) {
var imgcnt=eval(-1 + oneih.split('<img').length);
var nonecnt=eval(-1 + oneih.split('none;').length);
if (eval(imgcnt - nonecnt) <= 0) {
document.getElementById('score1').innerHTML='Score: ' + eval(thescore1 + pip2cnt);
winner=document.getElementById('name1').innerHTML;
winnerby=pip2cnt;
setTimeout(newgame, 5000);
}
return oneih;
}

function endgametwo(twoih) {
var imgcnt=eval(-1 + twoih.split('<img').length);
var nonecnt=eval(-1 + twoih.split('none;').length);
if (eval(imgcnt - nonecnt) <= 0) {
document.getElementById('score2').innerHTML='Score: ' + eval(thescore2 + pip1cnt);
winner=document.getElementById('name2').innerHTML;
winnerby=pip1cnt;
setTimeout(newgame, 5000);
}
return twoih;
}

function goone(iobj) {
var klv=-1, krv=-1;
var mlv=-1, mrv=-1;
var wasthih=document.getElementById('thtop').innerHTML;
var atend=true, atstart=false, flipit=false;
if (iobj.id.indexOf('dominoes_') != -1) {
mlv=eval('' + iobj.id.split('dominoes_')[1].split('_')[0]);
mrv=eval('' + iobj.id.split('dominoes_')[1].split('_')[1].substring(0,1));
}
if (eval('' + hastohave.length) > 0) {
atend=false;
var huhs=document.getElementById('thtop').innerHTML.split('dominoes_');
for (var ikl=1; ikl<huhs.length; ikl++) {
if (!atstart && !atend) {
if (ikl > 1 && ikl < eval(-1 + huhs.length)) {
klv=-1;
krv=-1;
} else {
if (huhs[eval(-1 + ikl)].indexOf('(-1)') != -1) {
krv=eval('' + huhs[ikl].split('_')[0]);
klv=eval('' + huhs[ikl].split('_')[1].substring(0,1));
} else {
klv=eval('' + huhs[ikl].split('_')[0]);
krv=eval('' + huhs[ikl].split('_')[1].substring(0,1));
}
if (klv == mlv && ikl == eval(-1 + huhs.length)) {
if (('_' + huhs[ikl]).indexOf('_' + hastohave[1]) != -1) {
flipit=false;
atstart=false;
atend=true;
//alert('01:am not flipping' + ' ms are ' + mlv + '.' + mrv + ' ks are ' + klv + '.' + krv);
}
} else if (krv == mrv && ikl == eval(-1 + huhs.length)) {
if (('_' + huhs[ikl]).indexOf('_' + hastohave[1]) != -1) {
flipit=true;
atstart=false;
atend=true;
//alert('03:am flipping' + ' ms are ' + mlv + '.' + mrv + ' ks are ' + klv + '.' + krv);
}
} else if (klv == mrv && ikl == 1) {
if (('_' + huhs[ikl]).indexOf('_' + hastohave[0]) != -1) {
flipit=false;
atstart=true;
atend=false;
//alert('02:am not flipping' + ' ms are ' + mlv + '.' + mrv + ' ks are ' + klv + '.' + krv);
}
} else if (klv == mlv && ikl == 1) {
if (('_' + huhs[ikl]).indexOf('_' + hastohave[0]) != -1) {
flipit=true;
atstart=true;
atend=false;
//alert('04:am flipping' + ' ms are ' + mlv + '.' + mrv + ' ks are ' + klv + '.' + krv);
}
//} else {
// alert('one:' + ' ms are ' + mlv + '.' + mrv + ' ks are ' + klv + '.' + krv + ' hastohavee=' + hastohave[0] + ',' + hastohave[1]);
}
}
}
}
} else {
hastohave.push(mlv);
hastohave.push(mrv);
}
if (isplayer1go && (atend || atstart)) {
if (flipit && atend) {
hastohave[1]=mlv;
document.getElementById('thtop').innerHTML+=iobj.outerHTML.replace(' class="player1"', ' class="played"').replace(' id="', ' id="p').replace(' onclick="', ' data-onclick="').replace('filter:brightness(0);','').replace(' style="', ' style="transform:scaleX(-1);');
} else if (flipit) {
hastohave[0]=mrv;
document.getElementById('thtop').innerHTML=iobj.outerHTML.replace(' class="player1"', ' class="played"').replace(' id="', ' id="p').replace(' onclick="', ' data-onclick="').replace('filter:brightness(0);','').replace(' style="', ' style="transform:scaleX(-1);') + wasthih;
} else if (atstart) {
hastohave[0]=mlv;
document.getElementById('thtop').innerHTML=iobj.outerHTML.replace(' class="player1"', ' class="played"').replace(' id="', ' id="p').replace(' onclick="', ' data-onclick="').replace('filter:brightness(0);','') + wasthih;
} else {
hastohave[1]=mrv;
document.getElementById('thtop').innerHTML+=iobj.outerHTML.replace(' class="player1"', ' class="played"').replace(' id="', ' id="p').replace(' onclick="', ' data-onclick="').replace('filter:brightness(0);','');
}
iobj.style.display='none';
document.getElementById('buts2').innerHTML='<button id=reveal2>Click a Domino below or from Stock to continue ...</button>';
document.getElementById('buts1').innerHTML='<button id=reveal1>Please turn away now ...</button>';
was1ih=endgameone(document.getElementById('seven1').innerHTML);
was2ih=endgametwo(document.getElementById('seven2').innerHTML);
isplayer1go=false;
isplayer2go=false;
document.getElementById('seven1').innerHTML=was1ih.replace(/filter\:brightness\(0\)\;/g,'').replace(/\ style\=\"/g, ' style="filter:brightness(0);');
document.body.style.cursor='progress';
setTimeout(function(){
document.body.style.cursor='pointer';
isplayer2go=true;
document.getElementById('seven1').innerHTML=was1ih.replace(/filter\:brightness\(0\)\;/g,'').replace(/\ style\=\"/g, ' style="filter:brightness(0);');
document.getElementById('seven2').innerHTML=was2ih.replace(/filter\:brightness\(0\)\;/g,'');
}, 10000);
}
}

function gotwo(iobj) {
var klv=-1, krv=-1;
var mlv=-1, mrv=-1;
var atend=true, atstart=false, flipit=false;
var wasthih=document.getElementById('thtop').innerHTML;
var atend=true, atstart=false, flipit=false;
if (iobj.id.indexOf('dominoes_') != -1) {
mlv=eval('' + iobj.id.split('dominoes_')[1].split('_')[0]);
mrv=eval('' + iobj.id.split('dominoes_')[1].split('_')[1].substring(0,1));
}
if (eval('' + hastohave.length) > 0) {
atend=false;
var huhs=document.getElementById('thtop').innerHTML.split('dominoes_');
for (var ikl=1; ikl<huhs.length; ikl++) {
if (!atstart && !atend) {
if (ikl > 1 && ikl < eval(-1 + huhs.length)) {
klv=-1;
krv=-1;
} else {
if (huhs[eval(-1 + ikl)].indexOf('(-1)') != -1) {
krv=eval('' + huhs[ikl].split('_')[0]);
klv=eval('' + huhs[ikl].split('_')[1].substring(0,1));
} else {
klv=eval('' + huhs[ikl].split('_')[0]);
krv=eval('' + huhs[ikl].split('_')[1].substring(0,1));
}
if (klv == mlv && ikl == eval(-1 + huhs.length)) {
if (('_' + huhs[ikl]).indexOf('_' + hastohave[1]) != -1) {
flipit=false;
atstart=false;
atend=true;
//alert('1:am not flipping' + ' ms are ' + mlv + '.' + mrv + ' ks are ' + klv + '.' + krv);
}
} else if (krv == mrv && ikl == eval(-1 + huhs.length)) {
if (('_' + huhs[ikl]).indexOf('_' + hastohave[1]) != -1) {
flipit=true;
atstart=false;
atend=true;
//alert('3:am flipping' + ' ms are ' + mlv + '.' + mrv + ' ks are ' + klv + '.' + krv);
}
} else if (klv == mrv && ikl == 1) {
if (('_' + huhs[ikl]).indexOf('_' + hastohave[0]) != -1) {
flipit=false;
atstart=true;
atend=false;
//alert('2:am not flipping' + ' ms are ' + mlv + '.' + mrv + ' ks are ' + klv + '.' + krv);
}
} else if (klv == mlv && ikl == 1) {
if (('_' + huhs[ikl]).indexOf('_' + hastohave[0]) != -1) {
flipit=true;
atstart=true;
atend=false;
//alert('4:am flipping' + ' ms are ' + mlv + '.' + mrv + ' ks are ' + klv + '.' + krv);
}
//} else {
// alert('two:' + ' ms are ' + mlv + '.' + mrv + ' ks are ' + klv + '.' + krv + ' hastohave=' + hastohave[0] + ',' + hastohave[1]);
}
}
}
}
} else {
hastohave.push(mlv);
hastohave.push(mrv);
}
if (isplayer2go && (atend || atstart)) {
if (flipit && atend) {
hastohave[1]=mlv;
document.getElementById('thtop').innerHTML+=iobj.outerHTML.replace(' class="player2"', ' class="played"').replace(' id="', ' id="p').replace(' onclick="', ' data-onclick="').replace('filter:brightness(0);','').replace(' style="', ' style="transform:scaleX(-1);');
} else if (flipit) {
hastohave[0]=mrv;
document.getElementById('thtop').innerHTML=iobj.outerHTML.replace(' class="player2"', ' class="played"').replace(' id="', ' id="p').replace(' onclick="', ' data-onclick="').replace('filter:brightness(0);','').replace(' style="', ' style="transform:scaleX(-1);') + wasthih;
} else if (atstart) {
hastohave[0]=mlv;
document.getElementById('thtop').innerHTML=iobj.outerHTML.replace(' class="player2"', ' class="played"').replace(' id="', ' id="p').replace(' onclick="', ' data-onclick="').replace('filter:brightness(0);','') + wasthih;
} else {
hastohave[1]=mrv;
document.getElementById('thtop').innerHTML+=iobj.outerHTML.replace(' class="player2"', ' class="played"').replace(' id="', ' id="p').replace(' onclick="', ' data-onclick="').replace('filter:brightness(0);','');
}
iobj.style.display='none';
document.getElementById('buts1').innerHTML='<button id=reveal1>Click a Domino below or from Stock to continue ...</button>';
document.getElementById('buts2').innerHTML='<button id=reveal2>Please turn away now ...</button>';
was1ih=endgameone(document.getElementById('seven1').innerHTML);
was2ih=endgametwo(document.getElementById('seven2').innerHTML);
isplayer1go=false;
isplayer2go=false;
document.getElementById('seven2').innerHTML=was2ih.replace(/filter\:brightness\(0\)\;/g,'').replace(/\ style\=\"/g, ' style="filter:brightness(0);');
document.body.style.cursor='progress';
setTimeout(function(){
document.body.style.cursor='pointer';
isplayer1go=true;
document.getElementById('seven2').innerHTML=was2ih.replace(/filter\:brightness\(0\)\;/g,'').replace(/\ style\=\"/g, ' style="filter:brightness(0);');
document.getElementById('seven1').innerHTML=was1ih.replace(/filter\:brightness\(0\)\;/g,'');
}, 10000);
}
}

function gostock(iobj) {
if (isplayer1go) {
document.getElementById('seven1').innerHTML+=objoneit(iobj.outerHTML).replace(/filter\:brightness\(0\)\;/g,'').replace(' id="',' id="s').replace(' class="player2"', ' class="player2"').replace('gostock','gotwo');
iobj.style.display='none';
isplayer1go=false;
isplayer2go=false;
document.getElementById('buts2').innerHTML='<button id=reveal2>Click a Domino below or from Stock to continue ...</button>';
document.getElementById('buts1').innerHTML='<button id=reveal1>Please turn away now ...</button>';
was1ih=endgameone(document.getElementById('seven1').innerHTML);
was2ih=endgametwo(document.getElementById('seven2').innerHTML);
document.getElementById('seven1').innerHTML=was1ih.replace(/filter\:brightness\(0\)\;/g,'').replace(/\ style\=\"/g, ' style="filter:brightness(0);');
document.body.style.cursor='progress';
setTimeout(function(){
document.body.style.cursor='pointer';
isplayer2go=true;
document.getElementById('seven1').innerHTML=was1ih.replace(/filter\:brightness\(0\)\;/g,'').replace(/\ style\=\"/g, ' style="filter:brightness(0);');
document.getElementById('seven2').innerHTML=was2ih.replace(/filter\:brightness\(0\)\;/g,'');
}, 10000);
} else if (isplayer2go) {
document.getElementById('seven2').innerHTML+=objtwoit(iobj.outerHTML).replace(/filter\:brightness\(0\)\;/g,'').replace(' id="',' id="s').replace(' class="player2"', ' class="player2"').replace('gostock','gotwo');
iobj.style.display='none';
isplayer1go=false;
isplayer2go=false;
document.getElementById('buts1').innerHTML='<button id=reveal1>Click a Domino below or from Stock to continue ...</button>';
document.getElementById('buts2').innerHTML='<button id=reveal2>Please turn away now ...</button>';
was1ih=endgameone(document.getElementById('seven1').innerHTML);
was2ih=endgametwo(document.getElementById('seven2').innerHTML);
document.getElementById('seven2').innerHTML=was2ih.replace(/filter\:brightness\(0\)\;/g,'').replace(/\ style\=\"/g, ' style="filter:brightness(0);');
document.body.style.cursor='progress';
setTimeout(function(){
document.body.style.cursor='pointer';
isplayer1go=true;
document.getElementById('seven2').innerHTML=was2ih.replace(/filter\:brightness\(0\)\;/g,'').replace(/\ style\=\"/g, ' style="filter:brightness(0);');
document.getElementById('seven1').innerHTML=was1ih.replace(/filter\:brightness\(0\)\;/g,'');
}, 10000);
}
}

function reveal(obut) {
if (firstplayeris == 0) {
firstplayeris=eval(obut.id.replace('reveal',''));
if (firstplayeris == 1) {
isplayer1go=true;
isplayer2go=false;
document.getElementById(obut.id.replace('1','2')).innerHTML='Please turn away now ...';
document.getElementById('seven1').innerHTML='';
document.getElementById('seven2').innerHTML='';
document.body.style.cursor='progress';
setTimeout(function(){
document.body.style.cursor='pointer';
document.getElementById('buts1').innerHTML='<button id=reveal1>Click a Domino below to start ...</button>';
document.getElementById('buts2').innerHTML='<button id=reveal2>Please turn away now ...</button>';
for (ij=0; ij<player1arr.length; ij++) {
document.getElementById('seven1').innerHTML+='<img onclick="goone(this);" style=width:80px; class="player1" id="' + player1arr[ij] + '" src="' + player1arr[ij] + '.png"></img>';
}
for (ij=0; ij<player1arr.length; ij++) {
document.getElementById('seven2').innerHTML+='<img onclick="gotwo(this);" style=width:80px;filter:brightness(0); class="player2" id="' + player2arr[ij] + '" src="' + player2arr[ij] + '.png"></img>';
}
for (ij=0; ij<stockarr.length; ij++) {
document.getElementById('thstock').innerHTML+='<img onclick="gostock(this);" style=width:80px;filter:brightness(0); class="stock" id="' + stockarr[ij] + '" src="' + stockarr[ij] + '.png"></img>';
}
was1ih=endgameone(document.getElementById('seven1').innerHTML);
was2ih=endgametwo(document.getElementById('seven2').innerHTML);
}, 10000);
} else if (firstplayeris == 2) {
isplayer1go=false;
isplayer2go=true;
document.getElementById(obut.id.replace('2','1')).innerHTML='Please turn away now ...';
document.getElementById('seven1').innerHTML='';
document.getElementById('seven2').innerHTML='';
document.body.style.cursor='progress';
setTimeout(function(){
document.body.style.cursor='pointer';
document.getElementById('buts2').innerHTML='<button id=reveal2>Click a Domino below to start ...</button>';
document.getElementById('buts1').innerHTML='<button id=reveal1>Please turn away now ...</button>';
for (ij=0; ij<player1arr.length; ij++) {
document.getElementById('seven2').innerHTML+='<img onclick="gotwo(this);" style=width:80px; class="player2" id="' + player2arr[ij] + '" src="' + player2arr[ij] + '.png"></img>';
}
for (ij=0; ij<player1arr.length; ij++) {
document.getElementById('seven1').innerHTML+='<img onclick="goone(this);" style=width:80px;filter:brightness(0); class="player1" id="' + player1arr[ij] + '" src="' + player1arr[ij] + '.png"></img>';
}
for (ij=0; ij<stockarr.length; ij++) {
document.getElementById('thstock').innerHTML+='<img onclick="gostock(this);" style=width:80px;filter:brightness(0); class="stock" id="' + stockarr[ij] + '" src="' + stockarr[ij] + '.png"></img>';
}
was1ih=endgameone(document.getElementById('seven1').innerHTML);
was2ih=endgametwo(document.getElementById('seven2').innerHTML);
}, 10000);
}
}
}

function turnawaynotfrom(obut) {
if (obut.id.indexOf('1') != -1) {
document.getElementById(obut.id.replace('1','2')).innerHTML='Please turn away now ...';
obut.innerHTML='Reveal Your Dominoes Below ...';
} else if (obut.id.indexOf('2') != -1) {
document.getElementById(obut.id.replace('2','1')).innerHTML='Please turn away now ...';
obut.innerHTML='Reveal Your Dominoes Below ...';
}
}

function deal() {
var lv=0, rv=0;
thescore1=(location.search.split('score1=')[1] ? eval(location.search.split('score1=')[1].split('&')[0]) : 0);
thescore2=(location.search.split('score2=')[1] ? eval(location.search.split('score2=')[1].split('&')[0]) : 0);
document.getElementById('score1').innerHTML='Score: ' + thescore1;
document.getElementById('score2').innerHTML='Score: ' + thescore2;
document.getElementById('name1').innerHTML=(location.search.split('name1=')[1] ? decodeURIComponent(location.search.split('score1=')[1].split('&')[0]) : 'Player 1');
document.getElementById('name2').innerHTML=(location.search.split('name2=')[1] ? decodeURIComponent(location.search.split('score2=')[1].split('&')[0]) : 'Player 2');
sbutih1=document.getElementById('buts1').innerHTML;
sbutih2=document.getElementById('buts2').innerHTML;
lv=eval(-1 + Math.floor(Math.random() * 8));
rv=eval(-1 + Math.floor(Math.random() * 8));
var xz='dominoes_' + lv + '_' + rv;
while (eval('' + thetilearr.length) < 28) {
if (sofara.indexOf(';' + xz + ';') == -1 && rv >= lv && lv >= 0 && lv <= 6 && rv >= 0 && rv <= 6) {
thetilearr.push(xz);
if (eval('' + thetilearr.length) <= 7) {
pip1cnt+=lv;
pip1cnt+=rv;
player1arr.push(xz);
} else if (eval('' + thetilearr.length) <= 14) {
pip2cnt+=lv;
pip2cnt+=rv;
player2arr.push(xz);
} else {
stockarr.push(xz);
}
sofara+=';' + xz + ';';
}
lv=eval(-1 + Math.floor(Math.random() * 8));
rv=eval(-1 + Math.floor(Math.random() * 8));
xz='dominoes_' + lv + '_' + rv;
}
}

function nameone(ospan) {
document.getElementById('fone').innerHTML=ospan.innerText + ' In Play';
}


function nametwo(ospan) {
document.getElementById('ftwo').innerHTML=ospan.innerText + ' In Play';
}

</script>
</head>
<body onload=deal(); border=1 style="background:linear-gradient(rgba(255,255,255,0.97),rgba(255,255,255,0.97)),URL(dominoes.png);background-size:contain;">
<h1>Dominoes Horizontal Block Game</h1>
<h3>RJM Programming - August, 2026 ... thanks to <a target="_blank" href="//www.gettyimages.com.au/search/2/image?mediatype=illustration&phrase=playing+dominoes+clip+art" rel="noopener">this useful link</a></h3>
<h4><font color=red>Playing Area</font> ... <font color=blue>Stock</font>... <font color=purple id=fone>Player 1 In Play</font> ... <font color=green id=ftwo>Player 2 In Play</font></h4>
<table style=width:95%;height:78%; cellpadding=10>
<tr id=trtop style="height:40%;"><th id=thtop colspan=2 style="border:2px solid red;"></th></tr>
<tr id=trplayers style="height:10%;"><th id=thplayer1><span onblur=nameone(this); contenteditable=true id=name1>Player1</span> <span id=score1 style=font-size:8px;>Score: 0</span> <span id=buts1><button onmouseover="turnawaynotfrom(this);" onclick=reveal(this); id=reveal1>Reveal Your Dominoes Below ...</button></span></th><th id=thplayer2><span onblur=nametwo(this); contenteditable=true id=name2>Player2</span> <span id=score2 style=font-size:8px;>Score: 0</span> <span id=buts2><button onmouseover="turnawaynotfrom(this);" onclick=reveal(this); id=reveal2>Reveal Your Dominoes Below ...</button></span></th></tr>
<tr id=sevens style="height:20%;"><td id=seven1 style="border:2px solid purple;"></td><td id=seven2 style="border:2px solid green;"></td></tr>
<tr id=trstock style="height:30%;"><td id=thstock colspan=2 style="border:2px solid blue;"></th></tr>
</table>
<div id=dstyle></div>
</body>
</html>