C# kółko i krzyżyk - potrzebna pomoc

0

Witam.
Mam otóż mały problem. Nie jestem biegłym programistą stąd też mój mały problem. Napisałem grę na zaliczenie (kółko i krzyżyk). Lecz teraz muszę wyedytować kod tak, aby gra odbywała się z "myślącym komputerem" (nie mam tu na myśli budowy jakieś skomplikowanej sztucznej inteligencji, lecz coś prostego, przykładowo jakieś losowania czy tym podobne)

Jeśli ma ktoś jakiś pomysł, proszę bardzo o pomoc. Będę wdzięczny.
Potrzebuję tego na wczoraj Sad(

Poniżej zamieszczam cały mój projekt.
http://www32.zippyshare.com/v/96913021/file.html

0

Ogólnie to nie liczyłbym na to, że ktoś będzie pisał, kompilował itd za Ciebie ;)
Ale za to mogę Ci wskazać przydatnego link'a: http://bit.ly/IEQMEg
Przy czym akcja kiedy komputer wstawia swój znak możesz wyszukać losowe pole na planszy, sprawdzić czy jest puste jak tak to wstawić jak nie to wylosować jeszcze raz itd (takie mega easy lvl monte carlo).

0

A ja luknąłem do kodu, lol, masakra. Tzn. widać że jesteś początkujący.

Jak napisał przedmówca, nikt ci dotowca nie napisze, ale mniej więcej algorytm możemy opisać w mega uproszczonym wydaniu.
Jak zaczyna się ruch X lub O musisz sprawdzić czy jest to ruch człowieka, czy AI. Jeśli człowieka, to oczekujesz na ruch jak do tej pory, czyli na kliknięcie któregoś z przycisków.
Jeśli ruch wykonuje komputer, to jak napisał Xiuthechutli, musisz jakoś "wymyślić" gdzie ma postawić swój znak. Załóźmy że na początek użyjesz najprostszego możliwego sposobu, czyli wybór losowy. Użyj klasy Rand, wylosuj jakieś pole. Jeśli jest puste, stawiasz znak, jeśli nie losujesz dalej. Lub Robisz wcześniej listę pustych pól i losujesz index z tej tablicy, np:
[0] - to wolne pole 0,1
[1] - pole 0,2
[2] - pole 1,1
itd.

Oczywiście w teorii podczas ruchu AI, interfejs powinien nie reagować na poczynania gracza, tzn. nie może on wtedy postawić znaku. Ale akurat w tym przypadku kiedy planasza to 9 pól, wszystkie operacje (losowanie pola przez AI i sprawdzenie warunku zwycięstwa) będą tak szybkie, że możesz póki co je pominąć.

0

Ok tak przy takim podejściu będzie Ci cieżko dodać AI. W ogóle przydałoby śie aby wszystkie 9 guzików było dynamicznie robionych i podpiąc wszystko pod 1 zdarzenie a nie robić milion kaskadowych ifów.
Ale.. idąc Twoim tokiem pisania, Po swoim ruchu dodaj losujButtona() i na nim wywołaj Click.

btw. nazwa traffic w tym kontekście ruchu kółko krzyżyk średnio pasuje:)

0

Dzięki Panowie za rady. Tak jak mówiłem jestem laikiem w tych sprawach i mój kod jest dość prymitywny. Ale tylko takie metody przyszły mi do głowy.
Zrobiłem to na randomie, nawet śmiga z tym że, jak powiedział kolega wyżej, poziom jest very easy :)
Myślę, że muszę dodać choć odrobine "inteligencji" dla komputera tzn, dodać jakieś warunki aby sprawdzał czy istnieje jakieś zagrożenie (tzn. czy czlowiek może wygrać dokonując jakiegoś ruchu) i trochę utrudnić mu zadanie :)
Wiem, że z tym będzie mi już trochę ciężej sobie poradzić :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1