Dobrý den,
ve čtyř-směré šachové sestavě lze provést rošádu tahem z krále na věž, či z věže na krále. Dává to 16 možností.
if (selected.X == 0 && selected.Y == 0)
{
if (target.Y == 0)
{
selected.X = 2;
target.X = 1;
}
else
{
selected.Y = 2;
target.Y = 1;
}
}
if (target.X == 0 && target.Y == 0)
{
if (selected.Y == 0)
{
selected.X = 2;
target.X = 1;
}
else
{
selected.Y = 2;
target.Y = 1;
}
}
if (selected.X == 0 && selected.Y == 7)
{
if (target.Y == 7)
{
selected.X = 2;
target.X = 1;
}
else
{
selected.Y = 5;
target.Y = 6;
}
}
if (target.X == 0 && target.Y == 7)
{
if (selected.Y == 7)
{
selected.X = 2;
target.X = 1;
}
else
{
selected.Y = 5;
target.Y = 6;
}
}
if (selected.X == 7 && selected.Y == 7)
{
if (target.Y == 7)
{
selected.X = 5;
target.X = 6;
}
else
{
selected.Y = 5;
target.Y = 6;
}
}
if (target.X == 7 && target.Y == 7)
{
if (selected.Y == 7)
{
selected.X = 5;
target.X = 6;
}
else
{
selected.Y = 5;
target.Y = 6;
}
}
if (selected.X == 7 && selected.Y == 0)
{
if (target.Y == 0)
{
selected.X = 5;
target.X = 6;
}
else
{
selected.Y = 2;
target.Y = 1;
}
}
if (target.X == 7 && target.Y == 0)
{
if (selected.Y == 0)
{
selected.X = 5;
target.X = 6;
}
else
{
selected.Y = 2;
target.Y = 1;
}
}
Nemohu přijít na nic, čím bych podmínky sloučil - vždy pak něco nefunguje... selected i target mohou být králem i věží. (Právě ona obojakost rošády.) Z každého rohu to vede buď směrem nahoru, anebo dolů. Tak šustruji rohy a řídím se pozicí krále. Poněvadž nevím kdo je kdo, tak musím obě figurky otestovat na možnost kralování. Ano, nastavení oněch 2 proměnných by se dalo hodit do metody - já bych chtěl spojit podmínky...