[JAVA] robocode!

Pagina: 1 2 Laatste
Acties:
  • 807 views sinds 30-01-2008
  • Reageer

  • Morphs
  • Registratie: Augustus 2000
  • Laatst online: 21-05-2025
Voor iedereen die een beetje java kan programmeren en robotwars cool vindt: http://www.robocode.net

Robocode is een Java spelletje waarbij verschillende robots het tegen elkaar opnemen. De robots zijn allemaal verschillend en gebruiken verschillende taktieken om de tegenstanders te verslaan.

Wat is nou het mooie? De robots zijn in Java geprogrammeerd, je kunt dus je eigen robot programmeren die je met z'n eigen taktieken in de strijd laat gaan.

Het aantal mogelijkheden is supergroot. In feite zijn de robots een soort tankjes die kunnen rijden en schieten. Ook zit er een radar op waarmee je andere robots kunt opsporen en waarmee je informatie van andere robots kunt krijgen.

Je kunt het zo gek niet bedenken of je kunt het programmeren, hoe creatiever hoe beter want je kunt je robot op allerlei manieren zo slim maken als je zelf wilt.

En het mooiste is natuurlijk om robots van andere mensen te downloaden zodat je kunt zien of je eigen robot beter is.....

Misschien kunnen we wel een tweaker-competitie maken :)

Anyway, check de link maar, dan zul je het snel genoeg begrijpen.... veel plezier :)

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

klinkt erg leuk :)
* wasigh kijkt

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 16:30

Janoz

Moderator Devschuur®

!litemod

* Janoz leest ook ff... Hier trouwens de link naar de officiele site omdat de maker van bovengenoemde site denkt dat zijn site er binnenkort uit ligt......

http://robocode.alphaworks.ibm.com/home/home.html

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • tomato
  • Registratie: November 1999
  • Niet online
Op donderdag 13 september 2001 21:46 schreef Janoz het volgende:
* Janoz leest ook ff... Hier trouwens de link naar de officiele site omdat de maker van bovengenoemde site denkt dat zijn site er binnenkort uit ligt......

http://robocode.alphaworks.ibm.com/home/home.html
Euh... dat zou begin deze week geweest zijn ;)

  • Tim
  • Registratie: Mei 2000
  • Laatst online: 23-07 15:18

Tim

er stond hier laatst ook al zo'n spelletje waar je (erg simpelistische) robotjes moest programeren bij het koloniseren van een planeet, was ook wel geinig..
Even kijken hoor :)

Er was ook zo'n variant via email toch? moest je je c code emailen :)

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Erg Stoer. :)
Zit echt leuk in elkaar
* wasigh heeft een nieuwe hobby
;)

  • Tim
  • Registratie: Mei 2000
  • Laatst online: 23-07 15:18

Tim

waneer is de eerste match? ;)

  • Glival
  • Registratie: December 1999
  • Laatst online: 05-09 21:59
Er zijn heel veel van dat soort competities, zie http://www.cs.mcgill.ca/~stever/games voor een verzameling. Ik vind zelf c++robots wel cool.

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op donderdag 13 september 2001 22:17 schreef Timpie2000 het volgende:
waneer is de eerste match? ;)
is dat een uitdaging :D

  • Slamdance
  • Registratie: Juni 2001
  • Laatst online: 11-09 09:46
het lijkt me wel leuk dit.
Morgen staat het bij mij ook op de pc :P :9

Verwijderd

Yeah me robot hakt MyFirstRobot al in de pan >:)

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 14-09 17:42

Gerco

Professional Newbie

Ik heb c++robots ook gedaan, zelfs nog geprobeerd wat tweakers over te halen, maar blijkbaar schrikte c++ wat af, aangezien er weinig respons was.

Ik denk dat er meer tweakers java spreken dan c++, dus dat zit wel snor.

* Gerco slaat aan het proggen.

PS. Misschien een idee om al ONZE bots [GoT]Naam te noemen? Dan herkennen we elkaar.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

/me grijnst
Di's wel koel! Ik weet alleen niet of ik veel tijd zal hebben om hieraan te besteden. Wel een leuke kans om weer eens wat met Java te spelen.

  • T.T.
  • Registratie: April 2000
  • Laatst online: 22-01 14:13

T.T.

Sowieso

* T.T. kijkt ook ff :)

f34r my J4v4 $k1llz ;)

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op vrijdag 14 september 2001 12:25 schreef T.T. het volgende:
* T.T. kijkt ook ff :)

f34r my J4v4 $k1llz ;)
Ge komt maar :)

volgende week eerste battle :? >:)

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op vrijdag 14 september 2001 13:21 schreef wasigh het volgende:
Ge komt maar :)

volgende week eerste battle :? >:)
Ik ben een paar dagen geleden ook ff bezig geweest, en mijn botje kan nu oa 'walls' verslaan (jaja! ;)) :)

Meedoen met een GoT battle wil ik ook wel!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 14-09 17:42

Gerco

Professional Newbie

Ik had de architectuur van het spel verkeerd begrepen. Jammer dat er geen online battles zijn.

