Powered by |
Core Warrior - Core WarriorCore Warrior est un environnement de développement pour Core War écrit en Java (100 %, n'en déplaise à Bill), il peut donc fonctionner sur toute plateforme munie d'une machine virtuelle Java 1.1 (donc Linux, Windows, Macintosh, Solaris, etc...). Il comporte un éditeur, un compilateur et une machine virtuelle Core War. Le compilateur et la machine virtuelle peuvent être utilisés en mode graphique ou en ligne de commande. EditeurPermet d'éditer le Red Code et de lancer, sans sortir de l'EDI, le compilateur et la machine virtuelle (le moteur Red Code).
Figure 2: Editeur Le menu FichierPermet de créer un nouveau document, d'ouvrir un programme existant, d'enregistrer le programme en cours d'édition, de l'enregistrer sous un autre nom et de quitter le programme. Les fichiers des programmes Red Code ont l'extension .src. Le menu EditionPermet de couper, copier, coller et rechercher une chaîne dans le code. Le menu CompilerPermet de compiler le programme en cours d'édition et de l'exécuter dans le moteur. Les fichiers compilés ont le même nom que le fichier source du programme, avec une extension .bin. Les fichiers compilés sont indépendants de la plateforme et peuvent donc être copiés d'un ordinateur à un autre (même de système différent) sans avoir à les recompiler. Le menu AidePermet d'afficher une aide rapide sur le langage Red Code (résumant les différentes instructions du langage et les modes d'adressage). Il permet aussi d'afficher la boite de configuration de la fonte et des couleurs de l'éditeur (désolé, je ne savais pas trop où caser cette option). Les icônes de la barre sous le menu sont des raccourcis pour les principales fonctions de l'EDI. Je pense que ces fonctions sont suffisamment explicites pour se passer d'explications plus poussées. MoteurLe moteur de Core Warrior est l'arène des combats de programmes. On peut y tester des programmes en cours de développement dans l'éditeur (le moteur est alors invoqué à partir de l'éditeur et le programme en cours est automatiquement chargé). On peut aussi le lancer indépendemment de l'éditeur pour faire un combat entre deux programmes.
Figure 3: Moteur Charger un programmePour faire tourner des programmes, il faut commencer par les charger. Pour ce faire, cliquer sur le bouton [Charger] et sélectionner le programme désiré (les programmes chargés doivent être compilés, donc avec une extension .bin). Le programme est alors affiché dans la fenêtre de core dump. On peut enlever un programme chargé avec le bouton [Purger]. Installer les programmes dans le coreLorsque les programmes ont été chargés, il faut les installer dans le core (l'arène de combat). Cliquer sur le bouton [Installer]. Il apparaît alors la fenêtre suivante :
Figure 4: Installer un programme Cette boite de dialogue permet de choisir l'adresse où l'on doit installer chaque programme. On peut aussi les installer aléatoirement (c'est l'option à choisir pour des combats ordinaires). La distance minimale est celle séparant deux programmes (utile lorsqu'on choisit une installation à des adresses aléatoires). Cycles avant nul indique le nombre de cycles avant que la partie soit déclarée nulle si aucun programme n'a planté. Une valeur de 1.000.000 peut sembler démesurée, mais la puissance des machines actuelles le permet amplement. Après avoir cliqué sur [OK], les programmes apparaissent dans la représentation graphique du core. Le programme vert est représenté par des cases vertes, et le rouge par des cases rouges (original, je sais...). Exécuter les programmesPour exécuter les programmes, il y a 2 méthodes :
Le champ de texte temps indique le temps entre chaque instruction. Il faut l'adapter à la vitesse de sa configuration de manière à ce que le rafraîchissement graphique de la fenêtre de core puisse se faire entre deux instructions. Si le temps est trop court, plusieurs instructions sont tracées en même temps sur le core, ce qui donne un affichage saccadé. N'est pas pris en compte pour le mode turbo. Outils en ligne de commandeAfin de satisfaire les Ayatollahs de la ligne de commande, le compilateur et le moteur peuvent être invoqués en ligne de commande. L'intérêt est d'automatiser des tournois pour lesquels un grand nombre de matchs est nécessaire. CompilateurIl faut se placer dans le répertoire du programme et taper en ligne de commande :
L'archive du programme (bin.jar) doit se trouver dans le CLASSPATH du programme. Où fichier.src est le nom du fichier à compiler. Le programme compilé sera placé dans le fichier fichier.bin du même répertoire. Il faut noter que si une erreur de compilation se produit, le fichier binaire est tout de même écrit (jusqu'à l'instruction ayant provoqué l'erreur de compilation). MoteurOn lance le moteur en mode texte en tapant sur la ligne de commande (dans le répertoire du programme) :
L'archive du programme (bin.jar) doit se trouver dans le CLASSPATH du programme. Les options disponibles sont :
Les programmes sont chargés aléatoirement en mémoire et peuvent être plus de deux (on peut ainsi organiser des combats entre 10 programmes simultanément :). Format des binairesLes fichiers binaires générés sont constitués d'une suite d'instructions de 4 octets chacune. Une instruction a le format suivant :
J'ai choisi de coder la valeur de l'argument sur 12 bits de manière à avoir un terrain de jeu le plus vaste possible. De plus, 4096 cases sont représentables par un carré, ce qui colle mieux avec une représentation graphique du core. Dernière mise à jour : 2000-02-07 |