Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Robocode - ucenje jave i mnoooogo dobra zabava

[es] :: Java :: Robocode - ucenje jave i mnoooogo dobra zabava
(TOP topic)
Strane: 1 2 3 4

[ Pregleda: 58004 | Odgovora: 75 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

BlueSoniq
zaposlen / C#, ASP.NET senior
Beograd

Član broj: 11116
Poruke: 159
*.ptt.yu



Profil

icon Robocode - ucenje jave i mnoooogo dobra zabava29.10.2003. u 14:41 - pre 249 meseci
http://robocode.alphaworks.ibm.com/home/home.html

Na gornjoj adresi se nalazi razvojno okruzenje pisano u javi u kome mozete isprogramirati svoje tenkice i pustititi ih u arenu sa protivnikom. Komande su dosta jednostavne mada mozete praviti i slozeniji AI. Ukoliko neko hoce moze da se
oproba sa mojim tenkicem - mada i nije nesto specijalno. Kontakt na e-mail.
[email protected] /. Ukoliko bude malo vise zainteresovanih napravicemo ligu.
 
Odgovor na temu

weB_KiLeR

Član broj: 238
Poruke: 1317
*.air.tehnicom.net



Profil

icon Re: Robocode - ucenje jave i mnoooogo dobra zabava29.10.2003. u 18:29 - pre 249 meseci
Hmm vidis to je cool :)))
Inace secam se neke igrice u kojoj je fora da isprogramiras robota da odradi neki zadatak i ona kucas neki lagan kod koji ima sintaxu kao java i c... Inace sa tim sam se cimao bas je cool a i ovo cu da probam pa nek svako napravi svoj tenkic pa da se bijemo :))))
 
Odgovor na temu

alex
Aleksandar Radulovic
Senior Software Engineer, Spotify
Stockholm, Sweden

Član broj: 71
Poruke: 2194
*.du.heimsnet.is

Jabber: alex@a13x.info
ICQ: -1
Sajt: www.a13x.info


+1 Profil

icon Re: Robocode - ucenje jave i mnoooogo dobra zabava29.10.2003. u 19:46 - pre 249 meseci
Svojevremeno sam na starom Sezamu (seca li se ko toga? ) organizovao takmicenja sa programom PCrobots (veoma slicno ovim Java tenkovima), bila je liga i sve je islo super sve dok se nije otkrilo da je jedan od ucesnika umesto svog robota takmicara poturio neku mega-zvezdu robota pokupljenog sa interneta..

Mozete zamisliti sta je posle bilo od takmicenja.

U svakom slucaju, bilo je super dok je trajalo, i drage volje bih se prikljucio takmicenju.
Alex: My favorite site is http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.verat.net

Sajt: localhost


+5 Profil

icon Re: Robocode - ucenje jave i mnoooogo dobra zabava29.10.2003. u 20:25 - pre 249 meseci
da, i mi smo svojevremeno igrali PRobots (pascal verzija) na letnjim školama/pripremama. mada još u vreme "pre interneta" (khm), tako da niko nije ni mogao da vara.

i naravno, bio sam među najboljima ;)


stvarno je bilo jako zabavno. :) čak toliko da već neko vreme planiram da napravim i phpRobots port (naravno, otežava što php nema niti). primarno zato što je php sad toliko popularan, a i zato što većina novih klinaca ne vežba dovoljno svoje vijuge radeći samo "web prezentacije".



a što se ovih java botića, i ja sam vrlo zainteresovan :). prvo vreme koje ugrabim ide na programiranje ovih (i ja ne vežbam svoje vijuge dovoljno u poslednje vreme ;)

samo da vidimo da i ovde ne postoji isti problem oko varanja?
 
Odgovor na temu

weB_KiLeR

Član broj: 238
Poruke: 1317
*.air.tehnicom.net



Profil

