[JAVA] Kółko-krzyżyk 9x9

0

Witam!
Postanowiłem postawić trochę cięższe zadanie przed sobą.
Otóż - chcę napisać grę kółko-krzyżyk, na planszy 9x9, czyli składającą się z 81 pól. żeby nie było bezsensownie (tzn, że będzie wygrywal te co ułoży obok siebie 3 czy 9 symboli) postanowiłem, że grę będzie wygrywał gracz, który ułoży 5 pól obok siebie.
Wcześniej stworzyłem grę kółko-krzyżyk, myślącą, o 3 poziomach trudności, ale w c++, w dodatku tekstowym.
a więc

Cele:
-stworzenie planszy 9x9 (albo buttony albo panele, które po kliknięciu będą wczytywać obrazek)
-stworzenie algorytmu sprawdzającego, czy nie ma 5 symboli obok siebie
-stworzenie 2 rodzajów gry - dla 1 i 2 graczy
-stworzenie do gry z komputerem dwóch poziomów trudności. jeden z nich będzie łatwy i będzie opierał się na funkcji RAND i przypadkowym obstawianiu pól. drugi będzie inteligentniejszy - będzie blokował gracza by nie ułożył 5 w linii, przy tym starając się samemu ułożyc 5 w linii

I teraz kilka pytań:
-czy ktoś z Was spotkał się gdzieś z podobnym tematem?
-jak rozwiązać sprawę AI? spotkal sie ktos kiedys z algorytmem do tego typu gry?

Co mam zrobione:
-plansza (to chyba wiadome)
-system zaznaczania pól gracza (po kliknieciu nastepuje i++, jesli i%2==0, to Button.setText("X"), w przeciwnym razie jest "O". przy okazji dane o kliknieciu wpisuje do tablicy jednowymiarowej, o 81 elementach rownych 0. jesli przycisk zostanie klikniety, komorka w tablicy odnoszaca sie do tego butona przybiera wartosc "1" i nie pozwala na zmiane textu w buttonie

Czekam na wszelkie propozycje, może mi oświecicie drogę :)

0

algorytm jest dość prosty, musisz policzyć, jak bardzo opłaca Ci się wstawić znaczek w danym polu, przy czym większą wagę dajesz strategii obronnej. Wydaje mi się, że jak sam pisałem kik, korzystałem z tego: http://www.eioba.pl/a76124/sztuczna_inteligencja_dla_kolka_i_krzyzyk_na_5.

Polecam http://lmgtfy.com/?q=k%C3%B3%C5%82ko+i+krzy%C5%BCyk+strategia

0

heh, dzieki za linki, wlasnie po napisaniu tego postu znalazlem je w internecie :)
na pewno sie przydadza, szczegolnie gdy bede obmyslal sztuczna inteligencje komputera. ale na razie stworze 1 czesc gry - tryb gracz vs gracz.
chwilke temu akurat rozpisalem sobie wszystkie mozliwosci w ktorych moze byc obok siebie 5 kolek czy krzyzykow. martwi mnie ilosc if-ow, ktore bede musial zastosowac w metodzie, do ktorej bedzie odnosila sie reszta programu... czy mozna to jakos zastapic

jeśli zbiore jakies pomysly na temat projektu, tzn, gdy utworze jakies AI, to zloze to jako propozycje tematu zaliczeniowego na koniec roku. wydaje mi sie ze to dobry pomysl. a Wy co sadzicie?

0

To zależy, jaki przedmiot chcesz tym zaliczyć. U nas (Uniwersytet Wrocławski) to było tylko jedno z zadań potrzebnych do zaliczenia kursu Javy.

Możesz sobie zajrzeć, jak ja to zrobiłem, ale ostrzegam, że wtedy poznawałem Javę i jest to napisane odrobinę pokracznie. Program i źródełka siedzą w katalogu l6 w archiwum http://tom.civ.pl/studia/java2008rozw.tar.gz

0

ja jestem w Technikum Informatycznym, z Java mam niewiele wspolnego. jakos bardziej przypadl mi do gustu c++. choc teoretycznie wielkich roznic nie ma miedzy tymi jezykami.

bedzie to praca koncoworoczna. wlasnie zglosilem temat. wg mojego profesorka, to ta praca jest akurat na moj poziom intelektu. oczywiscie wyszedlem z propozycja utworzenia gry na planszy 5x5, w trybie PvP, ale psorek od razu rzucil tekst "to jest dla lamusow. zrob na planszy 9x9, 5 wygrywa. i to w trybie dla jednego i dwoch graczy". czyli swoj projekt rozwijam dalej.

dzieki za materialy, zapewne sie przydadza :)

kurcze, jak na razie dalej siedze i rozpisuje sobie mozliwosci zwyciestwa na kartkach.... wyszlo mi po 128 mozliwosci dla kazdego gracza ;/ chyba opre to na petlach for, bo pisanie stada if-ow nie ma sensu

0

choc teoretycznie wielkich roznic nie ma miedzy tymi jezykami

???
Napisałeś już jakiś program w C++ i w Javie?

0
bo napisał(a)

choc teoretycznie wielkich roznic nie ma miedzy tymi jezykami

???
Napisałeś już jakiś program w C++ i w Javie?

tak.
jednak z java mniej sie zaznajomilem. konstrukcja funkcji, petli, instrukcji warunkowych ,deklaracje zmiennych i wiele innych rzeczy jest podobnych, jednak.. jakos w c++, szczegolnie w builderze, tworzenie aplikacji nie przyswajalo mi takich problemow. w javie czesto napotykam problemy powstajace w wymianie danych pomiedzy klasami

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