Metodyka nauczania Informatyki

Post on 11-Jan-2016

47 views 0 download

description

Metodyka nauczania Informatyki. Budowanie algorytmów – algorytmy gier. Budowanie algorytmów gier. Algorytmy losowe Algorytmy z pełnym drzewem gry Algorytmy strategii Algorytmy uczące się na błędach Algorytmy uczące się od przeciwnika. Algorytmy losowe. Najprostsza implementacja - PowerPoint PPT Presentation

Transcript of Metodyka nauczania Informatyki

Metodyka nauczania InformatykiBudowanie algorytmów – algorytmy gier

1

Budowanie algorytmów gier

• Algorytmy losowe• Algorytmy z pełnym drzewem gry• Algorytmy strategii• Algorytmy uczące się na błędach• Algorytmy uczące się od przeciwnika

2

Algorytmy losowe

• Najprostsza implementacja– Tylko interfejs

• Dobre do testowania• Mało ciekawe rozgrywki, choć różnorodne

3

Algorytmy z drzewem gry

• Tylko dla prostych (mało ciekawych) gier• Wymagają rozpatrywania wszystkich

możliwych ruchów w każdej sytuacji• Implementacja wskazana tylko wtedy, gdy:– Drzewo można generować automatycznie– Można w inny sposób (np. rekurencyjny)

przeglądać całe drzewo gry

4

Drzewo gry - przykład

5

Pełne drzewo gry „Kółko i krzyżyk” ma 362880 węzłów!

Algorytmy strategii gry

• Algorytm, który pozwala „obliczyć” ruch na podstawie „sytuacji na planszy”

• Można to robić na dwa sposoby– Stosować obmyśloną strategię wygrywającą– Stosować algorytm oceny sytuacji i wybierać ruch,

który daje najgorszą sytuację przeciwnikowi, lub najlepszą nam po najlepszym (lub każdym) ruchu przeciwnika, …

6

Przykład algorytmu wygrywania • Gra: „Do 100”– Zasady gry• Początek: pierwszy gracz podaje liczbę całkowitą

dodatnią mniejszą od 10• Gracze na zmianę podają liczby naturalne, ale większe

od poprzedniej i większe nie więcej niż o 10• Wygrywa ten, kto pierwszy zgodnie z regułami powie

„100”

7

Przykład algorytmu wygrywania

• Przykład rozgrywki:

8

4 13 14 20 23 24 33 3742 49 58 59 60 67 73 7781 88 93 100 (wygrana)

Przykład algorytmu wygrywania

• Analiza ogólna rozgrywki (od tyłu):– Aby wygrać (powiedzieć 100) przeciwnik musi

powiedzieć: 99 lub 98 lub 97 lub … lub 90– Aby przeciwnik powiedział liczbę n z przedziału 89 < n <

100 to muszę powiedzieć 89– Abym mógł powiedzieć 89 to przeciwnik musi

powiedzieć liczbę n taką, że 78 < n < 89– Abym mógł powiedzieć 78 muszę powiedzieć 67– I dalej aby powiedzieć 67 muszę powiedzieć 56

wcześniej 45, 34, 23, 12, 1

9

Przykład algorytmu wygrywania

• Algorytm wygrywania:– Ja zaczynam

• Mówię (bez względu na to co mówi przeciwnik) po kolei liczby: 1, 12, 23, 34, 45, 56, 67, 78, 89 i 100

– Zaczyna przeciwnik• Staram się jak najszybciej powiedzieć jedną z liczb 1, 12, 23, 34,

45, 56, 67, 78, 89 i 100. • Gdy to się uda, dalej mówię kolejno następne liczby z tego ciągu• Gdy nie uda się powiedzieć jakiejś liczby z tego ciągu -

przegrałem

10

Algorytm z oceną sytuacji

• Założenia (jedno z dwóch):– Jest funkcja oceniająca sytuację – dla każdej sytuacji na „planszy”

funkcja daje liczbę. Im liczba wyższa tym sytuacja lepsza– Jest funkcja oceniająca dany ruch – dla każdego ruchu w danej

sytuacji funkcja daje liczbę. Im liczba wyższa tym to jest lepszy ruch

• Algorytm: – W pierwszym przypadku: symulujemy ruch i obliczamy ocenę

sytuacji. Wybieramy taki ruch, po którym ocena sytuacji jest najkorzystniejsza

– W drugim przypadku: wybieramy ruch z najwyższą oceną

11

Algorytm z oceną sytuacji

• Budowa funkcji oceniającej ruch– Szachy:

• Suma umownej wartości figur• Punkty za zajęcie środkowych pól szachownicy• Punkty za zabezpieczenie króla (trudno dostępny przez bierki

przeciwnika)• Punkty za rozwinięcie bierek (możliwość łatwego

przemieszczania, duże obszary szachowania, jak najmniej bierek związanych, ochrona jednych bierek przez inne)

12

Algorytm z oceną sytuacji

• Budowa funkcji oceniającej ruch– Gra: „Kółko i krzyżyk na kostce 4 x 4 x 4”• Gracze na zmianę stawiają kółko lub krzyżyk w

dowolnej wolnej komórce kostki 4 x 4 x 4 – są 64 komórki• Wygrywa ten, kto pierwszy ułoży linię (pionową,

poziomą lub ukośną w dowolnym kierunku) z 4 swoich znaków

13

Algorytm z oceną sytuacji

Dla każdej wolnej komórki obliczamy jej ocenę, jako potencjalnego miejsca na postawienie swojego pionka. Obliczamy sumę wartości czwórek przechodzących przez to pole.

14

Algorytm z oceną sytuacji

Wartości czwórek(my gramy niebieskimi)

15

Algorytmy uczące się