icon Re: Robocode - ucenje jave i mnoooogo dobra zabava29.10.2003. u 21:13 - pre 249 meseci
Ajd ljudi da napravimo jedno malo takmicenje i naravno bez cheat-ovanja nije fora...
Ovo treba da bude cimanje a ne dokazivanje kome je veci i tako dalje :))))
 
Odgovor na temu

zAkiLi
Žarko Iličić
bgd

Član broj: 322
Poruke: 241
*.etf.bg.ac.yu



Profil

icon Re: Robocode - ucenje jave i mnoooogo dobra zabava29.10.2003. u 23:24 - pre 249 meseci
Ja sam pokusao da organizujem neko takmicenje na nivou fakulteta (FON-a), medjutim nisam naisao na preterano interesovanje, mrzi ljude da kodiraju :)

U svakom slucaju ja sam ZA.


 
Odgovor na temu

BlueSoniq
zaposlen / C#, ASP.NET senior
Beograd

Član broj: 11116
Poruke: 159
*.yubc.net



Profil

icon Re: Robocode - ucenje jave i mnoooogo dobra zabava30.10.2003. u 01:28 - pre 249 meseci

Mislim da ne moze biti varanja jer svaki robot ima potpis svog kreatora
i pakuje se u .jar file. Naravno postoje neke diskusije o tome da li je bolje
koristiti ovaj ili onaj nacin targetinga ili kako izbegavati metkice, ali
najvaznije je da se zna trigonometrija.

evo jednog primera koji dolazi sa programom

------------------**************************-----------------------
Code:

package sample;
import robocode.*;
/**
 * Tracker - a sample robot by Mathew Nelson
 * 
 * Locks onto a robot, moves close, fires when close.
 */
public class Tracker extends Robot
{
    int count = 0;            // Keeps track of how long we've
                            // been searching for our target
    double gunTurnAmt;        // How much to turn our gun when searching
    String trackName;        // Name of the robot we're currently tracking

    /**
     * run: Tracker's main run function
     */    
    public void run() {
        trackName = null;                    // Initialize to not tracking anyone
        setAdjustGunForRobotTurn(true);        // Keep the gun still when we turn
        gunTurnAmt = 10;                    // Initialize gunTurn to 10
        while (true) {
            // turn the Gun (looks for enemy)
            turnGunRight(gunTurnAmt);
            // Keep track of how long we've been looking
            count++;
            // If we've haven't seen our target for 2 turns, look left
            if (count > 2)                    
            {
                gunTurnAmt = -10;
            }
            // If we still haven't seen our target for 5 turns, look right
            if (count > 5)
                gunTurnAmt = 10;
            // If we *still* haven't seen our target after 10 turns, find another target
            if (count > 11)
                trackName = null;
        }
    }
    
    /**
     * onScannedRobot: Here's the good stuff
     */    
    public void onScannedRobot(ScannedRobotEvent e) {

        // If we have a target, and this isn't it, return immediately
        //  so we can get more ScannedRobotEvents.
        if (trackName != null && !e.getName().equals(trackName))
            return;

        // If we don't have a target, well, now we do!
        if (trackName == null) {
            trackName = e.getName();
            out.println("Tracking " + trackName);
        }
        // This is our target.  Reset count (see the run method)
        count = 0;
        // If our target is too far away, turn and move torward it.
        if (e.getDistance() > 150)
        {
            gunTurnAmt = normalRelativeAngle(e.getBearing() + (getHeading() - getRadarHeading()));
            
            turnGunRight(gunTurnAmt);        // Try changing these to setTurnGunRight,
            turnRight(e.getBearing());      // and see how much Tracker improves...
                                            // (you'll have to make Tracker an AdvancedRobot)
            ahead(e.getDistance() - 140);
            return;
        }

        // Our target is close.
        gunTurnAmt = normalRelativeAngle(e.getBearing() + (getHeading() - getRadarHeading()));
        turnGunRight(gunTurnAmt);
        fire(3);
        
        // Our target is too close!  Back up.
        if (e.getDistance() < 100)
        {
            if (e.getBearing() > -90 && e.getBearing() <= 90)
                back(40);
            else
                ahead(40);
        }
        scan();
 
    }
    
