Cześć i witaj.
Chciałbym przedstawić rozwiązanie na wyzwanie Tic Tac Toe.
Teraz pamiętajcie, jest ich wiele rozwiązania danego problemu.
To będzie moje rozwiązanie.
Jeśli Twoje rozwiązanie jest inne tak długo, jak postępujesz zgodnie
z dobrą praktyką programowania i używasz język programowania c we właściwy
sposób, to w porządku.
Po prostu dostarczam moje rozwiązanie.
Jestem pewien, że można to poprawić.
Więc zacznijmy.
Mam zamiar stworzyć nowy projekt nazywa się oczywiście kółko
i krzyżyk i zamierzamy zacznij próbować to modulować.
Próbowałem to zepsuć, tak jak to zrobiłem w opisie wykładu.
Mam zamiar utworzyć plik tylko kilka modułów lub powinienem
powiedzieć kilka funkcji.
Miejmy nadzieję, że tak będzie dobrze i dobrze dla Ciebie działa.
Używam wielbłąda do wszystkich moich nazw konwencje, po prostu to, do czego jestem przyzwyczajony.
Właściwie moglibyśmy się nawet rozdzielić to również do wielu plików
źródłowych, jeśli chcieliśmy.
Mamy więc nasze główne.
Pozbądźmy się tego printf.
Mam zamiar dołączyć dodatkowe obejmują.
To w zasadzie pozwoli mi wyczyść nasz system i kilka
fajnych rzeczy, pozwól ja też myślę, że usunąć char.
Więc oprócz tych 2 biblioteki, włączmy conio. godz.
I co chcę zrobić i ja chcą zaatakować ten problem.
Chcę spróbować modułu tak dużo, jak mogę.
Wspomniałem, że jadę aby użyć
jednowymiarowej tablicy, dwuwymiarowej tablicy może nawet działać lepiej.
Ale zamierzam wdrożyć to używając jednowymiarowej tablicy,
która reprezentuje naszą grę Board, nasza tablica do gry w kółko i krzyżyk.
Mam zamiar to stworzyć jako zmienna globalna.
Używam zmiennej globalnej tutaj, ponieważ
nie pokazałem koncepcji przekazywanie danych przez odniesienie w c.
Nie chcę cię zmylić.
Nie musiałbym używać global dane tutaj i
mógłbym przekazać dane do funkcji, ale zrobiłbym to trzeba użyć przekazywania przez odniesienie.
Musiałbym ominąć wskaźniki i jeszcze o tym
nie rozmawialiśmy.
Więc użyję danych globalnych.
Wybacz mi, zapamiętaj, że dane globalne są zwykle nie
jest to dobra rzecz, ale dlatego, że znowu próbujemy demonstruj naukę, dzieląc zdobywaj i
staramy się to zademonstrować jak korzystać z funkcji, potrzebuję danych globalnych, ponieważ
my nie rozmawialiśmy jeszcze o wskazówkach.
Więc moje dane globalne tutaj, że jadę do użycia to mój kwadrat, który reprezentuje moją siatkę, moją
tablicę do gry w kółko i krzyżyk.
To będzie singiel obszar wymiarowy 10 elementów
głównie dlatego, że I. nie chcę używać elementu 0.
Mam zamiar użyć tej tablicy do wybierz liczby, aby zagrać w grę.
Pozwoli to również żebym miał moje współrzędne.
Mam zamiar to zainicjować tylko z wartościami od 1 do 9.
A to będzie plik tablica znaków, ponieważ muszę umieścić w
niej znaki x i o.
Nie rozmawialiśmy o charakterze tablice jeszcze, ale to pozwoli mi
wstawić pojedyncze znaki.
To jest tak samo jak koncepcja tablicy ints, z wyjątkiem tego, że zawiera znaki.
Postacie, pamiętaj, mają pojedyncze cudzysłowy wokół nich.
Więc jeden 2 3 9, 0 tam o po prostu pominę,
nawet nie zamierzam używać, ponieważ chcę używać tych.
To sprawia, że programowanie jest nieco łatwiejsze.
Potrafię wykorzystać wartość, którą użytkownik wchodzi jako indeks, jako prawidłowy indeks.
Ja też będę musiał utwórz 2 zmienne globalne do wyboru
w turze gracza.
Więc wybór będzie tym, czym oni wprowadzane z klawiatury, od jednego do 9, w
zależności od tego, gdzie chcą umieścić swoje x lub o.
Gracz ma zamiar po prostu
reprezentują turę gracza, gracza 1 czy 2.
Nie potrzebuję żadnych innych danych globalnych.
Potrzebuję tylko mojej funkcji deklaracje tutaj.
Mam zamiar zacząć z tworzeniem 3 funkcji.
Więc mam 3 deklaracje funkcji.
Będę miał jedną za sprawdzenie wygranej.
Nie zajmie żadnych danych.
Zwróci int.
Mam zamiar mieć taki, który tego nie robi zwraca wszelkie
dane, które po prostu wyświetlają tablicę z poprawnymi znakami.
Nie wymaga również żadnych danych.
Będę też mieć plik funkcja, która po prostu zaznacza tablicę.
Będzie to wymagało wprowadzenia danych przez użytkownika.
I w zależności od tego, co weszli, umieści znak x lub o w odpowiednim miejscu
w tablicy, a następnie wyświetli ta tablica za pomocą tablicy wyświetlacza.
Więc tutaj po prostu powiemy zaznacz tablicę, a to faktycznie
spowoduje oznaczenie x lub o.
Więc mogę to ponownie wykorzystać.
Mogę to ponownie wykorzystać gracz jeden lub gracz 2.
3 deklaracje funkcji, abym mógł umieść moje funkcje w dowolnym miejscu
programu, zadeklarowałem je na górze.
Zauważysz, że 2 z nich funkcje nie zwracają żadnych danych
i tylko jedna przyjmuje parametr.
Zaimplementujmy te funkcje zanim zaimplementujemy grę.
A więc najpierw wdrożyć sprawdzanie wygranej.
Ta funkcja w zasadzie ma zamiar pracuj, gdzie ma zamiar sprawdzić tablicę, aby zobaczyć,
czy jest jakaś wygrana.
Więc będzie zawierać wiele instrukcji if.
Prawdopodobnie mógłbym się poprawić ten kod całkiem sporo.
Ale mam zamiar umieścić kilka komentarzy tutaj, ponieważ zawsze powinniśmy
mieć komentarze na początku naszej funkcji.
Te są dość uproszczone.
Powinniśmy mieć nazwę funkcji.
To w zasadzie to mówi funkcja
zwróci stan gry o wartości jeden, jeśli gra jest skończona, powiedz ci, czy
wygrałeś, wynik negatywny, jeśli gra jest w toku i 0, jeśli gra się
skończyła i był remis.
Więc ta funkcja sprawdza jeden zwraca int.
Więc idę naprzód i zdefiniuj to.
A wszystko to ma na celu przejrzy
tablicę i sprawdzi, czy są jakieś plamy tam, jeśli dopasowano 3x.
Więc jest ich dużo różne instrukcje if.
Skąd więc wiemy, czy gracz jest jednym.
Cóż, wiemy, czy gracz jest jeden, jeśli pasują do siebie w wierszu po
przekątnej lub w kolumnie.
Musimy więc sprawdzić każdy jedna z tych sytuacji.
Znamy wiersze w kolumny na podstawie tablicy.
Więc jeśli mój kwadrat jest równy do kwadratu 2,
a kwadrat 2 jest równy kwadratowi 3, to znaczy my mają dopasowanie w naszym pierwszym rzędzie.
Więc ja też to zrobię utwórz tutaj wartość zwracaną.
U góry, powiem tylko zwracana wartość, zainicjuj ją na 0.
Zainicjujemy to do 0 dla zakończenia gry.
A jeśli mamy dopasowanie pierwszy wiersz, mam
zamiar zwrócić jeden, gra skończona.
Następnie musimy mieć serię innych, jeśli pasują, a właściwie nie chcę
wracać jeden, który chcę ustawić wartość zwracaną.
Ponieważ mogliśmy wrócić, ale to utrudnia śledzenie programu.
W przeciwnym razie będziemy to robić sprawdź wszystkie nasze inne wiersze.
Więc mam zamiar skopiować i wkleić trochę kodu, ponieważ
jest to dużo zbędnego kodu.
Jedyna rzecz, która to jest interesujące jest, jeśli mamy remis.
Więc pozwól, że wstawię wszystkie pliki w przeciwnym razie dla zwycięzców.
A potem ja też to zrobię zwracają różne wartości.
Zamiast mieć kilka innych ifs, mógłbym mieć znak &, ale jest
to jeszcze trudniejsze do odczytania.
Więc jeśli mamy dopasowanie w pierwszym rzędzie.
I upewnijmy się, że nasze wcięcie jest poprawne.
Jeśli mamy dopasowanie w drugim rzędzie, to właśnie robi druga osoba.
Jeśli mamy dopasowanie w trzecim rzędzie, return one dodaj kilka nowych wierszy dla czytelności,
nie potrzebujesz żadnych nawiasów ponieważ to pojedyncze stwierdzenia.
Wygląda na to, że w linii 37 dopasowujemy jeden, 4 i 7.
Więc to wygląda jak dopasowanie po przekątnej, zwróć jeden.
Czterdzieści, dopasowujemy 2, 5 i 8.
To wygląda na dopasowanie środka schodzi, więc druga kolumna.
3 6, możesz zobaczyć plik inne mecze, jak również.
W zasadzie musimy złapać wszystkie mecze dla rzędów, kolumn i przekątnych.
I to właśnie zrobiliśmy ze wszystkimi te stwierdzenia patrząc w tablicę.
Teraz jedyna rzecz, która mówi nam, czy my nie mamy meczu lub mamy remis, musimy
porównać je wszystkie i po prostu upewnij się, że nie są
to zainicjowane liczby.
Więc jeśli mamy kwadrat tablicy i nie zawiera 1 2 3 1 2 3 4 5
6 8 ani 9 dla żadnego z wartości, to znaczy, że mamy remis, ponieważ
zawierają 0 lub x.
Więc czy możemy napisać coś innego
jeśli to w zasadzie mówi, że to remis i możemy ustawić wartość zwracaną do 0, zwraca wartość równą 0.
I znowu to jest po prostu w zasadzie zaznaczając to ostatnie, w przeciwnym
razie, jeśli liczby są takie same jak zostały zainicjowane.
Jeśli są różne, to to znaczy, że możemy zwrócić 0.
Załóżmy to.
W przeciwnym razie, jeśli nie mamy pliku remisujemy i nie mamy zwycięzcy,
to znaczy, że nie skończyliśmy.
Więc ostatnie inne stwierdzenie może po prostu powiedzieć zwracana wartość jest równa wartości ujemnej.
Ponieważ pamiętaj, funkcja jest zwracanie wartości ujemnej za grę
w toku, jedna za grę zakończoną i 0 dla gry bez wyniku.
A potem ostatnia rzecz, jaką chcę zrobić Czy chcę zwrócić wartość zwracaną.
Więc mam zamiar powiedz return, return value.
I to zakończy funkcję.
A co zauważasz, kiedy robimy to, dzielimy
i podbijamy.
Wszystko, na czym się skupiamy, jest właściwe teraz sprawdza tablicę, aby zobaczyć,
czy jest wygrana.
Pracowalibyśmy w małych kawałki tak po prostu i
stale testowaliśmy.
To pozwala nam skupić się na naszym projektowania, a także pozwala nam łatwiej redukować
lub izolować nasze błędy.
Teraz, gdy skończyliśmy z planszy do gry, chcemy iść do przodu
i wdrożyć planszę do wyświetlania.
Tablica wyświetlacza jest po prostu zamierzam pokazać tablicę.
Więc wszystko to naprawdę musi zrobić, to narysuj tablicę w określonym formacie.
Więc napiszemy funkcja zwana tablicą wyświetlacza.
Nie zwróci żadnych danych, nie będzie wymagał żadnych parametrów.
Powód jest to numer funkcji po
pierwsze, będziemy musieli wielokrotnie rysować planszę a także jest po prostu lepszy,
ponieważ wykonuje określone zadanie.
Teraz ten po prostu będzie miał kilka funkcji printf w nim.
I będzie sporo formatowania.
Więc mam zamiar go skopiować i wkleić.
To, co jest tutaj wyjątkowe, to Czyszczę ekran za każdym razem.
Ale jeśli powiesz system i windows i mówisz cls, to
wyczyści ekran.
Po prostu czyni go czystszym.
Będziemy wtedy po prostu zrobić kilka printfs.
Wydrukujemy tytuł gry. Wydrukujemy gracza 1 i 0.
A potem jedziemy wydrukować planszę.
Plansza będzie ładna sformatowany z kilkoma równoległymi prętami,
a następnie wydrukujemy plik wartości wszystkich wartości w tablicy.
A jeśli wartość to x lub 0, to się wyświetli.
Jeśli tak nie jest, wyświetli plik liczba, więc możemy użyć tej liczby,
aby wybrać naszą opcję rysowania i to jest to wszystko, co robi ta funkcja.
Teraz, kiedy skończyliśmy wyświetlając tablicę,
chcemy teraz utworzyć naszą ostatnią funkcję co oznacza tablicę.
Więc tablica znakowa będzie ustawiona tablicę z określoną
wartością i będzie pisać znak w x lub o.
Więc to będzie miało charakter.
To, co to zrobi, to będzie
mieć kilka innych instrukcji if.
Więc tutaj, na naszej tablicy ze
znakami, jesteśmy zamierzam w zasadzie dać kilka komentarzy i powiedzieć, że to ma
zamiar ustawić na planszy właściwy znak x lub o we właściwym miejscu w tablicy.
Miejmy nadzieję, że to ma sens.
Jak widzisz kod I muszę zakończyć moje komentarze.
Chcę to ładnie sformatować więc tutaj są 2 linie.
I wszystko to zrobi czy
ma zamiar sprawdzić, co wprowadził użytkownik.
Pamiętaj więc, że mamy 2 globalne dane wartości wpisane przez użytkownika.
Mamy też wartość dla bieżącego gracza.
Tak więc wybór będzie w zasadzie co wpisuje się za pomocą klawiatury.
Nie wdrożyliśmy tego jeszcze ponieważ zamierzamy to zaimplementować
w funkcji głównej.
Gracz będzie aktualny gracz.
Będziemy potrzebować obu z nich, aby uczynić nasze znaki.
Więc to, co zamierzamy zrobić, to to, że jesteśmy będzie mieć
kilka instrukcji else, instrukcji if else.
Sprawdzimy wybór, czyli to, co wpisuje użytkownik.
A jeśli wybór jest równy 1, my chcę coś narysować w tym kwadracie.
Chcemy też mieć pewność że ten kwadrat jest dostępny.
Więc jeśli jest równy 1, a tak nie jest obecnie wynosi 1, co
oznacza, że w zasadzie ktoś już postawił x lub o i nie możemy go użyć.
Jeśli jest równa jedynce i oni wprowadzony jeden, co oznacza, że możemy
ustawić tablicę na określoną wartość.
Ustawimy tablicę na co został przekazany w albo o x.
I powtórzymy zrobić to dla każdego wyboru.
Jeśli to wybory 2 3 4 5 6 8 lub 9.
Więc kilka innych ifów robią to samo.
Jeśli użytkownik wybrał opcję 2, my upewni się, że wcięcie
jest dobre, a kwadrat 2 jest dostępny, mamy zamiar zaznaczyć kwadrat 2 tym, co
tu przekazaliśmy.
I w zależności od tego, który gracz to obróci oznacza, że będziemy przekazywać znak lub x.
Teraz ostatnia rzecz, którą musimy zrobić tą funkcją musimy zweryfikować.
Jeśli coś przeszli inny niż od 1 do 9, to
jest to nieprawidłowy ruch.
Więc nasza ostatnia inna wypowiedź tutaj wydrukuje komunikat z informacją, że ruch jest nieprawidłowy zaznacz
gracza o jeden.
Ponieważ pamiętajcie o graczach są jednym lub dwoma.
I oznaczymy gracza z powrotem, a następnie będziemy go inkrementować w naszej
pętli w naszej głównej funkcji.
A potem ta ostatnia rzecz char po prostu wstrzymuje program,
aby użytkownik musiał uderzyć powrót po nieprawidłowym ruchu.
W przeciwnym razie wystąpiłby nieprawidłowy ruch zostanie wyświetlony, a następnie
zostanie natychmiast usunięty, ponieważ ponownie przerysowalibyśmy planszę.
Więc get char zatrzymuje to.
Zmusza cię do naciśnięcia przycisku Enter aby przejść do wprowadzenia innej wartości.
A to są nasze 3 funkcje.
Pamiętaj, ta funkcja nic nie zwraca.
Więc możemy to zatrzymać na dole.
Teraz musimy właściwie wdrożyć grę.
Gra toczy się dalej w funkcji głównej.
Więc jeśli chodzi o grę, to jest to, gdzie poprosimy użytkownika
o wpisanie liczby, narysujemy na pokładzie, sprawdzimy, czy wygrałeś.
Więc utworzymy 2 zmienne lokalne tutaj, a my
zamierzamy zainicjować nasz odtwarzacz.
Tutaj mamy zamiar utwórz naszą liczbę całkowitą I.
Będzie to użyte w naszej pętli.
Naszym znakiem będzie albo x lub o, w zależności od tego, czyja kolej.
Wierzę, że Mark będzie x lub o.
Mark będzie x lub o.
A wybór będzie czym użytkownik wchodzi za pomocą klawiatury.
Czyli 2 zmienne lokalne.
Zamierzamy też ustawić nasze player, która jest zmienną globalną.
Początkowo po prostu będzie być pierwszym graczem, aby rozpocząć grę.
Wtedy będziemy mieli pętlę.
W zasadzie będziemy mieć pętla, aż skończymy grać.
Wykorzystam chwilę pętla, ponieważ chcę, aby została
wykonana przynajmniej raz.
Chcę wyświetlić wejść na pokład przynajmniej raz.
Więc mam zamiar wyświetlić planuj i
graj, aż w zasadzie zremisuje lub wygram.
Więc zamierzam to robić tak długo ponieważ I jest równe minus 1.
Co oznacza minus 1, to oznacza, że gra jest w toku.
Mam zamiar być powrotem wartość do sprawdzenia wygranej.
I zobaczysz to za sekundę, ale w zasadzie,
gdy mam pętlę, która ciągle robi to samo i tak dalej, aż gra się skończy.
I gra będzie jeśli to nie jest negatywne.
Więc co musimy zrobić najpierw.
Pierwsza rzecz, którą musimy zrobić, to musimy wyświetlić tablicę.
Więc mogę po prostu zadzwonić do tablica funkcji.
Następnie musimy obliczyć gracza.
A gracz zaczyna od gracza pierwszego.
To, co tutaj
zrobimy, to użyjemy operatora trójskładnikowego i powiemy jeśli gracz mod 2, to gracz
równa się 1, w przeciwnym razie równa się 2.
To jest sposób na ustalenie właściwy gracz.
Każda iteracja pętli zmienić z 1 na 2 lub 2 na 1.
Kiedy zaczyna jako pierwszy gracz, powie, że gracz mod
2, jeden podzielony przez 2 lub resztę jeden podzielony przez 2 to co, jeden.
Więc jeśli to jeden, jesteś zostanie pierwszym graczem.
A kiedy wrócisz do w następnej iteracji
gracz będzie równy 2, ponieważ zamierzamy go zwiększyć.
2 mod 2 to 0.
Więc jeśli to nie jest równe jeden, to gracz będzie
równy graczowi 2.
To tylko ustawi gracz numer jeden, jeśli mod gracza 2 to jeden.
Pamiętaj, ten tokarz mam nadzieję, że operator.
Następną rzeczą, którą muszę zrobić, to ja trzeba uzyskać dane wejściowe od użytkownika.
Więc mam zamiar powiedzieć, idę poprosić użytkownika o wprowadzenie liczby.
Powiem gracz procent d gracz 1 lub 2, wprowadź liczbę, a następnie wstawię gracza
wydrukować, gracz 1 lub 2.
Następnie przeczytam dane wejściowe od użytkownika za pomocą scanf.
Będzie to liczba całkowita, to będzie oznaczać miejsce
na planszy od pierwszego do dziewiątego.
I zamierzam przechowywać że w mojej wybranej zmiennej.
Wybór jest cal, więc ja muszę podać adres i
muszę powiedzieć wybór.
Tylko jeśli to byłby sznurek, zrobiłbym to nie podać adresu.
Wtedy mogę w zasadzie określić niezależnie od tego, czym jest znak.
Muszę ustalić, czy znak jest x lub nie w zależności od gracza.
Więc zamierzam użyć operator trójskładnikowy ponownie.
I zamierzam przydzielić aby zaznaczyć x lub o.
Jeśli gracz jest równy 1, jadę przypisać do oznaczenia x, duże x.
W przeciwnym razie mam zamiar przypisz mu o, duże o.
Więc ten operator trójskładnikowy jest bardzo przydatne, gdy musisz
przypisać zmienne na podstawie warunku.
Znowu to, co to mówi jeśli gracz jest równy
1, znak będzie równy x.
W przeciwnym razie będzie równe o.
Znak zapytania oznacza, czy wartość logiczna jest prawdziwa, dwukropek
oznacza, że jest fałszem.
Teraz, gdy dostałem właściwy list, Mogę wywołać
funkcję zaznaczania tablicy, mówiąc po prostu znak pokładzie, przechodząc w x lub o.
Po zaznaczeniu tablicy i oni dokonali selekcji,
muszę sprawdzić, czy jest zwycięzca.
Mam swoją zmienną I which naprawdę
powinno być lepszą nazwą.
Nazwijmy to sprawdzaniem statusu, grą sprawdź co powiesz na to lub status gry.
I stan gry będzie równy jeden ujemny lub 0.
Status gry będzie być równe temu, co zostanie zwrócone
z czeku na wygraną.
Ponieważ pamiętaj, ta funkcja będzie zwraca jedynkę na 0 lub ujemną.
Taką, jeśli gra się skończyła wynik, ujemny, jeśli gra jest w toku, 0 jeśli
to koniec bez rezultatu.
Więc teraz, gdy zapisaliśmy grę status, będziemy również chcieli
zmienić stan pętli.
Więc jeśli stan gry to równa minus jeden,
wyskoczymy z pętli.
W przeciwnym razie wszystko, co musimy zrobić to zmiana tury gracza.
Jak zmieniamy turę gracza, po prostu zwiększamy gracza o jeden.
W ten sposób następnym razem pójdzie w górę i to będzie 2, a
gracz będzie równy 2 i wrócimy na dół.
Kiedy podejmują nieudane próby, co dzieje się w nieprawidłowych
szablonach, zmniejsza liczbę graczy.
Kiedy zmniejszasz liczbę graczy, wracasz do właściwego gracza.
Więc jeśli jest to jeden, zmniejszasz go do 0, następna tura będzie jedną, to w
zasadzie znowu ta sama tura.
Dlatego ją zwiększamy.
Teraz, jeśli to gracz 2, zwiększamy go o jeden.
A to, co się dzieje, to 2 podzielone 2 to 0.
Więc faktycznie ustawia odtwarzacz z powrotem do jednego.
Tak to działa.
Ale to cała logika.
Zrobiliśmy tu dużo.
Nie powinieneś pisać wszystkiego ten kod i przetestuj na raz.
Powinien był pracować z dziel i rządź, nieustannie testując
podczas uruchamiania kodu.
Teraz mam zamiar zapewnić to rozwiązanie, ale uruchommy je
i przetestujmy.
Będzie działać tak, jak działało demo z wykładu próbnego.
Ale znowu, przestudiuj ten kod i zrób na pewno rozumiesz, co się dzieje.
Stosowanie tablic i dzielenie podbić podejście, ale spójrz, jak ładnie wygląda
ta główna metoda.
Bardzo łatwo jest wiedzieć, co to jest dzieje się w głównej metodzie.
Pokaż planszę, zmień gracza i siebie prawdopodobnie chciałbym umieścić tutaj komentarze.
Zmień zakręty, a potem również tutaj uzyskaj dane wejściowe.
A następnie ustaw prawidłowe litera, ustaw odpowiednią postać w
zależności od tury gracza.
Tak naprawdę nawet nie potrzebujesz te komentarze,
ponieważ funkcje są tak opisowe.
Zaznacz tablicę, ustaw tablicę na podstawie wybór użytkownika lub nieprawidłowy wybór.
A potem sprawdzenie statusu gry na wygraną, dość oczywiste.
A potem wyskakujemy jeśli gra się skończyła.
Zbudujmy to.
Miejmy nadzieję, że nie dostaniesz żadnych błędów, nie ostrzeżenia, nie robimy tego, co jest miłe.
Teraz uruchommy to i zamierzasz zobacz, jak działa tak jak w naszym demo.
Pierwsza rzecz to mam zamiar wyświetlić ekran.
I to pozwoli nam wydrukować wejście.
I ma naszą siatkę, jeden 2 3 4 5 6 7 8 9 nasza tablica.
Więc mówi mi, gracz pierwszy wpisz coś, a ja
wpisuję coś poprawnego.
I rysuje to, i czyści ekran.
Więc wygląda to ładnie.
A teraz jest x w 3.
Teraz tura gracza 2.
Pozwolę zrobić coś nieważnego.
Mówi nieprawidłowe ruchy, zatrzymuje się.
Wróciłem, dostaję iść ponownie gracz 2.
Teraz trafiam w jeden, przerysowuje z o w jednym miejscu.
I kontynuuję to do mamy zwycięzcę lub przegranego.
Zróbmy więc zwycięzcę dla o so.
Teraz x będzie, 2 o to będzie 5, x będzie równe 6, a
o będzie równe 9.
Gra skończona, ponieważ właśnie zremisowaliśmy 3 0.
Więc jedyne, o czym zapomniałem, to po pętli while, aby
wyświetlić gratulacje, które wygrałeś.
I wszystko, co musimy tam zrobić, to musimy sprawdzić stan gry.
Jeśli stan gry jest równy jeden, to znaczy gracz jeden i to byłby
ostatni gracz, który wygrałby.
Więc wydrukowaliśmy gracz% d wygrywa.
W przeciwnym razie jedziemy po prostu wydrukować remis.
Bo jeśli wydostaniemy się z naszej pętli a status
był negatywny, wiemy, że gra się skończyła i przyniosło skutek, może
po prostu musieliśmy mieć to ostatnie, jeśli oświadczenie, aby wyświetlić wyniki.
Więc teraz uruchommy to ponownie jako zwycięzca.
A teraz właściwie to zrobimy zobaczyć, jak ktoś wygrywa.
Więc po prostu wstawię ważne Liczby tutaj, powodują
szybką wygraną dla x i faktycznie muszą to zrobić w tym program, ponieważ ten znika.
No to idzie, gracz pierwszy wygrywa i zagrał tam inny fajny dźwięk.
Więc to był długi wykład.
Przepraszam za długi wykład.
Przestudiuję ten kod, ja dostarczyć go jako plik źródłowy.
Miejmy nadzieję, że dowiesz się dużo o metody dzielenia i zwyciężania.
Dziękuję Ci