Zasady gry w szachy - interface

0

Witajcie,
mam problem z zaimplementowania programy pt Zasady gry w szachy, czy zechciałby ktoś pomóc amatorowi ?Smile

Poniżej zamieszczam treść zadania:

W interfejsie ZasadyGry prosze utworzyc dwie klasy wewnetrzne Konik oraz Hetman implementujace ten interfejs. Klasy maja weryfikowac poprawnosc proponowanego ruchu zgodnie z zasadami obowiazujacymi w szachach.

interface ZasadyGry {
/** Metoda zwraca true, tylko gdy przejscie z polozenia
    (x_pocz, y_pocz) na (x_konc, y_konc) w jednym ruchu jest zgodne
    z zasadami gry w szachy */
   boolean ruchPoprawny( int x_pocz, int y_pocz, int x_konc, int y_konc );

   class Konik implements ZasadyGry {
      public boolean ruchPoprawny( int x_pocz, int y_pocz, int x_konc, int y_konc ) {
         return true;  // tu brak kodu
      }
   }   

   class Hetman implements ZasadyGry {
      public boolean ruchPoprawny( int x_pocz, int y_pocz, int x_konc, int y_konc ) {
         return true;  // tu brak kodu
      }
   }
}

Z góry dziękuje za pomoc !Smile Należy uzupełnić podany fragment w miejscu "tu brak kodu"

Pozdrawiam !!Smile

0

W czym masz problem?
Nie znasz Javy, czy szachów?
http://pl.wikipedia.org/wiki/[...]gry_w_szachy#Podstawowe_ruchy

0

Problem leży po stronie JAVY, niestety nie wiem od czego zacząć :)

0

Najpierw połóż przed sobą szachownicę i napisz sobie na kartce algorytmy obliczające czy pole docelowe jest prawidłowe dla danej bierki czy nie. To w sumie parę zdań typu "jeżeli x to y" i trochę arytmetyki do przeliczania współrzędnych. A potem przepisz to do Javy.

BTW, treść zadania też jakaś ułomna, koniki to są polne.

0

Metody ruchPoprawny(...) mają działać na pustej szachownicy, czy mają uwzględniać inne stojące na szachownicy figury.

0

Mają działać na pustej szachownicy :)

0

Dla skoczka (zakładam, że współrzędne są od 1 do 8):

class Skoczek implements ZasadyGry 
{
      public boolean ruchPoprawny( int x_pocz, int y_pocz, int x_konc, int y_konc ) 
      {
           //nie wiem czy jest to wymagane - sprawdzam czy skoczek przed ruchem stoi na szachownicy
           if(x_pocz<1 || x_pocz>8 || y_pocz<1 || y_pocz>8)
           {
                return false;
           }
           //sprawdzam czy skoczek po ruchu stoi na szachownicy
           if(x_konc<1 || x_konc>8 || y_konc<1 || y_konc>8)
           {
                return false;
           }
           //podczas ruchu skoczka jedna współrzędna zmienia się o 2, a druga o 1
           if(Math.abs(x_pocz-x_konc)==1 && Math.abs(y_pocz-y_konc)==2)
           {
                return true;
           }
           if(Math.abs(x_pocz-x_konc)==2 && Math.abs(y_pocz-y_konc)==1)
           {
                return true;
           }
           return false;
      }
   }  
0

Bardzo Ci dziękuje za implementację konika, a czy byłbyś w stanie stworzyć jeszcze Hetmana, z góry dziękuje :)

6

Byłbym, ale nie chcę Ci odbierać satysfakcji z samodzielnie zrobionego zadania.

2

Bardzo Ci dziękuje za implementację konika, a czy byłbyś w stanie stworzyć jeszcze Hetmana, z góry dziękuje

Napisz w dziale praca, tam ci chętnie pomogą. Bo widać że to pytanie nie jest prośbą o pomoc a prośbą o odwalenie roboty.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0