    /**
     * onHitRobot:  Set him as our new target
     */    
    public void onHitRobot(HitRobotEvent e) {
        // Only print if he's not already our target.
        if (trackName != null && !trackName.equals(e.getName()))
        {
            out.println("Tracking " + e.getName() + " due to collision");
        }
        // Set the target
        trackName = e.getName();
        // Back up a bit.
        // Note:  We won't get scan events while we're doing this!
        // An AdvancedRobot might use setBack(); execute();
        gunTurnAmt = normalRelativeAngle(e.getBearing() + (getHeading() - getRadarHeading()));
        turnGunRight(gunTurnAmt);
        fire(3);
        back(50);
    }

    /**
     * onWin:  Do a victory dance
     */    
    public void onWin(WinEvent e) {
        for (int i = 0; i < 50; i++)
        {
            turnRight(30);
            turnLeft(30);
        }
    }
    
    // normalAbsoluteAngle is not used in this robot,
    // but is here for reference.
    /**
     * normalAbsoluteAngle:  returns angle such that 0 <= angle < 360
     */    
    public double normalAbsoluteAngle(double angle) {
        if (angle >= 0 && angle < 360)
            return angle;
        double fixedAngle = angle;
        while (fixedAngle < 0)
            fixedAngle += 360;
        while (fixedAngle >= 360)
            fixedAngle -= 360;
        return fixedAngle;
    }
    
    /**
     * normalRelativeAngle:  returns angle such that -180<angle<=180
     */    
    public double normalRelativeAngle(double angle) {
        if (angle > -180 && angle <= 180)
            return angle;
        double fixedAngle = angle;
        while (fixedAngle <= -180)
            fixedAngle += 360;
        while (fixedAngle > 180)
            fixedAngle -= 360;
        return fixedAngle;
    }

}                                                                                                            
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: Robocode - ucenje jave i mnoooogo dobra zabava30.10.2003. u 13:43 - pre 249 meseci
Ja sam izmenio gornju poruku i JAVA kod stavio onako kako treba... Molim vas da SORS KOD stavljate unutar "code" tagova!
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.verat.net

Sajt: localhost


+5 Profil

icon Re: Robocode - ucenje jave i mnoooogo dobra zabava01.11.2003. u 14:49 - pre 249 meseci
evo, ja trenutno radim na kretanju (relativno je nezavisna operacija od skeniranja/pucanja), i lepo sam sve isprogramirao (kako sam zamislio) u slučaju kretanja bota u napred, ali kada udari u prepreku, najbolja taktika (bar koliko ja mogu da predpostavim) je da odmah krenem unazad.

e tu već imam problem. izgleda da sam našao "logičnu grešku" u robocode aplikaciji.

naime, znate valjda svi da kada vozite kola u rikverc, ako volan okrenete na desno, opet skrećete desno, nezavisno od toga što idete u rikverc.

ali u robocode, ako pozovem funkciju setTurnRight(90) dok idem u nazad, robot skreće u levo (iako recimo funkcija getHeading() vraća ugao koji potvrđuje da nisam okrenut, tj da stvarno idem u rikverc).

no, moraću ovo da rešim nekako, ili da smišljam drugu taktiku (natrag za crtaću tablu).


nego, napreduje li još neko, ili ću ja da se igram sam sa sobom ;)
 
Odgovor na temu

weB_KiLeR

Član broj: 238
Poruke: 1317
*.air.tehnicom.net



Profil

