Skocz do zawartości

Zablokowane Szachy dla dwóch


Jaklub

Rekomendowane odpowiedzi

Bah, szachy to trudna dziedzina. Zrobienie takowych dla dwóch może być prostsze dużo, bo nie trzeba robić AI które miałoby przewidzieć każdy ruch i znaleźć najprostszą drogę. Myślę, że tu wystarczyłby prosty algorytm, patrząc na to, że szachownica wygląda mniej więcej tak (daję orientacyjnie, ilość pól jest przypadkowa, bo nigdy nie pamiętałem zasad szach do końca): ($ - pole czarne; % - pole białe; minusy i _ dałem specjalnie, żeby była jako taka, równa odległość)

_1-_2-_3_4_5-_6_7-_8-_9_10

A$_%_$_%_$_%_$_%_$_%

B%_$_%_$_%_$_%_$_%_$

C$_%_$_%_$_%_$_%_$_%

D%_$_%_$_%_$_%_$_%_$

E$_%_$_%_$_%_$_%_$_%

F%_$_%_$_%_$_%_$_%_$

G$_%_$_%_$_%_$_%_$_%

H%_$_%_$_%_$_%_$_%_$

I$_%_$_%_$_%_$_%_$_%

J%_$_%_$_%_$_%_$_%_$

Teraz tylko zrobić algorytm, że np. pionek może zrobić ruch z I4 na H4. Oczywiście, dla GM będzie prościej jak opiszemy cyframi szachownicę. Wtedy robimy skrypt, sprawdzający możliwości ruchu, np. pionka. Można to tak zrobić, że jedyne dopuszczalne ruchy dla pionka, to

szachownica_y+1,szachownica_x or szachownica_y+2,szachownica_x

Jednak są to już wyższe sfery i nie polecam początkującym.

 

Jeżeli by to kogoś interesowało, to mam gdzieś na komputerze program, z algorytmem obliczającym, jakie ruchy musiałby zrobić skoczek, aby zapełnić całą szachownicę. Niestety, jest to na Pascala, ale jak coś, to mogę go dać.

Odnośnik do komentarza
Udostępnij na innych stronach

Dużo wygodniejsze przechowywanie danych o pozycji pionków zapewnie. W tablicy dwuwymiarowej każde pole jest oznaczone dwoma liczbami, podobnie jak pole na szachownicy. Wystarczy w tej tablicy dokonywać zmian ruchów pionkiem i według niej ustawiać piony odpowiednio w grze.

Oni mają racje, to wyjątkowo trudne. A AI komputerowego przeciwnika jeszcze trudniejsze. Możesz co najwyżej spróbować zrobić warcaby, ale to też niełatwe.

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki za pomoc. :D

 

Rozumiem, że mam zrobić to tak:

 

Jeśli koń stoi w pozycji B8 ma variable tak:

if xnaplanszy='B' and ynaplanszy=8

{

x=64

y=288

}

(Bo początek szachownicy jest na x 32 i na y 64)

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...