• Uczenie się na błędach– Zawsze ruchy wybierane losowo ze zbioru

dostępnych w danej sytuacji– Po przegranej usuwanie ostatniego ruchu ze

zbioru– Gdy zbiór dostępnych ruchów pusty to poddajemy

grą i usuwamy ostatni ruch

16

Algorytmy uczące się

• Uczenie się od człowieka– Na początku nie wie nic– Po przegranej pyta „Jak mogłem nie przegrać?”– Zapamiętuje odpowiedź jako przypadek

szczególny. Następnym razem w takiej samej sytuacji postąpi według tego wzorca.

– Od sposobu uczenia zależy jak szybko algorytm stanie się sprawny.

17

Przykłady gier

• Gry dla dwóch graczy• Proste gry planszowe• Gry za pomocą papieru i ołówka• Gry z małą liczbą rekwizytów

18

SIEĆ

• Pole gry: kwadrat 7x7• Ruch: – narysowanie wewnątrz kwadratu prostego odcinka (po

krawędziach kratek) o długości nie mniejszej niż 2 kratki zaczynającego i kończącego się na brzegu planszy lub na innej linii (nie może przecinać innych linii)

– Każdy gracz gra zawsze cały czas w tym samym kierunku (poziomo lub pionowo)

• Przegrywa ten kto nie może wykonać ruchu

19

SIEĆ

20

KĄTY

• Plansza– Kwadrat, którego dwa stykające się boki są czerwone, a pozostałe

dwa czarne.• Ruch

– Narysowanie w swoim kolorze kąta prostego o ramionach równoległych do boku kwadratu kończącego się na bokach o różnych kolorach

– Każdy gracz wykonuje 3 ruchy (na zmianę)• Wynik

– Punkty zdobywa gracz za każdy prostokątny obszar mający więcej boków w kolorze gracza

• Kto ma więcej punktów ten wygrywa

21

KĄTY

22

Okręty podwodne

• Plansza – 2 kwadraty 8x8 (pole własne i przeciwnika) oznaczone wokół kolejnymi

liczbami (od lewego górnego rogu zgodnie z ruchem wskazówek zegara)• Przygotowanie

– Na własnym polu zaznaczamy 4 własne okręty – cztery dowolnie wybrane pola

• Ruch– Strzał: podanie numeru pola wejścia „pocisku”– Odpowiedź: numer pola wyjścia:

• Gdy pocisk napotka okręt podwodny to wyjście 0• Gdy pocisk przechodzi obok okrętu to cofa się o jedno pole i skręca w lewo pod

kątem prostym (tyle razy ile trzeba)• Wygrana

– Gdy znamy rozkład okrętów przeciwnika

23

Okręty podwodne

24

KAYLES

• Plansza– Dwanaście patyczków w rzędzie– Między 1 a 2 patykiem większy odstęp

• Ruch– Wzięcie jednego lub dwóch patyków– Dwa można wziąć tylko gdy są bezpośrednio obok siebie

• Wygrana– Wzięcie ostatniego (lub dwóch ostatnich) patyka

25

KAYLES

26

Obracanka Kościana

• Rekwizyt: kostka do gry• Przygotowanie: rzut kostką – liczba oczek wyznacza

liczbę startową• Ruch– Przekręcenie kostki na sąsiednią ścianę– Dodanie do poprzedniej liczby liczby oczek na kostce

• Wygrana– Osiągnięcie (lub przekroczenie) umówionej liczby punktów

27

Obracanka Kościana

28

PODKOWA

• Plansza: – prostokąt bez jednego boku z przekątnymi (gra się na

wierzchołkach i przecięciu przekątnych)– po dwa pionki w dwóch kolorach (na rogach prostokąta)

• Ruch:– Przesunięcie własnego pionka na wolne pole

• Wygrana:– Przeciwnik nie może wykonać ruchu

29

PODKOWA

30

Lis i gęsi

• Plansza:– Krzyż złożony z 5 kwadratów z przekątnymi oraz liniami poziomymi i

pionowymi przez środki boków– Jeden pionek czarny (lis)– 13 pionków białych (gęsi)

• Ruch:– Jedno pole w dowolnym kierunku– Lis ma prawo bicia: przez przeskoczenie na wolne pole za zbijanym

pionkiem• Wygrana:

– Gęsi: zablokowanie lisa– Lis: zbicie tylu gęsi, że nie mogą go zablokować

31

Lis i gęsi

32

HEX

• Plansza– Specjalna: romb złożony z sześciokątów o boku 11 komórek– Boki równoległe w tym samym kolorze ale parami różne

kolory• Ruch – położenie pionka swojego koloru w dowolnej komórce

• Wygrana – Połączenie brzegów planszy w tym samym kolorze

33

HEX

34

Cyfry

• Plansza– Kwadrat 5x5

• Ruch– Wpisanie kolejnej liczby w kratkę (począwszy od 1) w tym samym

wierszu lub kolumnie co poprzednia liczba– Między poprzednią liczbą, a nową nie może być żadnej inne liczby

• Wygrana– Gdy przeciwnik nie może wykonać ruchu– Ostatnia wpisana liczba jest wynikiem punktowym zwycięzcy

35

Cyfry

36

Ziemniaczki

• Plansza– Symetryczna piramida kółek (1, 3, 5, 7, 9)

• Ruch– Zamalowanie jednego punktu– Gdy zamalujemy ostatni punkt z prostej (poziomej, pionowej, ukośnej)

to dostajemy tyle punktów ile kółek leży na tej prostej (tych prostych)

• Koniec gry– Gdy wszystkie punkty będą zamalowane– Wygrywa ten kto ma więcej punktów

37

Ziemniaczki

38