Dan moeten we iemand zover krijgen dat hij/zij battles gaat hosten. Wie?

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

voor zover ik weet bestond er ook al zoiets op http://jrobots.cfxweb.net/

  • Kresh
  • Registratie: Mei 2000
  • Laatst online: 02-03 09:27
heb ook ff gekeken
ziet er wel leuk uit, toch maar weer eens in java gaan programmeren dan..

best lastig nog :D

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Het is wel een leuke en speelse manier om kennis te maken met Java :)

Verwijderd

Ik vind het echt kewl 8-) Het is inderdaad erg lastig, en een thread maken om de gun te draaien terwijl hij rijdt werkt helaas niet >:)

  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 07:36
Ze wijken alleen wel een beetje af met de graden van wat ik bij goniometrie/meetkunde geleerd heb...

Dit is wat ik ken:
code:
1
2
3
4
5
    90
     |
180 -O- 0/360
     |
    270

Maar dit is wat er door RoboCode gebruikt wordt:
code:
1
2
3
4
5
    360/0
     |
270 -O- 90
     |
    180

Is niet echt bepaald handig aangezien de routines Math.* routines als acos, asin volgens mij de eerste eenheidscirkel gebruiken...

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 14-09 17:42

Gerco

Professional Newbie

Op vrijdag 14 september 2001 16:40 schreef Zef het volgende:
Ik vind het echt kewl 8-) Het is inderdaad erg lastig, en een thread maken om de gun te draaien terwijl hij rijdt werkt helaas niet >:)
Dan moet je AdvancedRobot subclassen. Dan heb je non-blocking calls.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • Bart Coppens
  • Registratie: April 2000
  • Laatst online: 25-11-2021
Op vrijdag 14 september 2001 17:00 schreef Jelmer Barhorst het volgende:
Ze wijken alleen wel een beetje af met de graden van wat ik bij goniometrie/meetkunde geleerd heb...

Dit is wat ik ken:
code:
1
...

Maar dit is wat er door RoboCode gebruikt wordt:
code:
1
...

Is niet echt bepaald handig aangezien de routines Math.* routines als acos, asin volgens mij de eerste eenheidscirkel gebruiken...
In wiskunde is het wel zo, maar voor meer alledaagse toepasingen (denk aan een kompas) wordt toch de 'RoboCode-methode' gebruikt, denk ik.
Edit: dom van mij, ik had het regeltje onder de laatste /code niet gelezen.

Copyright Auteur heeft Tweakers.net BV geen exclusieve licentie op bovenstaande post verleend. Voorafgaande en uitdrukkelijke schriftelijke toestemming van Tweakers.net BV is dus niet noodzakelijk voor het vermenigvuldigen van bovenstaande post


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op vrijdag 14 september 2001 14:23 schreef Gerco het volgende:
Ik had de architectuur van het spel verkeerd begrepen. Jammer dat er geen online battles zijn.

Dan moeten we iemand zover krijgen dat hij/zij battles gaat hosten. Wie?
Valt dat in het rijtje van gewoon webhosten, of iets wat er op lijkt, dan weet ik maybe wel wat.

Verwijderd

Op vrijdag 14 september 2001 17:31 schreef Gerco het volgende:

[..]

Dan moet je AdvancedRobot subclassen. Dan heb je non-blocking calls.
Oh, het kan dus wel. Even kijken.

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
My First Robot
I recommend you look at all the sample robots to see how certain things are done.

You'll eventually want to look at the Robocode API to see all the other things your robot can do.

In the near future I'll provide a way for you to upload your robot, and download robots other people have created. You should look forward to some contests as well. :)

Above all, good luck, have fun, and enjoy!

-Mat

All your base are belong to us
haha ;)

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 14-09 17:42

Gerco

Professional Newbie

Op vrijdag 14 september 2001 17:35 schreef Nielsz het volgende:
Valt dat in het rijtje van gewoon webhosten, of iets wat er op lijkt, dan weet ik maybe wel wat.
Nee, iemand moet dan gewoon onze robots ge-emaild krijgen ofzo en handmatig battles starten en resultaten opnemen voor zover ik weet.

Ik weet niet of de source erbij zit, maar anders valt de boel misschien wel om te bouwen tot een soort server.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

De class files zitten in robocode.jar volgens mij, en die kun je dan weer decompileren, of het mag is een andere vraag.

Verwijderd

Op vrijdag 14 september 2001 18:40 schreef Zef het volgende:
De class files zitten in robocode.jar volgens mij, en die kun je dan weer decompileren, of het mag is een andere vraag.
Uit de license van RoboCode:
You may copy the Software for backup only. You may not: 1) merge, distribute (for free or for sale) or sublicense the Software; 2) reverse assemble, reverse compile, or otherwise translate the Software.

Het is dus overigens wel mogelijk om ze te decompilen .. D'r is geen obfuscator enzo overheen geweest...

[doorgraafmode]'t lijkt me trouwens wel gaaf om zo'n site te hebben waar je dus echt een live contest hebt, dat je allemaal met een applet naar dezelfde wedstrijd kan kijken enzo .. Met echte competities enzo .. Nouja, weer wat leuks om over na te denken en nooit te programmeren[/doordraafmode]

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

