Metodyka nauczania Informatyki

38
Metodyka nauczania Informatyki Budowanie algorytmów – algorytmy gier 1

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

Page 1: Metodyka nauczania Informatyki

Metodyka nauczania InformatykiBudowanie algorytmów – algorytmy gier

1

Page 2: Metodyka nauczania Informatyki

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

Page 3: Metodyka nauczania Informatyki

Algorytmy losowe

• Najprostsza implementacja– Tylko interfejs

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

3

Page 4: Metodyka nauczania Informatyki

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

Page 5: Metodyka nauczania Informatyki

Drzewo gry - przykład

5

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

Page 6: Metodyka nauczania Informatyki

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

Page 7: Metodyka nauczania Informatyki

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

Page 8: Metodyka nauczania Informatyki

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)

Page 9: Metodyka nauczania Informatyki

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

Page 10: Metodyka nauczania Informatyki

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

Page 11: Metodyka nauczania Informatyki

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

Page 12: Metodyka nauczania Informatyki

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

Page 13: Metodyka nauczania Informatyki

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

Page 14: Metodyka nauczania Informatyki

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

Page 15: Metodyka nauczania Informatyki

Algorytm z oceną sytuacji

Wartości czwórek(my gramy niebieskimi)

15

Page 16: Metodyka nauczania Informatyki

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

Page 17: Metodyka nauczania Informatyki

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

Page 18: Metodyka nauczania Informatyki

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

Page 19: Metodyka nauczania Informatyki

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

Page 20: Metodyka nauczania Informatyki

SIEĆ

20

Page 21: Metodyka nauczania Informatyki

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

Page 22: Metodyka nauczania Informatyki

KĄTY

22

Page 23: Metodyka nauczania Informatyki

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

Page 24: Metodyka nauczania Informatyki

Okręty podwodne

24

Page 25: Metodyka nauczania Informatyki

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

Page 26: Metodyka nauczania Informatyki

KAYLES

26

Page 27: Metodyka nauczania Informatyki

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

Page 28: Metodyka nauczania Informatyki

Obracanka Kościana

28

Page 29: Metodyka nauczania Informatyki

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

Page 30: Metodyka nauczania Informatyki

PODKOWA

30

Page 31: Metodyka nauczania Informatyki

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

Page 32: Metodyka nauczania Informatyki

Lis i gęsi

32

Page 33: Metodyka nauczania Informatyki

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

Page 34: Metodyka nauczania Informatyki

HEX

34

Page 35: Metodyka nauczania Informatyki

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

Page 36: Metodyka nauczania Informatyki

Cyfry

36

Page 37: Metodyka nauczania Informatyki

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

Page 38: Metodyka nauczania Informatyki

Ziemniaczki

38