INFO   Main   Docs   FAQ   News   Tutorials   Interviews   Forums   Mailing List
ONLINE    BATTLE ARENA   Accounts   Uploads   Downloads   Hall of Fame
|   No-Limits Challenge: JROBOTS FOREVER! (January 6th 2010)   ||   October-December Challenge: The End! (December 26th 2009)   ||   October-December Challenge: JROBOTS 2K9 Q4! (October 3rd 2009)   ||   September-October Challenge: JROBOTS 2K9 Q3! (July 4th 2009)   ||   April-June Challenge: JROBOTS 2K9 Q2! (March 28th 2009)   ||   Old News  |

MAKE a DONATION

GAME

Main

BATTLE ARENA
Hall of Fame

Downloads

Accounts
Uploads
 
INFO

News

Docs
F.A.Q.
Tutorials
Interviews

Forums
Mailing List
Contact leo
 
Visit the APOCALYX BLOG!

Jrobots FAQ

[English] [Italiano] [Espaņol]

UPLOADS
  1. Per aggiungere un nuovo Jrobot è necessario ricompilare il programma Java aggiungendo i nuovi file?

  2. Se miglioro il mio robot come faccio ad inviare la nuova versione?
    Posso usare un file con lo stesso nome o devo cambiarlo?

  3. Ho seguito tutte le regole, ma il CGI degli Upload rifiuta il mio robot. Perché?

  4. Ho mandato un robot al vostro sito ed ora posso vederlo nella lista, ma, quando lo seleziono per vederlo combattere, non appare nell'arena. Perché?

DEVELOPMENT
  1. Perché l'arena non segue le normali convenzioni sulle coordinate e gli angoli?

  2. Come posso effettuare il debugging del mio robot per vedere cosa avviene nel mio codice?

  3. Quando un robot viene disabilitato non è possibile fare in modo che il simulatore chiami il metodo finalize() di quel robot? Questa è un'opzione che mi sarebbe molto utile perché uso delle variabili statiche che vengono incrementate quando i robot vengono creati.


UPLOADS
  1. D: Per aggiungere un nuovo Jrobot è necessario ricompilare il programma Java aggiungendo i nuovi file?

    R: No. Puoi compilare e testare il tuo robot usando il package off-line. Poi invii il file al sito e viene automaticamente riconosciuto dall'applet che simula i tornei.

  2. D: Se miglioro il mio robot come faccio ad inviare la nuova versione?
    Posso usare un file con lo stesso nome o devo cambiarlo?

    R: Manda un file con lo stesso nome. Il vecchio file viene sovrascritto ed il nuovo robot eredita i risultati dei suoi predecessori.
    Se scegli un altro nome, il nuovo robot combatterà contro quello vecchio.

  3. D: Ho seguito tutte le regole, ma il CGI degli Upload rifiuta il mio robot. Perché?

    R: Caso 1 Hai inserito nel codice un blocco try-catch, così nel file compare la classe java.lang.Exception. Hai violato la regola: "Non è possibile utilizzare le classi delle API Java nel codice dei robot"
    Caso 2 Hai usato la classe java.lang.Math per ricavare la costante pi greco ed hai violato la regola : "Non è possibile utilizzare le classi delle API Java nel codice dei robot". In alternativa puoi definire tu stesso la costante pi greco.

  4. D: Ho mandato un robot al vostro sito ed ora posso vederlo nella lista, ma, quando lo seleziono per vederlo combattere, non appare nell'arena. Perché?

    R: Caso 1 I robot non possono usare le inner classes, mi dispiace. Tutti gli algoritmi devono essere contenuti in una sola classe. Il tuo robot utilizza due classi MyRobot.class e MyRobot$1.class. Tu puoi inviare una sola classe e quindi MyRobot$1 non è disponibile nella versione on-line e viene generata un'eccezione.


DEVELOPMENT
  1. D: Perché l'arena non segue le normali convenzioni sulle coordinate e gli angoli?

    R: Per rendere più veloce l'esecuzione su macchine lente, dato che i calcoli sono più semplici. Questo non è un problema perché i robot non possono vedere l'applet e puoi immaginare di osservare l'applet da "sotto" ;-)

  2. D: Come posso effettuare il debugging del mio robot per vedere cosa avviene nel mio codice?

    R: Se usi il JDK e l'appletviewer, è molto semplice. Per esempio puoi usare questo codice per stampare sullo schermo una variabile ('a' è una variabile intera o qualsiasi altra cosa):

    System.out.println("the value of 'a' is: "+a);
    In questo modo utilizzi una delle classi Java per stampare sullo stream di output in una finestra DOS. La GUI dell'applet non subisce modifiche.
    Ricorda di rimuovere tutte queste linee quando invii il robot corretto: altrimenti il CGI degli Upload lo rifiuterà.
    Se non usi il JDK ed il suo compilatore a linea di comando, ma un'IDE più complessa, il debug dipende dall'IDE e non posso esserti di aiuto.

  3. D: Quando un robot viene disabilitato non è possibile fare in modo che il simulatore chiami il metodo finalize() di quel robot? Questa è un'opzione che mi sarebbe molto utile perché uso delle variabili statiche che vengono incrementate quando i robot vengono creati.

    R: Il metodo finalize() può minare la sicurezza dell'applet. Questo metodo deve essere richiamato dal thread principale quando un robot viene disabilitato, così il thread passa il controllo al codice del robot. Qualcuno potrebbe inserire un loop infinito in finalize() per bloccare l'esecuzione e evitare un risultato negativo.
    Per identificare i robot usa il metodo id() all'inizio del metodo main(). Fornisce un unico identificativo ad ogni robot seguendo l'ordine di creazione.


Per altre domande mandatemi un email.

For more information
send an email to
TETRACTYS Software
Project Hosted by SourceForge Copyright © 1999-2009 Leonardo Boselli
All Rights Reserved. Legal Terms.