heeft er al iemand een Robotje af?
ik heb net een simpele gemaakt. best geinig:
-> hij kiest random een hoek om naar toe te gaan
-> hij scant de omgeving af en schiet als het een vijand is
(vrienden zijn bots die de subString "Wasigh" in hun naam hebben. We wasigh bots schieten dus niet op elkaar :)

  • Tim
  • Registratie: Mei 2000
  • Laatst online: 23-07 15:18

Tim

Op vrijdag 14 september 2001 20:32 schreef wasigh het volgende:
heeft er al iemand een Robotje af?
ik heb net een simpele gemaakt. best geinig:
-> hij kiest random een hoek om naar toe te gaan
-> hij scant de omgeving af en schiet als het een vijand is
(vrienden zijn bots die de subString "Wasigh" in hun naam hebben. We wasigh bots schieten dus niet op elkaar :)
hoe kan er dan iemand winnen? :)

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op vrijdag 14 september 2001 21:11 schreef Timpie2000 het volgende:

[..]

hoe kan er dan iemand winnen? :)
Nou de wasigh bots schieten niet op elkaar wel op de rest.
Als er 2 wasighBots overblijven schieten degene met de hoogste "health" op degene met de laagste (not Yet implemented)

de bedoeling is dat ze elkaar dadelijk opzoeken, en in groepjes de rest aanvallen (beware!)

  • KompjoeFriek
  • Registratie: Maart 2001
  • Laatst online: 02-01 05:18

KompjoeFriek

Statsidioot

Lijkt me wel lache, ben nou bezig met downloade...

Dan hoop ik dat er iemand een robot met "Windoos" in de naam geeft >:)

Ga straks ook ff een robotje bouwen: [GoT]Windoos-Vernieler

En het lijkt me wel gaaf als dit On-Line te spelen word.
(Of iemand die gewoon toernooien host op z'n eige pc, en dan de uitslage bekend maakt)

WhatPulse! - Rosetta@Home - Docking@Home


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op vrijdag 14 september 2001 21:43 schreef Windoos-vernieler het volgende:
Lijkt me wel lache, ben nou bezig met downloade...

Dan hoop ik dat er iemand een robot met "Windoos" in de naam geeft >:)

Ga straks ook ff een robotje bouwen: [GoT]Windoos-Vernieler

En het lijkt me wel gaaf als dit On-Line te spelen word.
(Of iemand die gewoon toernooien host op z'n eige pc, en dan de uitslage bekend maakt)
[GoT]Windoos-Vernieler
zal niet makkelijk gaan ;)
aangezien het legale Java class names moeten zijn ;)

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Afbeeldingslocatie: http://www.wasigh.com/images/highscoreBot.jpg

Jaja, hij doet het al redelijk ;)
* wasigh vermaakt zich wel!

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
10 rondes:
Afbeeldingslocatie: http://members.home.nl/klimstra/untitled.jpg

en dat terwijl ik alleen nog met de navigatie bezig ben geweest :D

* marcusk vermaakt zich ook wel ;)

  • MaxxRide
  • Registratie: April 2000
  • Laatst online: 09-01 10:13

MaxxRide

Surf's up

Echt pretty kewl...
Ik zal (als ik er tijd voor heb) ook eens even proberen een robotje te bouwens...

I LOVE THIS :)

If you are not wiping out you are nog pushing enough...


  • Slamdance
  • Registratie: Juni 2001
  • Laatst online: 11-09 09:46
10 Rondes:
Afbeeldingslocatie: http://www.kabel.netvisit.nl/~baart01/RoboCode.jpg

Het gaat inmiddels al iets beter.

Verwijderd

Ik vind het steeds leuker worden >:)
Afbeeldingslocatie: http://members.chello.nl/b.versteegh/robocode.jpg
10 rondes

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

jullie moeten toch even jullie bots opsturen...
dan kunnen we echt vergelijken! >:)

Verwijderd

Op zaterdag 15 september 2001 11:35 schreef wasigh het volgende:
jullie moeten toch even jullie bots opsturen...
dan kunnen we echt vergelijken! >:)
Me moeten echt (als er genoeg mensen zijn) een GoT league beginnen!

  • Slamdance
  • Registratie: Juni 2001
  • Laatst online: 11-09 09:46
Op zaterdag 15 september 2001 11:35 schreef wasigh het volgende:
jullie moeten toch even jullie bots opsturen...
dan kunnen we echt vergelijken! >:)
Die van mij is nog een beetje spastisch rond aan het rijden en schieten dus denk dat het nog niet zoveel zin heeft. :P :P :P

en dan moet ik ook die JAVA opdracht van school nog maken :'(

  • Tim Schuhmacher
  • Registratie: Januari 2000
  • Laatst online: 12:33

Tim Schuhmacher

abasios

ik wil me hier ook wel in gaan verdiepen en denk het ook wel te gaan doen (beetje druk met stage).
Een competitie lijkt mij wel leuk, maar dan moet er wel iemand opstaan om het te coordineren / organiseren.

  • Slamdance
  • Registratie: Juni 2001
  • Laatst online: 11-09 09:46
