Recent Changes · Search:

Functional Programming

Type Inference

Toss

  • (incorporates former Speagram)

Emacs

Kurs Pascala

Artificial General Intelligence

AI:

Algorithmic Game Theory: Prediction Markets (po polsku)

Programming in Java

kurs pracy w systemie Linux

Evolutionary Algorithms

Animation

Data Stores and Data Mining

Language Understanding

Systemy Inteligentnych Agentów

Przetwarzanie Języka Naturalnego

Programowanie Funkcjonalne

PmWiki

pmwiki.org

add user

edit SideBar

public class Simple {

public static int main(int Grid[][]) {

      int eval = 5;

      /* Cała tablica jest rozmiaru 8×8.
       * Maksymalne indeksy tablicy to Grid[7][7].
       *
       * Pionki białe mają wartość 1
       * przykład sprawdzenia
       * if(Grid[j][k] == 1)
       *
       * Damka pionków białych ma wartość 3
       * przykład sprawdzenia
       * if(Grid[j][k] == 3)
       *
       * Pionki czarne mają wartość 2
       * przykład sprawdzenia
       * if(Grid[j][k] == 2)
       *
       * Damka pionków czarnych ma wartość 4
       * przykład sprawdzenia
       * if(Grid[j][k] == 4)
       * */
      //Przykład
      int waga_pionka = 50;
      int waga_damki = 150;

      for (int j = 0; j < 8 ; j++)
      {
      for(int k = 0; k < 9; k++)
      {
      if(Grid[j][k] == 1)
           eval = eval + (waga_pionka * −1);
      if(Grid[j][k] == 2)
           eval = eval + (waga_pionka * 1);
      if(Grid[j][k] == 3)
           eval = eval + (waga_damki * −1);
      if(Grid[j][k] == 4)
           eval = eval + (waga_damki * +1);
      }
       }
      // zwraca wartość funkcji oceny pozycji
      return eval;
  }

}

Nazywam się Arkadiusz Stopa i jestem autorem apletu z warcabami, który jest realizowany w ramach kursu praca dyplomowa u Pana dr W. Paluszyńskiego. Poniżej znajduje się krótki opis wprowadzający w działanie aplikacji.

Aplet znajduje się na stronie: donyc.pop.e-wro.pl/checkers

Reguły gry: 1) Zwykłe pionki mogą się poruszać (i bić) tylko do przodu (dozwolone bicia podwójne, potrójne, itd.). 2) Damki mogą się poruszać (i bić) do przodu oraz do tyłu. 3) Damki nie mogą przeskakiwać o kilka pól. 4) Wygrywa gracz, który zbije wszystkie pionki przeciwnika. 5) W sytuacji gdy, ruch gracza zostanie zablokowany (sytuacja bez wyjścia), wygrywa przeciwnik. 6) W przypadku wykonania 60 ruchów bez bicia - remis (gra nierozstrzygnięta).

Wymagania: 1) JRE (Java Runtime Environment) i JDK (Java Development Kit) - obsługa polecenia ‘javac’ do kompilacji plików ‘.java’.

Interfejs użytkownika i uruchomienie gry: 1) Wybieramy tryb gry: ‘Manual’ - ręczne, ‘Function’ - wybrana funkcja z pola wyboru ‘Eval. function’. 2) Ustawiamy poziom zagłębienia przeszukiwania Min-Max w polu ‘Level’. 3) ‘Eval. function’: ‘implemented’ - funkcja zaszyta w kodzie (mało efektywna), ‘java’ - odblokowuje edytor po prawej stronie, w którym można wprowadzić funkcję napisaną w języku JAVA. Klasa musi się nazywać Simple i zawierać metodę ‘main’ typu ‘int’, która zwraca wartość int. ‘javaScript’ - odblokowuje edytor po prawej stronie, w którym można wprowadzić funkcję napisaną w języku JavaScript (na niektórych maszynach występuje błąd ‘acces denied’). 4) ‘Restart’ - uruchomienie algorytmu dla ustawionych parametrów. 5) Możliwa zmiana szybkości ‘Speed’, trybów animacji ‘Animation’ oraz trybów log (dziennika zdarzeń) - wyświetlanie i zapis. 6) ‘Open’ umożliwia wczytanie pliku tekstowego do edytora (funkcji oceny pozycji). 7) ‘Save As…’ pozwala na zapis funkcji z edytora.

Przykładowe ćwiczenia z apletem: 1) Ćwiczenie poglądowe. Ustawiamy P1 ‘Manual’ i P2 ‘Function’ z zaimplementowaną funkcją ‘Implemented’. Zmieniamy poziomy zagłębienia (3–5) i gramy przeciwko zaimplementowanej (przez autora) funkcji oceny pozycji. 2) Ustawiamy P1 ‘Manual’ i P2 ‘Function’ z ustawioną funkcją ‘java’. Wpisujemy kod funkcji oceny pozycji w edytorze. Klikamy na ‘Restart’ i gramy przeciwko utworzonej przez siebie funkcji. 3) Ustawiamy P1 ‘Function’ i P2 ‘Function’ z ustawioną funkcją ‘java’. Wpisujemy kod funkcji oceny pozycji w edytorze. Klikamy na ‘Restart’ i obserwujemy grę wpisanej funkcji z tą samą funkcją.

Błądy/braki w aplecie: 1) Brak kilku ‘testów’ - rozgrywki kilkukrotne dla danych funkcji. 2) Interpreter w javascript. Lokalnie chodzi, na sieci może występować ‘acces denied’. Mimo to proszę spróbować uruchomić algorytm (przycisk ‘Restart’). Jeżeli są inne komunikaty niż ‘acces denied’, to znaczy, że kompilator działa i pokazuje komunikat o błędzie w kodzie. 3) W laboratorium UNIX pojawił się błąd z wersją JRE (Java Runtime Environment), która zadecydowała o tym, że aplet nie chodził. Po skompilowaniu całej paczki w innej wersji JRE, błąd zniknął.

W przypadku ewentualnych zacięć apletu (podczas wykonywania algorytmu), proszę kliknąć na przycisk ‘Stop’ i ponownie kliknąć ‘Restart’. Jeżeli znana jest przyczyna (lub wyjątek z Javy, który można podejrzeć w ‘Java Console’), to bardzo proszę o odnotowanie jej.

Tak jak napisał Pan doktor Witold Paluszyński, aplet jest w wersji Beta, więc w razie problemów i niepowodzeń - proszę o wyrozumiałość.

Wszelkie uwagi i komentarze są mile widziane.

Z poważaniem

Arkadiusz Stopa

Edit · History · Print · Recent Changes · Search · Links
Page last modified on March 31, 2009, at 07:55 AM