Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:dydaktyka:ggp:gdl [2016/04/27 08:51]
msl [4 Knowledge Interchange Format]
pl:dydaktyka:ggp:gdl [2019/06/27 15:50] (aktualna)
Linia 128: Linia 128:
 <code prolog> <code prolog>
 next(cell(M,​N,​x)) :- next(cell(M,​N,​x)) :-
-  does(kolko,mark(M,N)) &+  does(krzyzyk,mark(M,N)) &
   true(cell(M,​N,​b))   true(cell(M,​N,​b))
  
 next(cell(M,​N,​o)) :- next(cell(M,​N,​o)) :-
-  does(krzyzyk,mark(M,N)) &+  does(kolko,mark(M,N)) &
   true(cell(M,​N,​b))   true(cell(M,​N,​b))
  
Linia 140: Linia 140:
  
 next(cell(M,​N,​b)) :- next(cell(M,​N,​b)) :-
-  does(W,​mark(J,​K))+  does(W,​mark(J,​K)) ​&
   true(cell(M,​N,​b)) &   true(cell(M,​N,​b)) &
   distinct(M,​J)   distinct(M,​J)
Linia 157: Linia 157:
  
 Akcje te kolejno oznaczają: Akcje te kolejno oznaczają:
-  - jeżeli komórka jest pusta, a gracz kółko ją zaznaczył, to w kolejnej turze w tej komórce będzie kółko 
   - jeżeli komórka jest pusta, a gracz krzyżyk ją zaznaczył, to w kolejnej turze w tej komórce będzie krzyżyk   - jeżeli komórka jest pusta, a gracz krzyżyk ją zaznaczył, to w kolejnej turze w tej komórce będzie krzyżyk
 +  - jeżeli komórka jest pusta, a gracz kółko ją zaznaczył, to w kolejnej turze w tej komórce będzie kółko
   - jeżeli dana komórka nie była pusta (pomocniczy predykat ''​distinct''​ sprawdza tożsamość argumentów),​ to w kolejnej turze będzie miała te samą zawartość ​   - jeżeli dana komórka nie była pusta (pomocniczy predykat ''​distinct''​ sprawdza tożsamość argumentów),​ to w kolejnej turze będzie miała te samą zawartość ​
-  - jeżeli dana komórka była pusta, ale była komórką, która została zaznaczona, to w kolejnej turze też będzie pusta (aż dwie reguły!)+  - jeżeli dana komórka była pusta, ale nie była komórką, która została zaznaczona, to w kolejnej turze też będzie pusta (aż dwie reguły!)
   - jeżeli dana tura należała do kółka, to kolejna będzie należała do krzyżyka   - jeżeli dana tura należała do kółka, to kolejna będzie należała do krzyżyka
   - jeżeli dana tura należała do krzyżyka, to kolejna będzie należała do kółka   - jeżeli dana tura należała do krzyżyka, to kolejna będzie należała do kółka
Linia 180: Linia 180:
   true(cell(M,​3,​Z))   true(cell(M,​3,​Z))
  
-column(M,Z) :-+column(N,Z) :-
   true(cell(1,​N,​Z)) &   true(cell(1,​N,​Z)) &
   true(cell(2,​N,​Z)) &   true(cell(2,​N,​Z)) &
Linia 221: Linia 221:
  
 <code prolog> <code prolog>
-goal(kolko,100) :- line(x) & ~line(o) +goal(krzyzyk,100) :- line(x) & ~line(o)
-goal(kolko,​50) :- ~line(x) & ~line(o) +
-goal(kolko,​0) :- ~line(x) & line(o) +
- +
-goal(krzyzyk,​100) :- ~line(x) & line(o)+
 goal(krzyzyk,​50) :- ~line(x) & ~line(o) goal(krzyzyk,​50) :- ~line(x) & ~line(o)
-goal(krzyzyk,​0) :- line(x) & ~line(o)+goal(krzyzyk,0) :- ~line(x) & line(o) 
 + 
 +goal(kolko,​100) :- ~line(x) & line(o) 
 +goal(kolko,​50) :- ~line(x) & ~line(o) 
 +goal(kolko,0) :- line(x) & ~line(o)
 </​code>​ </​code>​
  
 Powyższe reguły mówią, że w przypadku zwycięstwa gracz dostaje całe 100 (tyle wygrać!), w przypadku remisu 50, a w przypadki porażki 0. Nie wiemy, co ta liczba symbolizuje,​ ale uznajmy, że są to ciasteczka, albo coś, czego nigdy nie za wiele. ​ Powyższe reguły mówią, że w przypadku zwycięstwa gracz dostaje całe 100 (tyle wygrać!), w przypadku remisu 50, a w przypadki porażki 0. Nie wiemy, co ta liczba symbolizuje,​ ale uznajmy, że są to ciasteczka, albo coś, czego nigdy nie za wiele. ​
  