Het resultaat na 10 rondes:
Afbeeldingslocatie: http://www.kabel.netvisit.nl/~baart01/RoboResult.jpg

De winning bot!!!! :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package aa;
import robocode.*;

/**
 * Circle - a robot by (Slamdance)
 */
public class Circle extends AdvancedRobot
{
    boolean once = true;
    public void run() {
        while(true) {
            if(once){
                turnGunLeft(90);
                once = false;
            }
            setTurnLeft(1000000);
            ahead(100000);
        }
    }
}

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op zaterdag 15 september 2001 16:21 schreef Slamdance het volgende:
Het resultaat na 10 rondes:
[afbeelding]

De winning bot!!!! :
code:
1
...
Huh? hij schiet helemaal niet ? :)

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Op vrijdag 14 september 2001 21:21 schreef wasigh het volgende:

[..]

Nou de wasigh bots schieten niet op elkaar wel op de rest.
Maak ik een Wasigh botje die op jouw schiet, schiet jij de rest overhoop >:)

Verwijderd

Ehm heel erg cool concept maareh ik zit wel met 1 probleempje. Kheb al een tijdje java op school gehad en dat object geoorienteerd programeren werkt echt supercool dus dacht ik laat ik eens een object Aimer gaan maken die voor mij kan gaat richten, wat blijkt nu?? ik mag geen objecten aanmaken alleen nieuwe functies. Wanneer ik een nieuw object aanmaak crashed mijn robot. Doe ik iets fout of mag ik niet OOP?

  • Slamdance
  • Registratie: Juni 2001
  • Laatst online: 11-09 09:46
Op zaterdag 15 september 2001 16:28 schreef marcusk het volgende:

Huh? hij schiet helemaal niet ? :)
Nee hij heeft helemaal geen Fire Code!! *D

Ik was daarom ook erg verbaasd dat hij toch nog een aantal keren won.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op zaterdag 15 september 2001 16:32 schreef Reneos het volgende:
Ehm heel erg cool concept maareh ik zit wel met 1 probleempje. Kheb al een tijdje java op school gehad en dat object geoorienteerd programeren werkt echt supercool dus dacht ik laat ik eens een object Aimer gaan maken die voor mij kan gaat richten, wat blijkt nu?? ik mag geen objecten aanmaken alleen nieuwe functies. Wanneer ik een nieuw object aanmaak crashed mijn robot. Doe ik iets fout of mag ik niet OOP?
Dat kan wel hoor. Kijk eens in de console v/d bot (op het knopje van de naam klikken), dan zie je de fout misschien.

  • Slamdance
  • Registratie: Juni 2001
  • Laatst online: 11-09 09:46
voor de mensen die de bot een ander uiterlijk willen geven is hier de code.
code:
1
2
3
4
5
6
    public botnaam() {
        super();
        setRobotImageName("bodyimage.gif"); 
        setGunImageName("gunimage.gif"); 
        setRadarImageName("radarimage.gif");
    }

geen verssingen hier.

echter de images moeten niet in de dir van de bot staan maar in de RoboCode dir bij de Jar filetjes.

Verwijderd

Ok ik hoor van marcusk dus dat Object georienteerd programmeren wel kan maar deze code pakt ie al niet, en dan heb ik het wel superbasic gehouden.

package rs;
import robocode.*;

public class Rene extends AdvancedRobot
{
public void run() {

while(true) {
setAhead(40000);
setTurnRight(90);
waitFor(new TurnCompleteCondition(this));
}
}

public void onScannedRobot(ScannedRobotEvent e) {
RsTest r = new RsTest();
fire(r.firepower());
this.getBattleFieldHeight();
}
}

class RsTest
{
public int firepower()
{ return 1; }
}

hij loopt vast op het onscannedrobot event. en ik krijg deze melding

SYSTEM: rs.Rene has not performed any actions in a reasonable amount of time.
SYSTEM: This robot may receive skipped turn events.

volgens mij kan het echt niet hoor ;( probeer het maar uit. Ok bij elk event een nieuw object creeeren is nogal loos maar het is gewoon een test.

ps die opmaak komt door copy paste, ik weet wel wat inspringen is :)

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
Als jullie een paar botjes naar mij sturen dan zal ik ze wel eens ff met zijn alle laten battelen en dan post ik de stats wel..

mail: bram@fotosoep.nl

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op zaterdag 15 september 2001 17:18 schreef Reneos het volgende:volgens mij kan het echt niet hoor ;( probeer het maar uit. Ok bij elk event een nieuw object creeeren is nogal loos maar het is gewoon een test.
Java - OO ~= 0, dus het kan zeker wel :)

Verwijderd

Op zaterdag 15 september 2001 17:54 schreef marcusk het volgende:

[..]

Java - OO ~= 0, dus het kan zeker wel :)
is het iemand al gelukt dan?

Dit is natuurlijk niet geheel java he? dit is een programma die java classes snapt als ze voldoen aan een aantal voorwaarden. 1 van die voorwaarden kan best zijn dat er geen gebruik gemaakt kan worden van eigen gemaakte klassen alleen de standaard java classes. Ik vind het zoiezo al een knap staaltje werk dat ze dit zo mooi voor elkaar hebben gekregen.

