Script weergave schaakdiagrammen
Is er toevallig iemand die mij met de volgende vraag kan helpen:
Stel, ik heb een schaakstelling in gewone notatievorm. Bij voorbeeld in
de vorm: Ke1, Th1, Ta1, ...
Ik zou graag die stelling in een schaakdiagram weergeven.
Een schaakdiagram is een weergave van het schaakbord, een matrix van 8 bij 8 vakjes. De kolommen zijn genaamd A B C .. De rijen hebben een nummer: 1 2 .. Dan houdt Ke1 in dat op vakje E1 een plaatje van een koningin staat.
of je kunt alle schaakstukken in een database kieperen (eventueel met update de positie bijwerken) en dan in een tabel de data base vergelijken. met een for loop en een query.
kijk maar of je er wat mee kunt
<html>
<head>
<script type="text/javascript">
function reload()
{
/*
Author: ME Wieringa
Email: [email protected]
*/
// Definieer variabelen
var HTML, s, stukken, veld;
HTML = '';
s = replace(document.getElementById('stukken').value, ' ', '');
stukken = s.split(',');
veld = new Array(8);
// Definieer een leeg schaakbord
for(var i = 0; i < 8; i++)
{
veld = new Array(8);
for(var j = 0; j < 8; j++)
{
veld[j] = '';
}
}
// Plaats de opgegeven stukken op de juiste plek
for(var i = 0; i < stukken.length; i++)
{
var stuk = stukken;
if(stuk.match('[a-zA-Z][a-hA-H][1-8]'))
{
var naam = stuk.substr(0, 1);
var kolom_tmp = stuk.substr(1, 1);
var kolom = letterNaarCijfer(kolom_tmp);
var rij_tmp = parseInt(stuk.substr(2, 1));
var rij = rij_tmp - 1;
veld[rij][kolom] = naam;
}
else
{
alert('Het stuk/positie "' + stuk + '" is ongeldig.');
return false;
}
}
// Weergeven van schaakbord
HTML += '<table border="0" cellpadding="3" cellspacing="0">';
HTML += '<tr>';
for(var i = 0; i < 8; i++)
{
for(var j = 0; j < 8; j++)
{
if(((i % 2) + j) % 2)
{
color = '#A0A0A0';
}
else
{
color = '#F0F0F0';
}
if(veld[j] == '')
{
HTML += '<td style="background: ' + color + '; height: 23px; width: 23px;"> </td>';
}
else
{
HTML += '<td style="background: ' + color + '; height: 23px; width: 23px;">' + veld[j] + '</td>';
}
}
if(i < 7)
{
HTML += '</tr><tr>';
}
}
HTML += '</tr>';
HTML += '</table>';
document.getElementById('schaakbord').innerHTML = HTML;
}
function letterNaarCijfer(letter)
{
switch(letter)
{
case 'a' : return 0;
case 'b' : return 1;
case 'c' : return 2;
case 'd' : return 3;
case 'e' : return 4;
case 'f' : return 5;
case 'g' : return 6;
case 'h' : return 7;
}
return -1;
}
function replace(string, search, replace)
{
var index = -1;
while((index = string.indexOf(search)) > -1)
{
string = '' + string.substring(0, index) + replace + string.substring((index + search.length), string.length);
}
return string;
}
</script>
</head>
<body>
<div id="schaakbord" style="height: 250; width: 250;">
</div>
<textarea id="stukken">Ta1, Pa2, La3, Da4, Ka5, La6, Pa7, Ta8, pb1, pb2, pb3, pb4, pb5, pb6, pb7, pb8, pg1, pg2, pg3, pg4, pg5, pg6, pg7, pg8, Th1, Ph2, Lh3, Dh4, Kh5, Lh6, Ph7, Th8</textarea>
<input onclick="javascript: reload();" type="button" value="Laad schaakbord" />
</body>
</html>
http://www.pholeron.nl/chess.html (Bestand -> opslaan als)
Of anders: