banjalukaforum.com
https://banjalukaforum.com/

MinMax algoritam
https://banjalukaforum.com/viewtopic.php?f=18&t=23822
Stranica 1 od 1

Autoru:  damso [ 23 Okt 2006, 18:13 ]
Tema posta:  MinMax algoritam

Pogledajte ovaj Minmax algoritam.
Da li neko vidi je i u redu?

Kod:
public static double MinMaxAB(int[][] stanje,int igr,double A,double B,int deep){

        boolean dobro;
        double kolicnikDubine=3*deep;


        if (fullMat(stanje)&&(deep==1)){   //izlazak- PUNA tabela

            return -1;

        }else  if (deep==dubina){   //izlazak -DUBOKO

                return (HeuristicFunction(stanje,igr)-10*kolicnikDubine);
        }
        else{
                if (igr==first){ //prvi igrac-Maximizer                                 
                        for (int kolona=0;kolona<number_of_columns;kolona++){
                            if(!full(stanje,kolona)){  //ako ima mjesta u koloni   
                                    dobro=set(stanje,kolona,first);   //stavimo kuglicu na tabelu
                                    double score=MinMaxAB(stanje,second,A,B,deep+1);
                                                //naci vrednovanje tako nastalog stanja
                                    dobro=remove(stanje,kolona,first); //skinuti kuglicu sa tabele

                                    igr=first;   //vratiti igraca

                                    if (score>A){A=score;}  //nasao bolji potez
                                    if (A>B){return A;}  //odsjecanje                                       
                            }
                        }
                        return A;//nas najbolji potez
                }
                else { //drugi igrac-Minimizer
                        for (int kolona=0;kolona<number_of_columns;kolona++){
                            if(!full(stanje,kolona)){                     
                                    dobro=set(stanje,kolona,second);
                                    double score=MinMaxAB(stanje,first,A,B,deep+1);
                                    dobro=remove(stanje,kolona,second);
                                    igr=second;                   
                                    if (score<B){B=score;} //nasao bolji potez
                                    if (A>B){return A;}  //odsjecanje
                                }
                        }
                        return B; //protivnikov najbolji potez

                }

        }
}//MinMaxAB

Autoru:  kefalo [ 24 Okt 2006, 13:08 ]
Tema posta: 

jedina greska koju sam ja uocio onako na brzaka je da kod for petlje treba da koristis number_of_columns-1 umjesto number_of_columns.
kakvu gresku ti javlja compiler? i cemu sluzi kod, nisam bash najbolje skontao?

Autoru:  che.guevara [ 24 Okt 2006, 23:11 ]
Tema posta: 

MinMax je algoritam koji se cesto koristi u igrama (prim.). Posto nije objasnjeno za kakav problem je napisan algoritam, tesko je dati ikakav odgovor :(

Generalno cilj algoritma jeste da do kraja (ako je moguce, inace do neke dubine) rekurzivno prati sve moguce poteze (eliminisuci one besmislene) kako bi pronasao 100% ispravnu taktiku igranja (ili priblizno ispravnu, ako je dubina ogranicena). Klasican primjer upotrebe MinMax-a je TicTacToe, mada se on sasvim dobro moze rijesiti i drugim sablonom - upotrebom strategije.

Eto da ne ispadne da samo ucim algoritme za grafove ;)

Btw cika google:

Strategija: http://www.people.umass.edu/jboxer/cs12 ... egies.html

MinMax: http://teamster.usc.edu/~dteam/images/t ... TacToe.txt

Autoru:  kefalo [ 25 Okt 2006, 01:29 ]
Tema posta: 

Citiraj:
Posto nije objasnjeno za kakav problem je napisan algoritam, tesko je dati ikakav odgovor Sad

bash tako...

Autoru:  damso [ 25 Okt 2006, 17:03 ]
Tema posta: 

Ovako:
U pitanju je Igra "4 in Line" ili connect 4.

Nasao sam jednu gresku u gornjem MinMaxu,a to je da u drugoj case opciji,treba
if (A>B) return B,umjesto return A

Igra „Four in Line“ se igra na sledeci nacin: data je tabela odredjene velicine(u ovom slucaju 10x15 polja); igraci biraju kolonu u koju zele da ubace svoj „novcic“; „novcic“ propada kroz tu kolonu sve dok ne padne na dno ili na neki „novcic“ koji je prethodno ubacen; cilj igraca je da povezu cetiri „novcica“ iste boje(svaki igrac ima „novcice“ odredjene boje) vertikalno, horizontalno ili dijagonalno. Pobednik je onaj igrac koji to uspe prvi. Ukoliko je tabela popunjena, onaj igrac koji nema mesta gde da odigra svoj potez, gubi partiju, tj. pobednik je onaj igrac koji je popunio poslednje mestu u tabeli. Igru igraju dva igraca.



Mislim da Sada nije problem u njemu vec u drugim dijeloima igre.
Ako ste zainteresovani da dobijete citav projekat igre sa grafickim okruzenjem,u pitanju je studentski projekat,javite.

Autoru:  che.guevara [ 25 Okt 2006, 18:22 ]
Tema posta: 

Ja bih to upakovao u java applet, stavio bih na svoju stranicu i link prema arhivi (tar.bz) sa sourceom i gotovo :)

Slobodno upotrebi moj recept ;)

Poz

Autoru:  damso [ 25 Okt 2006, 19:25 ]
Tema posta: 

bih ja ali ne znam kako :-?

Autoru:  che.guevara [ 27 Okt 2006, 11:30 ]
Tema posta: 

Cek kako to ne znas? Jel ovo Java code ili ne? Appleti su sala za programirati, moj cimer je napravio Swing aplikaciju posle 3 dana poveremenog citanja i testiranja nekih kodova iz - tu i tamo neke literature.

Autoru:  damso [ 27 Okt 2006, 12:40 ]
Tema posta: 

Pazi,sada sam se fokusirao na algoritam minmax,i heuristiku igre..ako sad pocnem da koplikujem sa apletima,puko sam(rokovi se priblizavaju).
Za sada mi radi lijepo okruzenje graficko,mada nisam ga ja pravio,i necu sebi da komplikujem.
Ako ste zainteresovani okacicu upakovano na neki sajt pa da se igrate.
vecina se vec nalazi na http://perun.im.ns.ac.yu/rackovic/vi1/4inLine.zip
Samo treba ubaciti fajlove igraca koji igraju igru.
To cu okaciti ako hocete..imam oko 10-tak gotovih igraca i jednog kojeg sam treba da napravim.

Autoru:  che.guevara [ 27 Okt 2006, 12:54 ]
Tema posta: 

damso je napisao:
puko sam(rokovi se priblizavaju).


E ako je tako onda je uredu ;)

Stranica 1 od 1 Sva vremena su u UTC [ DST ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/