Om het dan maar in een formulevorm te zetten

Java - (2/3 * OO) ~= 1/3 Java. :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Reneos: Dit is natuurlijk niet geheel java he?
Ben je teleurgesteld als ik zeg dat het dat volgens mij wel is? ;) . Ik denk dat de code gewoon via reflectie en het gebruik van interfaces wordt ingeladen en uitgevoerd. Wellicht dat er ook code checks in zitten (heb het tooltje nog niet bekeken) maar dat staat daar verder los van.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Reneos, je hebt gelijk. Bij mij werkt het ook niet. Met innerclasses echter werkt het wel, dus:
code:
1
2
3
4
5
6
7
8
public class SuperRobotGeval extends AdvancedRobot
{
    ...
    private class Test
    {
      public int test() { return 1; }
    }
}

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Jawel het werkt wel, het zit alleen aan een aantal voorwaarden verbonden.
Elke zoveel miliseconden moet het Robotje iets doen. Anders krijg je zo'n error
En het aanmaken van een object kost nogal de nodige milliseconden. Verder moet je bij de AdvancedBot volgens mij Zelf het einde van je turn aangeven.

Het is trouwens wel puur java. Met een aangepaste ClassLoader. Er zit nog een bug in.
Je kunt Thread's van andere bot's in Prioriteit verlagen ;)

Verwijderd

Ahh kijk dat kan natuurlijk ook. Ik heb innerclasses nog nooit gebruikt omdat ik het niet zo netjes vind maar het is natuurlijk altijd beter als niet he?
tnx

Verwijderd

Op zaterdag 15 september 2001 18:50 schreef wasigh het volgende:
Jawel het werkt wel, het zit alleen aan een aantal voorwaarden verbonden.
Elke zoveel miliseconden moet het Robotje iets doen. Anders krijg je zo'n error
En het aanmaken van een object kost nogal de nodige milliseconden. Verder moet je bij de AdvancedBot volgens mij Zelf het einde van je turn aangeven.

Het is trouwens wel puur java. Met een aangepaste ClassLoader. Er zit nog een bug in.
Je kunt Thread's van andere bot's in Prioriteit verlagen ;)
zonder het aanmaken van het object werkte het wel, dus er zit verder geen fout in. Het aanmaken van een object duurt echt niet lang hoor dus dat is echt het probleem niet. Bovendien zou je dan het zelfde probleem met innerclasses moeten krijgen zoals marcusk had uitgelegd en dat werkt perfect.

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op zaterdag 15 september 2001 18:52 schreef Reneos het volgende:
Ahh kijk dat kan natuurlijk ook. Ik heb innerclasses nog nooit gebruikt omdat ik het niet zo netjes vind maar het is natuurlijk altijd beter als niet he?
tnx
Het kan echt met andere externe classes..
en innerclasses zijn idd lelijk ;)

Verwijderd

Op zaterdag 15 september 2001 18:59 schreef wasigh het volgende:

[..]

Het kan echt met andere externe classes..
en innerclasses zijn idd lelijk ;)
Heb je het al geprobeerd dan? zo ja, zou je dan mischien die code eens willen posten? (eventueel gestript met alle niet relevante code) Met innerclasses kan ik wel leven hoor, ik zou ze alleen niet gebruiken als het niet hoeft maar in dit geval heb ik er geen bezwaar tegen.

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

mm, ik heb het nu geprobeerd. met iets erg simpels en het werkt niet.. :( Sorry ik heb me vergist..

Het komt dus denk ik door die aangepaste classLoader ;)
nou ja, dan maar innerClasses..

Verwijderd

Op zaterdag 15 september 2001 19:14 schreef wasigh het volgende:
mm, ik heb het nu geprobeerd. met iets erg simpels en het werkt niet.. :( Sorry ik heb me vergist..

Het komt dus denk ik door die aangepaste classLoader ;)
nou ja, dan maar innerClasses..
jepz, logischerwijs zou ik ook zeggen dat het moet kunnen, totdat je het probeerd :) . die aangepaste classLoader zal wel maar 1 class willen inladen ofzo, magoed daar heb ik geen verstand van dus ik gok maar wat raak. Dus inderdaad dan maar innerClasses :)

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op zaterdag 15 september 2001 19:22 schreef Reneos het volgende:
jepz, logischerwijs zou ik ook zeggen dat het moet kunnen, totdat je het probeerd :) . die aangepaste classLoader zal wel maar 1 class willen inladen ofzo, magoed daar heb ik geen verstand van dus ik gok maar wat raak. Dus inderdaad dan maar innerClasses :)
Ik gebruik bijvoorbeeld de Point2D.Double class, dus het gebruiken van externe klassen kan op zich wel. Misschien dat je alleen klassen uit bepaalde packages kunt gebruiken ofzo :?

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
wasigh: en innerclasses zijn idd lelijk ;)
Waarom?

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Op zaterdag 15 september 2001 19:56 schreef mbravenboer het volgende:

[..]