icon Re: Robocode - ucenje jave i mnoooogo dobra zabava01.11.2003. u 18:11 - pre 249 meseci
Ja sam nov u ovome pa jos proucavam API-je tj sta sve moze :)))
Uglavnom smislio sam od prilike kako i sta, dosta je vazno i da odredite ponasanje tenka prema protivniku tj koliko ima health-a koliko ovo ono itd...
Meni ce trebati jedno nedelju dana da sklepam pa cemo pravimo ono probni test da vidimo kako ide i tako to :))) (jbg nemam vremena da ga radim) :(
 
Odgovor na temu

BlueSoniq
zaposlen / C#, ASP.NET senior
Beograd

Član broj: 11116
Poruke: 159
*.ptt.yu



Profil

icon Re: Robocode - ucenje jave i mnoooogo dobra zabava01.11.2003. u 18:25 - pre 249 meseci

Najbolje bi bilo da tenkic uopste ne udari u zid jer gubi mnogo energije. Treba da se ubaci funkcija koja testira getX() ondnosno getY() i ako je blizu nekog zida da
ga odmah posalje u sredinu ili blizu.

Najbolje je takodje koristiti kretanje sa setAhead() i setTurnLeft() nego
ahead() i turnLeft() zato sto se ceka na zavrsetak svake. Sta to znaci, pa ne moze tenkic da istovremeno skrece i ide napred.

Kod pucanja bi trebalo da se obrati paznja i na presretanje ondnosno brzina metaka
je ogranicena i iznosi 20-(power*3); sto znaci sto je manja snaga i metkic je brzi.

Ostecenje koje metak prouzrokuje se takodje izracunava i nije linearno vec ima
jos neki dodatni bonus ako je preko 2.

Snaga metka moze biti (0.1 - 3).

Ukoliko je cev topa pregrejana on nece pucati. To moze da se proveri pomocu
funkcije cini mi se gunHeat()==0;

Ima ceo tutorijal na site + Odlican FAQ.

Moglo bi se naci i par dobrih trigonometrijskih funkcija od nekih freakova.
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.verat.net

Sajt: localhost


+5 Profil

icon Re: Robocode - ucenje jave i mnoooogo dobra zabava02.11.2003. u 03:18 - pre 249 meseci
killer: pa i ja sam nov ;). prvi put sam za ovo čuo kad je ovde postovano. a to što sam igrao PRobots nije neka prednost. ovo se dosta razlikuje, mnogo je komplexnije, a i to davno beše ;)


bluesoniq: nisam rekao zid. rekao sam "prepreka", što može biti drugi robot, ili (retko) zid. naravno da treba izbegavati zidove u "normalnim" okolnostima ;)

inače, apsolutno se slažem da je bolje koristiti neblokirajuće funkcije. jeste malo "komplikovanije" da se isprogramira od klasičnog "okreni se ovamo, pomeri se napred..", ali ima prednosti. tenk je ipak najranjiviji kada stoji (tj i kada se okreće).

nego, vidim da znaš teoriju. oćemo skoro da vidimo neku praxu? ;)


inače, moj robot već zna da se kreće (i u rikverc ;), a sada ga učim da koči u krivinama (tj do pola krivine usporava, a posle.. :-P). samo da završim ovo kretanje, i dodam neko prosto nišanjenje/pucanje, okačiću ga negde..
 
Odgovor na temu

Gojko Vujovic
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13651



+165 Profil

icon Re: Robocode - ucenje jave i mnoooogo dobra zabava02.11.2003. u 10:39 - pre 249 meseci
Napravio sam i ja nekog svog robota samo izgleda da je mnogo glup za sada pošto uvek prvi zgine u borbi sa sample robotima. :))

Moraću da smislim neku taktiku razvoja i kakvog to robota uopšte pravim, ovako nasumično dodavanje funkcija ne ide. Kako mu pravite AI, ja sam razmišljao da krenem da vodim evidenciju o svim robotima koje je sreo (i da to piše na disk; hint: advancedrobot), možda ima smisla koristiti informacije o tome u narednim partijama? Tipa nauči koji robot je najizdržljiviji pa onda beži od njega kad ga ugleda.

Copyright na ideju (c) 2003 by Gojko. :)))
 
Odgovor na temu

gojava
Velika Srbija
Srbija

Član broj: 4032
Poruke: 442
*.zastava.net.



+1 Profil

