Robocode est un jeu vidéo éducatif libre créé et distribué gratuitement par IBM. Il est destiné à l'apprentissage du langage de programmation Java. Les joueurs programment un logiciel contrôlant les réactions d'un ou plusieurs chars miniatures.

Splash screen de Robocode

Ce livre a pour but de faire découvrir le langage de programmation Java par l'intermédiaire de ce jeu de bataille. Des notions de programmation et d'anglais sont nécessaires pour une pleine compréhension.

Au préalable modifier

Pour pleinement profiter de Robocode vous devez préalablement avoir préparé votre environnement de programmation. Cela se déroule en quelques étapes :

  1. Mettre à jour l'environnement Java : [1]
  2. Télécharger puis installer Robocode : [2]

Démarrer une bataille modifier

Lancez le logiciel, nous allons maintenant créer puis observer notre première bataille avec des exemples de robots. Sur la fenêtre principale Robocode. Allez dans le menu déroulant Battle>New, une fenêtre New Battle apparaît, choisissez le package sample puis surlignez deux (ou plus) robots tel que Ramfire et MyFirstRobot à droite, cliquez sur Add -> répétez l'opération autant de fois que vous souhaitez de robots sur le champ de bataille (BattleField).

Cliquez ensuite sur Start Battle et observez le comportement des robots, les déplacements, les tirs, etc. Au bout de la dixième manche, un tableau de statistiques s'affiche.

On observe que le robot a un canon rotatif, le châssis peut évoluer dans toutes les directions. Le balayage radar est circulaire, pour l'observer cochez Visible Scan Arcs dans Option>Preferences.

Créer son premier robot modifier

Lancez l'éditeur de robot depuis le menu déroulant Robot>Editor puis créez un nouveau robot vide (File>New>Robot). Entrez son nom (Wikibot) et les initiales (wb). Une nouvelle fenêtre apparaît avec le code source de votre robot :

package wb;

import robocode.*;
//import java.awt.Color;

/**
 * Wikibot - un robot de (votre nom ici)
 */
public class Wikibot extends Robot
{
	/**
	 * run: Comportement par défaut du Wikibot
	 */
	public void run() {
		// Après avoir essayé votre robot, oter le commentaire de la ligne
		// d'import en haut et la suivante :
		//setColors(Color.red,Color.blue,Color.green);
		while(true) {
			// Remplacez les 4 lignes suivantes par le comportement voulu
			ahead(50);        // Demande au robot d'avancer de 50 pixels
			turnGunRight(360); // Le robot doit tourner son canon vers la droite de 360°
			back(100);         // Demande au robot de reculer de 100 pixels
			turnGunRight(360); // Le robot doit tourner son canon vers la droite de 360°
		}
	}

	/**
	 * onScannedRobot: Cet évènement se déclenche lorsque l'on détecte un autre robot
	 */
	public void onScannedRobot(ScannedRobotEvent e) {
		fire(1); //on tire
	}

	/**
	 * onHitByBullet: Ce que l'on fait quand on est touché par un obus
	 */
	public void onHitByBullet(HitByBulletEvent e) {
		turnLeft(90 - e.getBearing());
	}
}

Le programme sera expliqué ultérieurement, dans un premier temps Wikibot doit être compilé puis exécuté pour observation.

Compiler son premier robot modifier

Dans la fenêtre Robot Editor cliquez Compiler>Compile, répondez affirmativement à toutes les boîtes de dialogues jusqu'à la fenêtre Compiled successfully.

Le premier adversaire de Wikibot sera à sa hauteur puisqu'il s'agira de lui même.