Waarom?
Omdat als je objectgeoorienteerd programmeerd probeerd meerdere klassen te maken die je later weer kunt hergebruiken. Als je al die klassen in 1 klasse gooid moet je alle klasses altijd meenemen terwijl je er eigenlijk maar 1 wilt hergebruiken, of het word weer knippen en plakken.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Reneos het volgende:Als je al die objecten in 1 klasse gooid moet je alle klasses altijd meenemen terwijl je er eigenlijk maar 1 wilt hergebruiken, of het word weer knippen en plakken.
Als je aan het knippen en plakken bent ben je inderdaad niet aan het hergebruiken :). Punt is echter dat inner classes bedoelt zijn om objecten te laten 'leven' in een ander object. Dit kan soms een hele aantrekkelijke notie zijn. Als alle instanties van een klasse echter niet altijd in een instantie van de omringende klasse moeten leven dan moet je het gewoon geen inner-class maken. Dat is naar mijn mening geen nadeel van inner-classes, maar een goede overweging die je moet maken.

In sommige gevallen kan een inner-class juist heel prettig werken. Als je een boom wilt implementeren in OO werkt je meestal met minstens drie klassen: TreeComponent, TreeNode, TreeLeaf. Al deze onderdelen leven echter in een boom. Het is een aardig idee om dan het volgende te done:
code:
1
2
3
4
5
6
class Tree
{
   class Component
   class Node extends Component
   class Leaf extends Component
}

In sommige gevallen is deze constructie ook weer een beetje ongelukkig, maar het kan ook prettig zijn. Het gebruik van inner-classes kan ook het 'onlogisch' implementeren van interfaces tegengaan. Vaak heb je net even een listener nodig die even iets specifieks doet in je klasse. Het is dan vaak uitermate onwenselijk om de hele klasse die interface te laten implementeren (of nog erger: extenden van een adapter). Een inner-class kan dan een hele prettige oplossing zijn in plaats van het maken van een aparte klasse, het meegeven van de omringende klasse en het onnodig public maken van methoden.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • glrfndl
  • Registratie: Juni 1999
  • Niet online
Erg leuk is dit zeg :)
maar ik heb wel even een vraagje, ik zag zonet al dat iemand het over Point2D had, en dat leek me wel een goed idee, maar hoe import ik die dingen?

Ik was zoiets van plan, ff heel eenvoudige code, maar dat gaat niet,
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
package jan;
import robocode.*;
import java.awt.geom;

public class MyFirstRobot extends Robot
{
    private class Enemy {
        private String name;
        private Point2D position;
        private double heading;
    }   
etc. etc.
}

als ik op compile druk krijg ik de volgende error:
E:\robocode\robots\jan\MyFirstRobot.java:3: Class java.awt.geom not found in import.
import java.awt.geom;

Kan het eigenlijk wel wat ik doe, of doe ik het compleet verkeerd :)

Prepare for unforeseen consequences


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
code:
1
import java.awt.geom.*;

en je kunt Point2D niet zo gebruiken, omdat het een abstracte klasse is. Point2D.Double kan dus wel, die slaat de x- en y- coorden namelijk op in een double (duh) :)

Verwijderd

Op zaterdag 15 september 2001 21:00 schreef mbravenboer het volgende:

[..]

Als je aan het knippen en plakken bent ben je inderdaad niet aan het hergebruiken :). Punt is echter dat inner classes bedoelt zijn om objecten te laten 'leven' in een ander object. Dit kan soms een hele aantrekkelijke notie zijn. Als alle instanties van een klasse echter niet altijd in een instantie van de omringende klasse moeten leven dan moet je het gewoon geen inner-class maken. Dat is naar mijn mening geen nadeel van inner-classes, maar een goede overweging die je moet maken.

In sommige gevallen kan een inner-class juist heel prettig werken. Als je een boom wilt implementeren in OO werkt je meestal met minstens drie klassen: TreeComponent, TreeNode, TreeLeaf. Al deze onderdelen leven echter in een boom. Het is een aardig idee om dan het volgende te done:
code:
1
2
3
4
5
6
class Tree
{
   class Component
   class Node extends Component
   class Leaf extends Component
}

In sommige gevallen is deze constructie ook weer een beetje ongelukkig, maar het kan ook prettig zijn. Het gebruik van inner-classes kan ook het 'onlogisch' implementeren van interfaces tegengaan. Vaak heb je net even een listener nodig die even iets specifieks doet in je klasse. Het is dan vaak uitermate onwenselijk om de hele klasse die interface te laten implementeren (of nog erger: extenden van een adapter). Een inner-class kan dan een hele prettige oplossing zijn in plaats van het maken van een aparte klasse, het meegeven van de omringende klasse en het onnodig public maken van methoden.
Ja een inner class kan inderdaad handig zijn zolang je maar niet alles in 1 klasse stopt en da's nou net het geval hier. De hele robot word in 1 klasse gestampt.
in het geval van een boom heb ik het anders geleerd magoed we dwalen dan wel erg af van de discussie dus laten we het daar maar niet over hebben. :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Sorry toch nog ff off-topic...
Reneos: in het geval van een boom heb ik het anders geleerd magoed we dwalen dan wel erg af van de discussie dus laten we het daar maar niet over hebben. :)
Bedoel je dat je geen inner-classes gebruikt voor bomen? Dat doe ik ook erg vaak, want het grote probleem is dat je op deze manier subbomen niet als bomen kunt behandelen en componenten niet kan verplaatsen tussen verschillende bomen (tenzij je ze kopieert). Als je nog meer anders doet ben ik wel geinteresseerd in wat je dan wel hebt geleerd. Ik ben namelijk nogal veel bezig met bomen :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

