Script weergave schaakdiagrammen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Irene

Irene

17/02/2006 13:50:00
Quote Anchor link
Hallo,
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.
 
PHP hulp

PHP hulp

16/01/2025 14:44:18
 
Bart van der veen

bart van der veen

17/02/2006 14:08:00
Quote Anchor link
je kunt de schaakstelling uitsplitsen met string position. (postitie 1 2 3 enz. zie ook ff nl2.php.net) en dan met behulp van een tabel de boel indelen.

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
 
Martijn Wieringa

Martijn Wieringa

17/02/2006 15:29:00
Quote Anchor link
Javascript :)


<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;">&nbsp;</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;">
&nbsp;
</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>
 
Martijn Wieringa

Martijn Wieringa

17/02/2006 15:31:00
Quote Anchor link
Of anders: http://www.pholeron.nl/chess.html (Bestand -> opslaan als)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.