Goniec na szachownicy

0

Mam ciekawostke. Może ktoś chce ją rozwiązać. Zapraszam i prosze o wstawianie waszych pomysłów na rozwiązanie...

"Pola szachownicy można ponumerować od 0 do 63 w następujący sposób. Numerujemy od pola A1 (lewy dół) przesuwając się w prawo aż do pola H1 (prawy dół). Wiersz 1 otrzymał więc numery od 0 do 7. Następnie przechodzimy do wiersza 2 i numerujemy od lewej do prawej przyznając numery 8-15. Postępujemy analogicznie z kolejnymi wierszami. Ostatni wiersz bedzie miał numery 56-63, a ostatnie pole H8 numer 63. Napisz program podający wszystkie pola szachownicy, na które może ruszyć się goniec stojący na zadanym (wczytanym z klawiatury) polu. Goniec porusza się po przekątnych. Zakładamy, że na szachownicy nie ma żadnych innych figur ograniczajacych ruch gracza"

Moim pomysłem jest potrakotwanie ruchu jako ukladu wspolzednych. (+-x,+-y)
mozliwy ruch - +1,+1; +1,-1; -1,-1; -1,+1. JEszcze nie mam algorytmu ale jak zrobie to wstawie. Ciekawi mnie jak wy podejdziecie do tematu i jakie będą wasze algorytmy...

0

Ambitny problem, he, he. :D

0
he napisał(a)

Ambitny problem, he, he. :D

też tak sądze :D

a nie prościej po prostu wczytać te wsp. i potem w pętli (kilku, to już sam wymyśl) (zakładamy, że dostępne pola to w pionie 1..8 w poziomie 1..8) robi tak

var
  ax, ay: Byte; //podane wsp.
begin
  while (x > 0) and (y > 0) do
  begin
    WriteLn('x: ', x, ' y: ', y);
    Dec(x);
    Dec(y);
  end;
end;

to podaje pola (razem z tym na którym stoi) od aktualnego do najdalszego lewego górnego. Bez tablic i mieszania

0

MisiekD pokazał sposób łatwy i nie wymagający dużego kombinowania. Wystardczy tylko zastosować procedury Dec i Inc i problem sam sie rozwiązuje. Jak czytam Twój pomysł (młody_początkujący) to wydaje mi się, że mniej więcej to miałeś na myśli... ale moge się mylić....

0

Do rady MiskaD nic dodac nic ująć. Jesli bawi cię proramowanei i rozwiązywanie tego typu zadać - poelcam język programowania: Prolog. Idealnie nadaje się do tego typu kombinacji, co więcej program w nim będzie o wiele krótszy niż w Pascalu. Inna sprawa że to bardzo nietypowy język.

0

Nie bardzo kapuje "var" czemu tam jest ax i ay a nie po prostu x i y.... może tak być powinno, jeżeli tak to czy ktoś może mi to wyjaśnić?

0
młody_początkujący napisał(a)

Nie bardzo kapuje "var" czemu tam jest ax i ay a nie po prostu x i y.... może tak być powinno, jeżeli tak to czy ktoś może mi to wyjaśnić?

bo pewnie myślałem o czymś innym :P

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.