ik heb ff gecheckt en ik krijg het niet voor elkaar om een externe Class aan te spreken. Niet als ik die class extend van Robot en niet als ik die class in de package java.lang zet.. dus ik ben bang dat het echt niet gaat :'(

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
RoboCode facts:
Robots cannot access non-system extra classes other than inner classes
ben wel benieuwd hoe ze onderscheid maken tussen standaard java klassen en andere klassen...

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 07:36
Zou het misschien zo zijn dat als je een eigen classLoader hebt gemaakt en daarmee een Class laad, eventuele classes binnen die Class ook door jou classLoader geladen moeten worden?

Ja dus, heb ff de API doorgespit en vond dit in docs/api/java/lang/ClassLoader.html
The methods and constructors of objects created by a class loader may reference other classes. To determine the class(es) referred to, the Java virtual machine calls the loadClass method of the class loader that originally created the class.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Hoe wil je dan die ClassLoader gaan laden? ;)

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Morphs
  • Registratie: Augustus 2000
  • Laatst online: 21-05-2025
Op zaterdag 15 september 2001 16:56 schreef Slamdance het volgende:
voor de mensen die de bot een ander uiterlijk willen geven is hier de code.
code:
1
2
3
4
5
6
    public botnaam() {
        super();
        setRobotImageName("bodyimage.gif"); 
        setGunImageName("gunimage.gif"); 
        setRadarImageName("radarimage.gif");
    }

geen verssingen hier.

echter de images moeten niet in de dir van de bot staan maar in de RoboCode dir bij de Jar filetjes.
Zo zou het kunnen, maar het is natuurlijk netter als die gifjes in de images dir terechtkomen. De bijbehorende code is dan heel voor de hand liggend:
code:
1
2
3
4
5
6
    public botnaam() {
        super();
        setRobotImageName("images/bodyimage.gif"); 
        setGunImageName("images/gunimage.gif"); 
        setRadarImageName("images/radarimage.gif");
    }

Ik heb al een leuke skin gemaakt en met het ontwerp van m'n bot ga ik vrolijk verder. Het wordt wel een erg uitgebreide bot maar met een beetje geluk wordt ie dan ook erg goed :)

  • razor-x
  • Registratie: Februari 2001
  • Laatst online: 05-06 07:37
Als ik nou java kon was het ook leuk voor mij :D

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

Op zondag 16 september 2001 12:58 schreef razor-x het volgende:
Als ik nou java kon was het ook leuk voor mij :D
Tis een programmeer-leer-programma, wat ik er zo snel van zag (Geen JDK 1.3 ofzoiets geinstalleerd :-) ),
m.a.w. : Je hoeft geen java hiervoor te kennen, je leert het er juist door..

God, root, what is difference? | Talga Vassternich | IBM zuigt


  • D-RiSe
  • Registratie: September 2000
  • Laatst online: 19-03 19:37

D-RiSe

Kick the baby

* D-RiSe heeft nieuwe hobby !!!!!!!!!!!!! :)

intel silver reef, celly 2.0 Ghz, 256mb ddr, G2MX


  • razor-x
  • Registratie: Februari 2001
  • Laatst online: 05-06 07:37
Dit is zeer leuk ja :)

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
ik heb een paar erg goede botjes gedownload, als je die laat battlen is ziet dat er erg cool uit :)

mijn prog-kunsten zijn niet zo'n feest :)

  • Slamdance
  • Registratie: Juni 2001
  • Laatst online: 11-09 09:46
Op zondag 16 september 2001 12:43 schreef Morphs het volgende:
Zo zou het kunnen, maar het is natuurlijk netter als die gifjes in de images dir terechtkomen. De bijbehorende code is dan heel voor de hand liggend:
weet ik het was ook meer om even te vertellen waar de gifjes moesten staan omdat dat dus standaard niet in de robot of image dir is.

  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Op zondag 16 september 2001 13:18 schreef D-RiSe het volgende:
* D-RiSe heeft nieuwe hobby !!!!!!!!!!!!! :)
heb je daar wel tijd voor? :)

Verwijderd

Zou zo'n robot ook harder en zachter kunnen gaan rijden, bijvoorbeeld een versnelling als er een tegenstander aan komt?

  • razor-x
  • Registratie: Februari 2001
  • Laatst online: 05-06 07:37
Op zondag 16 september 2001 22:27 schreef NM het volgende:
Zou zo'n robot ook harder en zachter kunnen gaan rijden, bijvoorbeeld een versnelling als er een tegenstander aan komt?
Ja ik d9-1t (d8t dus ;)) het wel :)

  • D-RiSe
  • Registratie: September 2000
  • Laatst online: 19-03 19:37