-W GDL nie ma arytmetyki --- liczby nie różnią się niczym od innych stałych. ​Co gorsza, jest ich tyle, co kot napłakał +<WRAP center round tip 60%> 
 +W GDL nie ma arytmetyki --- liczby nie różnią się niczym od innych stałych. ​Stosowane są głównie do zliczania kroków oraz rozdawania nagród. 
 +</​WRAP>​
  
  
Linia 357: Linia 359:
 Przepisz modele '​kólka i krzyżyka',​ '​krzyżyka i krzyżyka'​ oraz '​papier,​ kamień, nożyce, spocka i jaszczurki'​ do postaci KIF. Przepisz modele '​kólka i krzyżyka',​ '​krzyżyka i krzyżyka'​ oraz '​papier,​ kamień, nożyce, spocka i jaszczurki'​ do postaci KIF.
  
-===== - Walidacja ​i uruchamianie ​modeli =====+===== - Walidacja modeli =====
  
 <WRAP center round tip 60%> <WRAP center round tip 60%>
Linia 366: Linia 368:
   * ''​File -> Import Project''​   * ''​File -> Import Project''​
   * Wybrać opcję importowania z repozytorium git   * Wybrać opcję importowania z repozytorium git
 +    * Jeżeli tej opcji nie ma (Eclipse jest za stare), to trzeba ręcznie sklonować repo i zaimportować projekt z katalogu. Reszta tutejszej instrukcji nie ma sensu FIXME
   * Wybrać opcję klonowania z zewnętrznego URI   * Wybrać opcję klonowania z zewnętrznego URI
   * Wpisać URI: ''​https://​github.com/​ggp-org/​ggp-base.git''​   * Wpisać URI: ''​https://​github.com/​ggp-org/​ggp-base.git''​
Linia 372: Linia 375:
   * Wybrać projekt ''​ggp-base''​ do zaimportowania   * Wybrać projekt ''​ggp-base''​ do zaimportowania
  
-==== Dodanie gier do środowiska ====+==== Dodanie gier do środowiska ====
  
 W katalogu projektu proszę dostać się do ścieżki ''​games/​games''​ i stworzyć tam trzy katalogi ''​kolko-krzyzyk'',​ ''​krzyzyk-krzyzyk''​ i ''​spock''​. Każdy katalog powinien zawierać dwa pliki: ​ W katalogu projektu proszę dostać się do ścieżki ''​games/​games''​ i stworzyć tam trzy katalogi ''​kolko-krzyzyk'',​ ''​krzyzyk-krzyzyk''​ i ''​spock''​. Każdy katalog powinien zawierać dwa pliki: ​
Linia 384: Linia 387:
 } }
 </​code>​ </​code>​
 +
 +==== - Walidacja gier ====
 +
 +Z poziomu Eclipse proszę uruchomić aplikację ''​Validator''​ (rozwijana lista przy guziki ''​play''​).
 +
 +''​Validator'',​ jak sama nazwa wskazuje, ma na celu sprawdzenie,​ czy dany model jest prawidłowym modelem GDL. 
 +
 +=== Ćwiczenia ===
 +
 +  - W polu ''​Repository''​ wybrać ''​Local Game Repository''​
 +  - W polu ''​Game''​ wybrać ''​Tic-Tac-Toe''​
 +  - Wciśnąć przycisk ''​Validate''​ --- program powinien pokazać same sukcesy
 +  - Powtórzyć to samo dla własnych modeli
 +  - Poprawić własne modele
 +  - Zdobyć kolejne sukcesy.
 +
 +
 +
 +===== - Zabawa =====
 +
 +Z poziomu Eclipse proszę uruchomić aplikację ''​Kiosk''​ (rozwijana lista przy guziki ''​play''​). ​
 +
 +=== Ćwiczenia ===
 +
 +  - W polu ''​Opponent''​ proszę wybrać ''​SimpleMonteCarloPlayer''​
 +  - Wybrać jakąś znajomą grę 
 +  - Wygrać!
 +
 +{{ :​pl:​dydaktyka:​ggp:​have-fun.jpg?​400 |}}
 +
pl/dydaktyka/ggp/gdl.1461739915.txt.gz · ostatnio zmienione: 2019/06/27 15:52 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0