icon Re: Robocode - ucenje jave i mnoooogo dobra zabava03.11.2003. u 07:45 - pre 249 meseci
Malo sam se prosetao sajtovima koji su u vezi sa temom i vidim da je to vec poodmakla stvar.

Nisam siguran odakle da pocnem da bih se sto pre ukljucio u igru, a pravo da vam kazem nije mi 20 god. da bih imao vremena napretek da se zezam mnogo sa nekom igricom.
Ono sto hocu da kazem je da ako neko od Vas ko je malo vise ukljucen u igru ima volje, mogao bi da otvori neki mali sajt (par stranica) gde bi bilo objasnjeno odakle treba poceti i gde se nalaze dobra uputstva i sl. da bi moglo sto brze da se napreduje, tj. koji su to pravi koraci za pravilno napredovanje.

Inace podrzavam ideju da se dobro igramo na net-u.


"Bolje je ćutati i pustiti druge da misle da si glup, nego progovoriti i time otkloniti svaku sumnju." - Bernard Šo

 
Odgovor na temu

zWer!
Aleksandar
NED

Član broj: 15820
Poruke: 2
*.net-62.58.36.atobe.nl



Profil

icon Re: Robocode - ucenje jave i mnoooogo dobra zabava03.11.2003. u 10:46 - pre 249 meseci
Pozdrav svima. Na preporuku BlueSoniq-a evo i mene na forumu. Inace, indirektno i ja sam 'kriv' za ovaj topic pa evo da doprinesem razvoju ove discipline sa par korisnih linkova.

- sajt koji sluzi kao skladiste za robote (kad ga napravite i zadovoljni ste sa njim mozete da ga uploadujete)
http://robocoderepository.com/

- jedna od najmasovnijih liga na netu
http://robowiki.dyndns.org/perl/robowiki?RoboRumble

Inace Zwer jos uvek nije na Repositoriju jer jos uvek raste. Nezreo je da bi se umesao u frku sa velikanima. Mora ime da opravda
 
Odgovor na temu

BlueSoniq
zaposlen / C#, ASP.NET senior
Beograd

Član broj: 11116
Poruke: 159
*.yubc.net



Profil

icon Re: Robocode - ucenje jave i mnoooogo dobra zabava03.11.2003. u 17:05 - pre 249 meseci
AI robotica bi se mogao grubo podeliti (na klase) na sledeci nacin:

Nisanjenje:
Predvidjanje putanje robota, presretanje tj. pucanje ispred kretanja tenkica, odredjivanje snage metkica.

Kretanje:
Odabir najbolje taktike izbegavanja: oscilatorno kretanje, random kretanje, kretanje u krug oko protivnika, izbegavanje prepreka, udaljavanje od protivnika ili priblizavanje ukoliko je predaleko.

Pravljenje baze podataka o uspesnim i neuspesnim mecima i ponasanju protivnika zbog predvidjanja njegove putanje (pattern matchong) pomocu implementacije Serializable.

za zombia:
Jeste tenk je najranjiviji kad stoji, mada ukoliiko neko koristi presretanje, neki put to moze da mu spase glavu. Tako da bih dodao da je tenk najranjiviji kad se krece pravolinijski u bilo kom pravcu.

Generalne instrukcije: ko hoce....

Napraviti nekoliko funkcija i smestitit ih u void run()

do movment
do scener
do gun
do fire
do stat

napraviti klasu enemy
u njoj drzati podatke u skeniranom neprijatelju.

skener se krece 45 stepeni po jednom tick-u(vremenska jedinica u robotcodu)
gun se krece 20 stepeni po jednom ticku
robotova maksimalna brzina je 8 tacaka u jednom ticku
robot najbrze skrece kada stoji, dobro ovo ste znali ali....
ima jos tih pravila ali sada nemugu sve da ih nabrojim.

obiman tutorijal je na vec spomenutom sajtu.








 
Odgovor na temu

BlueSoniq
zaposlen / C#, ASP.NET senior
Beograd