D-RiSe

Kick the baby

Op zondag 16 september 2001 21:09 schreef Scorpion het volgende:

[..]

heb je daar wel tijd voor? :)
nee maar ik heb ook geen tijd om te slapen en dat doe ik nog best vaak dus dit kan er ook nog wel bij :)

intel silver reef, celly 2.0 Ghz, 256mb ddr, G2MX


  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Op maandag 17 september 2001 08:57 schreef D-RiSe het volgende:

[..]

nee maar ik heb ook geen tijd om te slapen en dat doe ik nog best vaak dus dit kan er ook nog wel bij :)
Sjah, wie slaapt er dan ook... daar ben ik al tijden terug mee gestopt... ;)

Verwijderd

allemaal wel heel grappig.

Maar wie weet nu goede methodes en tactieken ?

De rest hoef je niet zo ingewikkeld te coden.

Verwijderd

Ik vond het al een redelijke uitdaging om een robot te proggen die op volle sneheid bleef rijden en die nooit tegen een muur botste, maar precies vlak langs een muur zijn bocht maakte.

Als je zoiets hebt, kun je je volledig concentreren op benader- en ontwijkingsmanoevres.

Maar uiteraard is het de kunst om zoiets zelf te proggen, dan heb je een goede basis.

  • Crysania
  • Registratie: September 2000
  • Laatst online: 08:05
ik begin er ook mee als ik vanavond thuis ben,

heeft iemand ondertussen al een online battlefield in mekaar geknutseld want dan is het pas echt gaaf

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 31-08 22:49
Ben ook benieuwd, vanavond maar eens kijken :)

  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
echt supercool :) Dat ding is nu op mijn pc een simulatie aan het draaien, en dat systeem met die ClassLoader lijkt meook wel iets. Maar is het niet slimmer om alleen acties door te sturen over het internet naar een server die weer alle acties naar de andre pc's stuurt ?? Een beetje net als chatten dus. Wel moeilijk te proggen :)

  • Crysania
  • Registratie: September 2000
  • Laatst online: 08:05
ik ben nu aanhet downloaden, dus over een paar minuten komen de eerste robotten van mijn lopende band om afgeslacht te worden

moet alleen nog ff naam verzinnen

  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 15:36

Hu9o

Schokkend

Voor iedereen die AI leuk vind, er zijn nog een "paar" spellen/progjes meer:

http://tpga.virtualave.net/game-links.htm

mijn favoriete is Robowars.

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<


  • StratoFarmer
  • Registratie: April 2000
  • Laatst online: 04-09 21:10

StratoFarmer

Anke :*

Op vrijdag 14 september 2001 17:00 schreef Jelmer Barhorst het volgende:
Ze wijken alleen wel een beetje af met de graden van wat ik bij goniometrie/meetkunde geleerd heb...

Dit is wat ik ken:
code:
1
2
3
4
5
    90
     |
180 -O- 0/360
     |
    270

Maar dit is wat er door RoboCode gebruikt wordt:
code:
1
2
3
4
5
    360/0
     |
270 -O- 90
     |
    180

Is niet echt bepaald handig aangezien de routines Math.* routines als acos, asin volgens mij de eerste eenheidscirkel gebruiken...
Dan tel je toch bij alles een halve radiaal (90 graden) op?
Ben je daar ook weer uit...

Mijn plekkie + Sympathisant van 'GoT voor Behoud der Nederlandsche Taal' [GvBdNT]


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
MisterData: en dat systeem met die ClassLoader lijkt me ook wel iets
Ondertussen is dat niet relevant meer geloof ik. Pas hoorde ik van iemand dat je nu standaard al gewoon met meerdere klassen kunt werken.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Ja dit is best grappig heb m'n collega's er ook al mee opgezadeld... ;)

Maar gebruiken mijn robotjes nu zoveel geheugen of moet iedereen hier die een paar keer wil editten ook het maximale Java geheugengebruik wat opkrikken? Toch wel treurig, dat de JVM van de std aanwezige 512MB maar 8MB ofzo wil gebruiken... ok, een Micro$oft app had gelijk 1GB gereserveerd en was druk gaan swappen waarschijnlijk, maar dit is toch wel ERG bescheiden...

Dat progje checkt trouwens op de sub-versie van de VM en dan weigert ie te runnen met m'n 1.4.0 beta 3 :(
Of is er al een nieuwere versie van de robocode die wel draait met 1.4.0?

Anyhow, gelukkig had ik m'n 1.3.1 nog niet weggegooid...

Verwijderd

Heej mensen...jullie hier op GOT zijn niet echt bevorderlijk voor m'n sociale leven en m'n studie... >:)

eerst mij een beetje enthousiast maken om een php forum te maken door al die leuke verhaaltjes en nu weer dit....

/me is al aan het downloaden, maar wil eerst ff z'n forum afmaken...dus zorg dat er tegen die tijd een GOT competitie is :7

Verwijderd

weekend werk voor mij >:)
Pagina: 1 2 Laatste