Witam i witam ponownie.
W tym wykładzie chcę dać ci kolejne wyzwanie.
Jest to związane z funkcjami, ale to wyzwanie będzie bardziej
polegało na dzieleniu i zwyciężaniu. To idzie aby bardziej skupić się na
organizowaniu programu wokół modułów, to się dzieje więcej o rozwiązywaniu problemów.
Chcę, żebyś zrobił, to ja chcę napisać grę w kółko i krzyżyk.
To ci po prostu pomoże stań się lepszym narzędziem do
rozwiązywania problemów, a to pomoże ci się zorganizować Twój program wokół funkcji.
Będziesz także wykorzystywał tablicę, będziesz
musiał obliczyć dowiedzieć się, jak sformatować określone dane, ale
będzie to plik symulacja gry w kółko i krzyżyk.
Nie będziemy pisać komputera.
To będzie gracz 1 kontra gracz 2.
Więc chcę, żebyś napisał program grający w kółko i krzyżyk.
Miejmy nadzieję, że wszyscy zaznajomiony z tym programem lub
tą grą, powinienem powiedzieć.
To tylko gra, w którą się gra na siatce 3 x 3 z dwoma graczami.
Ty na zmianę.
X to nos.
Miejmy nadzieję, że to dzwoni.
Nie chciałem iść i wyjaśnij tę grę, ale miejmy nadzieję, że
znasz grę kółko i krzyżyk.
Trochę podam pokaz, jak to działa i
jak będzie wyglądał wynik.
Ale to podstawowa gra w kółko i krzyżyk.
To, co chcę zrobić, to ty
prawdopodobnie będzie musiał utworzyć tablicę reprezentującą plik rzeczywista płyta, siatka 3 x 3.
Myślę, że możesz ujść na sucho po prostu tworzenie tablicy jednowymiarowej.
Możesz faktycznie utworzyć plik Tablica 2D również do reprezentowania wierszy
i kolumn.
2D prawdopodobnie byłoby więcej intuicyjny, ale
wizualizacja w kodzie może być nieco trudniejsza.
Ale tak czy inaczej działa.
Dobrą rzeczą w programowaniu jest istnieje wiele rozwiązań problemu.
Powiem ci jeden z moich rozwiązania i moje podejście do projektowania, ale
nie krępuj się zmieniać projektu.
Tak długo, jak używasz c konstruuje się poprawnie, to wszystko, na
czym mi zależy.
Chcę, abyś nauczył się używać c.
Tak długo, jak twój program jest zmodulowany jest zorganizowany
i łatwy w utrzymaniu, a jego wysokiej jakości kod, o to się martwię.
Więc jeden sposób na wdrożenie tylko w jeden sposób przedstawia tablicę jako
jednowymiarową tablicę z dziesięcioma elementami.
Powód, dla którego mam tutaj dziesięć elementów to nie chcę, żebyś używał zera.
Te dziesięć elementów będzie działać
reprezentować zarząd, ale też będą reprezentować współrzędne na tablicy.
Więc zamierzam to zaprezentować i pokazać ty, jak myślę o pracy.
Ale sposób, w jaki idziesz faktyczne
wybranie pudełka, które chcesz narysować, ma zamiar opierać się na numerze elementu.
Oprócz tworzenia tablicy dla tablicy, musisz pomyśleć o tym, jak rozwiążesz
ten problem w dół, jak zamierzasz to zorganizować.
Myślę na minimum że będziesz potrzebować co
najmniej trzech funkcji, prawdopodobnie więcej.
Ale potrzebujesz przynajmniej jednego funkcja, która sprawdza zwycięzców.
To w zasadzie tylko zobaczy jeśli dana osoba wygrała grę lub może
nawet sprawdzić, czy nie ma remisu.
Powinieneś mieć funkcję która rysuje planszę.
Ponieważ będziesz rysować planszę po turze każdego gracza.
I zamierzasz - więc będziesz tego używać ponownie.
Kolejna funkcja do znakowania tablica, dzieje
się tak, gdy użytkownik faktycznie chce umieścić x lub o w określonym pudełku.
Potrzebujesz funkcji do ustawienia to pudełko jako x lub o.
Co się stanie, prawdopodobnie będziesz zapełnianie tablicy tym x lub o.
W ten sposób możesz spojrzeć na plik tablica, aby sprawdzić, czy wygrałeś, czy przegrałeś.
I to na tablicy ze znakami pozwoliłoby również na
sprawdzenie nieprawidłowego wyboru.
Więc jeśli były prawidłowe wybory od jednego do dziewiątego, a
użytkownik wprowadził dziesięć, powiedzcie, hej, nie możesz tego zrobić, spróbuj ponownie.
Gra powinna być przyjazna dla użytkownika, powinien być intuicyjny w
użyciu z punktu widzenia użytkownika i powinna być zorganizowana
w perspektywie programowej.
Naprawdę pomyśl o tym.
Zaplanuj trochę, zaplanuj, wyciągnij papier, zacznij pisać projekt o tym, jak zamierzasz zaatakować ten problem
i co funkcje, których będziesz potrzebować.
Sposób, w jaki myślę tego będzie działać, pozwólcie, że
pokażę wam małe demo.
Nie mam zamiaru pokazywać wam żadnego źródła kod, ale wyobrażam sobie, że
gra będzie wyglądać, gdy ją uruchomimy.
Może mały tytuł to mówi, hej, gra.
A potem też trochę informacje o graczu.
Gracz 1 będzie x, gracz 2 będzie o.
Pamiętaj, że tego nie ma grać na komputerze.
Możesz po prostu umieścić w każdej turze.
Więc musiałbyś zagrać w tę grę z przyjacielem, który siedzi obok ciebie, a
oni musieliby to zrobić powiedz, gdzie umieścić numer.
Jeśli naprawdę zaczynasz ambitny, możesz
napisać grę do gry przeciwko komputerowi.
Ale zauważysz, że 3 x 3 Siatka początkowo zawiera liczby.
Możesz użyć tych numerów do wprowadzenia.
Więc jeśli gracz chce na swoją kolej i reprezentują x, w
zależności od tego, co liczba, którą wprowadzą, to miejsce, w
którym zostanie umieszczony x.
Więc drukujemy siatkę, którą wyświetlamy tablicy, a następnie mówimy użytkownikowi,
czyja jest kolejka i mówimy im, aby wprowadzili liczbę.
Więc w tym przypadku mam zamiar iść dalej i wprowadź numer dwa i naciśnij klawisz powrotu.
A co się stanie, gdy uderzę
dwa i wróć, zobaczy, czy ktoś wygrał, wyczyści ekran
i odświeży planszę.
Więc po tym, jak uderzę 2 i wejdę, będziesz Zauważ, że nadal mam tytuł, nadal
mam gracza 1 i gracza 2.
Ale teraz w polu 2 mam x.
Więc co jeszcze powinienem był zrobić tam powinienem
był sprawdzić, zanim wyświetliłem tablicę, czy czy nie mieliśmy zwycięzcy lub remisu.
I oczywiście to pierwszy wpis, więc nie mamy żadnego.
Ponieważ nie mamy zwycięzcy lub remis, teraz
poproszę gracza o wpisanie liczby, a następnie mogą tutaj wybrać dowolną liczbę.
Teraz, jeśli wpisałem nieprawidłowy numer taki jak 10, powinien mi powiedzieć, że
jest nieprawidłowy.
I to powinno mi pozwolić może zrobić kolejny ruch.
Gdybym wpisał 2, 2 powinno być również nieważne.
Więc jeśli wpiszę 2, to również mówi, że jest nieważny ponieważ 2 jest już zajęte przez x.
Więc jeśli program mi na to pozwala spróbuj ponownie, możesz po prostu pozbyć się
ich kolejki, ale to niesprawiedliwe.
Więc teraz powiem tylko gdzie chcę umieścić o? Powiem
5, wstawię nieprawidłowy ruch, przerysuje planszę i
jest o i 5.
A teraz jest napisane, że gracz 1.
I robisz to, aż masz zwycięzcę lub remis.
Powiem tylko 9.
Teraz mam tam x, ważne wpisy to 1 3 4 6 7 i 8.
Powiem 3.
A teraz spróbujmy uzyskać x do wygrywam, więc teraz x idzie do ósemki, a
wstawię o i 6 tylko po to, żeby ci pokazać że gra działa ze zwycięzcą.
A potem stawiam 7 na x, grę powinno się już skończyć. Uderzyłem powrót.
Mówi, że gracz jeden wygrywa, i to nawet zagrałem trochę dla mnie,
zrobiłem tam trochę wymyślnych rzeczy.
Więc gra się skończyła, gracz jeden wygrywa.
I powinno się również zdarzyć, jeśli gracz 2 wygrywa lub jeśli jest remis.
Więc zastanów się, jak chcesz zaatakować ten problem.
Niezły mały program.
Przejdę przez rozwiązanie i zapewnię kod źródłowy w następnym wykładzie. Dziękuję Ci.