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:31]
msl [4 Knowledge Interchange Format]
pl:dydaktyka:ggp:gdl [2016/05/10 14:01]
msl [Kryterium zwycięstwa]
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 355: Linia 357:
 === - Zad 4 === === - Zad 4 ===
  
-Przepisz modele '​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 modeli ===== 
 + 
 +<WRAP center round tip 60%> 
 +Poniższe instrukcje przygotowane są z myślą o laboratorium C2 316, gdzie każdy komputer ma Eclipse. 
 +</​WRAP>​ 
 + 
 +Proszę uruchomić Eclipse i następnie:​ 
 +  * ''​File -> Import Project''​ 
 +  * 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 
 +  * Wpisać URI: ''​https://​github.com/​ggp-org/​ggp-base.git''​ 
 +  * Wybrać gałąź ''​master''​ 
 +  * Wybrać jakiś //​rozsądny//​ katalog dla projektu 
 +  * Wybrać projekt ''​ggp-base''​ do zaimportowania 
 + 
 +==== - 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:  
 +  * plik ''​.kif''​ z modelem gry 
 +  * plik ''​METADATA''​ z zawartością:​ 
 + 
 +<code javascript>​ 
 +
 +  "​gameName":​ "<​nazwa gry>", ​  
 +  "​rulesheet":​ "<​nazwa pliku kif>"​ 
 +
 +</​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.txt · ostatnio zmienione: 2019/06/27 15:50 (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