Član broj: 11116
Poruke: 159
*.yubc.net



Profil

icon Re: Robocode - ucenje jave i mnoooogo dobra zabava03.11.2003. u 17:10 - pre 249 meseci
Citat:
zWer!:
Pozdrav svima. Na preporuku BlueSoniq-a evo i mene na forumu. Inace, indirektno i ja sam 'kriv' za ovaj topic pa evo da doprinesem razvoju ove discipline sa par korisnih linkova.

- sajt koji sluzi kao skladiste za robote (kad ga napravite i zadovoljni ste sa njim mozete da ga uploadujete)
http://robocoderepository.com/

- jedna od najmasovnijih liga na netu
http://robowiki.dyndns.org/perl/robowiki?RoboRumble

Inace Zwer jos uvek nije na Repositoriju jer jos uvek raste. Nezreo je da bi se umesao u frku sa velikanima. Mora ime da opravda


Zwer je ne samo sto je odgovaran sto sam se zapalio za tenkice nego je uopste kriv sto sam nekoliko noci probdeo nervirajuci se i pisuci nekoliko robota od samog pocetka. Shame on you zWeri!!!!!!!!!!!!!!!!!!!!


Evo mog skromnog robotica. Ubacite ga u dir gde pise robots.


Ali doslo je i mojih pet minuta nasa dva tenkica sada stoje rame uz rame, cak i biju neke dobre tenkice sa repositary-ja. npr simone.03d

Najbolji robot na celom 'svetu ' je SandBoxDT, mozete ga skinuti sa repositary-ja naravno bez sours koda. Dobri su i Tron, microAspid pa kad ih skinete, nemojte se
razocarati kao ja kad krenu da vas kidaju na parcad.


Prikačeni fajlovi
 
Odgovor na temu

Shinhan
PHP programmer
Subotica

Član broj: 12327
Poruke: 372
*.185.EUnet.yu

Jabber: shinhan@elitesecurity.org
ICQ: 400847988


+4 Profil

icon Re: Robocode - ucenje jave i mnoooogo dobra zabava01.12.2003. u 09:56 - pre 248 meseci
Sad sam tek èuo o ovome, pa sam pomislio da bi ovo bilo dobra prilika da nauèim Javu :)

E sad, hteo sam još nešto da vam pokažem: http://www.programmersheaven.com/zone8/cat122/1001.htm

To vam je programèiæè koji prikazuje više movement algoritama. Ne znam koliko je to primenjivo baš u Robocode (možda vam se svidi neki od naprednijih algoritama?), ali mislim da je zanimljiv primer.
"Common sense is not so common." - Voltaire
 
Odgovor na temu

BlueSoniq
zaposlen / C#, ASP.NET senior
Beograd

Član broj: 11116
Poruke: 159
*.yubc.net



Profil

icon Re: Robocode - ucenje jave i mnoooogo dobra zabava17.12.2003. u 16:02 - pre 247 meseci
Zar niko nije napravio svog robota. Pa proslo je skoro 2 i slovima dva meseca ???
Gde je domaca liga? Pa prvenstvo, pa kvalifikacije, pa sta sve tu vec ima?
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.dial.InfoSky.Net

Sajt: localhost


+5 Profil

icon Re: Robocode - ucenje jave i mnoooogo dobra zabava18.12.2003. u 13:06 - pre 247 meseci
kriv sam.

ja sam mog počeo, baš sam se trudio par dana, i tek što je prohodao, morao sam da se okrenem nekim "bitnijim" stvarima u životu ;(

i mada i u skorije vreme ne liči da ću biti slobodniji, evo javno obaćavam (da bih sebe naterao ;) da ću uskoro privršiti jednog robotića.. :-P

ostali?
 
Odgovor na temu

[es] :: Java :: Robocode - ucenje jave i mnoooogo dobra zabava
(TOP topic)
Strane: 1 2 3 4

[ Pregleda: 58004 | Odgovora: 75 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.