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

SI.Warcaby History

Hide minor edits - Show changes to output

March 31, 2009, at 07:55 AM by lukstafi - funkcja
Added lines 1-49:
public class Simple
{

public static int main(int Grid[][])
{
      int eval = 5;

      /* Cała tablica jest rozmiaru 8x8.
        * 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&#347;&#263; funkcji oceny pozycji
      return eval;
  }
}

Changed lines 52-53 from:
Poni&#380;ej znajduje si&#281; kr&#243;tki opis wprowadzaj&#261;cy w działanie aplikacji.
to:
Poni&#380;ej znajduje si&#281; kr&#243;tki opis wprowadzaj&#261;cy w dzia&#322;anie aplikacji.
Changed line 58 from:
1) Zwykłe pionki mog&#261; si&#281; porusza&#263; (i bi&#263;) tylko do przodu (dozwolone bicia podw&#243;jne, potr&#243;jne, itd.).
to:
1) Zwyk&#322;e pionki mog&#261; si&#281; porusza&#263; (i bi&#263;) tylko do przodu (dozwolone bicia podw&#243;jne, potr&#243;jne, itd.).
Changed lines 98-99 from:
Tak jak napisał Pan doktor Witold Paluszy&#324;ski, aplet jest w wersji Beta, wi&#281;c w razie problem&#243;w i niepowodze&#324; - prosz&#281; o wyrozumiało&#347;&#263;.
to:
Tak jak napisa&#322; Pan doktor Witold Paluszy&#324;ski, aplet jest w wersji Beta, wi&#281;c w razie problem&#243;w i niepowodze&#324; - prosz&#281; o wyrozumia&#322;o&#347;&#263;.
March 31, 2009, at 07:47 AM by lukstafi - list Arkadiusza
Added lines 1-55:
Nazywam si&#281; Arkadiusz Stopa i jestem autorem apletu z warcabami,
kt&#243;ry jest realizowany w ramach kursu praca dyplomowa u Pana dr W. Paluszy&#324;skiego.
Poni&#380;ej znajduje si&#281; kr&#243;tki opis wprowadzaj&#261;cy w działanie aplikacji.

Aplet znajduje si&#281; na stronie:
donyc.pop.e-wro.pl/checkers

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

Wymagania:
1) JRE (Java Runtime Environment) i JDK (Java Development Kit) - obsługa polecenia 'javac' do kompilacji plik&#243;w '.java'.

Interfejs u&#380;ytkownika i uruchomienie gry:
1) Wybieramy tryb gry: 'Manual' - r&#281;czne, 'Function' - wybrana funkcja z pola wyboru 'Eval. function'.
2) Ustawiamy poziom zagł&#281;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&#243;rym mo&#380;na wprowadzi&#263; funkcj&#281; napisan&#261; w j&#281;zyku JAVA. Klasa musi si&#281; nazywa&#263; Simple i zawiera&#263; metod&#281; 'main' typu 'int', kt&#243;ra zwraca warto&#347;&#263; int.
'javaScript' - odblokowuje edytor po prawej stronie, w kt&#243;rym mo&#380;na wprowadzi&#263; funkcj&#281; napisan&#261; w j&#281;zyku JavaScript (na niekt&#243;rych maszynach wyst&#281;puje bł&#261;d 'acces denied').
4) 'Restart' - uruchomienie algorytmu dla ustawionych parametr&#243;w.
5) Mo&#380;liwa zmiana szybko&#347;ci 'Speed', tryb&#243;w animacji 'Animation' oraz tryb&#243;w log (dziennika zdarze&#324;) - wy&#347;wietlanie i zapis.
6) 'Open' umo&#380;liwia wczytanie pliku tekstowego do edytora (funkcji oceny pozycji).
7) 'Save As...' pozwala na zapis funkcji z edytora.

Przykładowe &#263;wiczenia z apletem:
1) &#262;wiczenie pogl&#261;dowe. Ustawiamy P1 'Manual' i P2 'Function' z zaimplementowan&#261; funkcj&#261; 'Implemented'.
Zmieniamy poziomy zagł&#281;bienia (3-5) i gramy przeciwko zaimplementowanej (przez autora)
funkcji oceny pozycji.
2) Ustawiamy P1 'Manual' i P2 'Function' z ustawion&#261; funkcj&#261; '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&#261; funkcj&#261; 'java'. Wpisujemy kod funkcji oceny pozycji w edytorze.
Klikamy na 'Restart' i obserwujemy gr&#281; wpisanej funkcji z t&#261; sam&#261; funkcj&#261;.

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

W przypadku ewentualnych zaci&#281;&#263; apletu (podczas wykonywania algorytmu), prosz&#281; klikn&#261;&#263; na przycisk 'Stop' i ponownie klikn&#261;&#263; 'Restart'.
Je&#380;eli znana jest przyczyna (lub wyj&#261;tek z Javy, kt&#243;ry mo&#380;na podejrze&#263; w 'Java Console'), to bardzo prosz&#281; o odnotowanie jej.

Tak jak napisał Pan doktor Witold Paluszy&#324;ski, aplet jest w wersji Beta, wi&#281;c w razie problem&#243;w i niepowodze&#324; - prosz&#281; o wyrozumiało&#347;&#263;.

Wszelkie uwagi i komentarze s&#261; mile widziane.

Z powa&#380;aniem

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