PROJECT DOSSIER // [COREWAR]VOIR LA SOURCERETOUR AUX PROJETS →

01 // LE PROJET EN BREF

COREWAR

C

Une machine virtuelle où des programmes s'affrontent pour survivre en mémoire.

Le projet emblématique de la première année : construire un champ de bataille virtuel dans lequel plusieurs programmes s'exécutent simultanément et tentent de se neutraliser en écrasant la mémoire de l'adversaire. Le langage d'assemblage et les champions sont fournis ; ce qu'il faut écrire, c'est le traducteur qui transforme ces programmes en octets, puis la machine qui les exécute cycle par cycle en arbitrant qui joue quand. C'est le premier projet où l'on construit un système complet plutôt qu'un programme.

Assembleur traduisant un langage dédié en bytecode, et machine virtuelle exécutant plusieurs champions en parallèle sur une mémoire circulaire partagée.

PRINCIPALC
RÉALISATIONPROJET D’ÉQUIPE
VÉRIFICATIONCriterion
SOURCEINSPECTOR READY
PIÈCES JOINTES (Images, Photos, Videos)

03 // APPORTS CLÉS

  • Un assembleur et une machine d'exécution pour un jeu d'instructions imposé, respecté à l'octet près
  • Ordonnancement de plusieurs processus concurrents sur une arène mémoire circulaire partagée
  • Conformité binaire stricte : les .cor produits doivent tourner sur les machines des autres groupes, et inversement

AU-DELÀ DU SUJET

  • Version bonus de la machine virtuelle avec visualisation ncurses temps réel de l'arène : les 4 Ko de mémoire affichés en hexadécimal, colorés selon leur occupation, avec le compteur de cycles (corewar/bonus/src/display.c)
  • Version bonus de l'assembleur avec option d'aide et messages d'erreur détaillés
  • Les deux bonus sont livrés en arborescence séparée, le rendu standard restant intact

04 // ARBORESCENCE DU CODE

LECTURE DES SOURCES…