banjalukaforum.com

Dobrodošli na banjalukaforum.com
Danas je 23 Jul 2025, 18:58

Sva vremena su u UTC [ DST ]




Započni novu temu Odgovori na temu  [ 10 Posta ] 
Autoru Poruka
 Tema posta: MinMax algoritam
PostPoslato: 23 Okt 2006, 18:13 
OffLine
Početnik
Početnik

Pridružio se: 01 Feb 2004, 23:45
Postovi: 37
Lokacija: doboj-novi sad
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

_________________
http://www.do-2.net


Vrh
 Profil  
 
 Tema posta:
PostPoslato: 24 Okt 2006, 13:08 
OffLine
Veteran
Veteran
Korisnikov avatar

Pridružio se: 10 Feb 2002, 01:00
Postovi: 1310
Lokacija: Wien, Österreich
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?

_________________
Pizzy sagt:
zlaja otiso u kurac
Pizzy sagt:
postao je umoran


Vrh
 Profil  
 
 Tema posta:
PostPoslato: 24 Okt 2006, 23:11 
OffLine
Urednik
Urednik

Pridružio se: 26 Jun 2003, 21:50
Postovi: 2669
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


Vrh
 Profil  
 
 Tema posta:
PostPoslato: 25 Okt 2006, 01:29 
OffLine
Veteran
Veteran
Korisnikov avatar

Pridružio se: 10 Feb 2002, 01:00
Postovi: 1310
Lokacija: Wien, Österreich
Citiraj:
Posto nije objasnjeno za kakav problem je napisan algoritam, tesko je dati ikakav odgovor Sad

bash tako...

_________________
Pizzy sagt:
zlaja otiso u kurac
Pizzy sagt:
postao je umoran


Vrh
 Profil  
 
 Tema posta:
PostPoslato: 25 Okt 2006, 17:03 
OffLine
Početnik
Početnik

Pridružio se: 01 Feb 2004, 23:45
Postovi: 37
Lokacija: doboj-novi sad
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.

_________________
http://www.do-2.net


Vrh
 Profil  
 
 Tema posta:
PostPoslato: 25 Okt 2006, 18:22 
OffLine
Urednik
Urednik

Pridružio se: 26 Jun 2003, 21:50
Postovi: 2669
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


Vrh
 Profil  
 
 Tema posta:
PostPoslato: 25 Okt 2006, 19:25 
OffLine
Početnik
Početnik

Pridružio se: 01 Feb 2004, 23:45
Postovi: 37
Lokacija: doboj-novi sad
bih ja ali ne znam kako :-?

_________________
http://www.do-2.net


Vrh
 Profil  
 
 Tema posta:
PostPoslato: 27 Okt 2006, 11:30 
OffLine
Urednik
Urednik

Pridružio se: 26 Jun 2003, 21:50
Postovi: 2669
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.


Vrh
 Profil  
 
 Tema posta:
PostPoslato: 27 Okt 2006, 12:40 
OffLine
Početnik
Početnik

Pridružio se: 01 Feb 2004, 23:45
Postovi: 37
Lokacija: doboj-novi sad
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.

_________________
http://www.do-2.net


Vrh
 Profil  
 
 Tema posta:
PostPoslato: 27 Okt 2006, 12:54 
OffLine
Urednik
Urednik

Pridružio se: 26 Jun 2003, 21:50
Postovi: 2669
damso je napisao:
puko sam(rokovi se priblizavaju).


E ako je tako onda je uredu ;)


Vrh
 Profil  
 
Prikaži postove u poslednjih:  Poređaj po  
Započni novu temu Odgovori na temu  [ 10 Posta ] 

Sva vremena su u UTC [ DST ]


Ko je OnLine

Korisnici koji su trenutno na forumu: Nema registrovanih korisnika i 1 gost


Ne možete postavljati nove teme u ovom forumu
Ne možete odgovarati na teme u ovom forumu
Ne možete monjati vaše postove u ovom forumu
Ne možete brisati vaše postove u ovom forumu
Ne možete slati prikačene fajlove u ovom forumu

Pronađi:
Idi na:  
Powered by phpBB® Forum Software © phpBB Group
Hosting BitLab
Prevod - www.CyberCom.rs