Kriquetwar (Tech 1)
But du projet : Réaliser un VM, un assembleur et un champion pour le célèbre jeu Corewar.
Le Corewar est un des sujets incontournables du cursus de l’Epitech. Il est en effet conseillé de relire plusieurs fois le sujet avant de pouvoir le comprendre entièrement. Ce projet est à réaliser par groupe de 3 OU 4 personnes.
Description du projet :
Il s’agit d’écrire un jeu. Ce jeu crée une machine virtuelle dans laquelle des programmes (écrits par les joueurs) s’affrontent. L’objectif de chaque programme est de "survivre". Par "survivre" on entend exécuter une instruction spéciale (live) qui veut dire "je suis en vie". Ces programmes s’exécutent simultanément dans la machine virtuelle et ce dans le même espace mémoire. Ils peuvent donc écrire les uns sur les autres. Le gagnant du jeu est le dernier joueur à avoir exécuté l’instruction "live".
|
 |
Aspects techniques :
Il faudra donc écrire deux programmes :
La machine virtuelle : La machine virtuelle est une machine multi programme. Chaque programme dispose de plusieurs éléments : un registre, un compteur de programme et un flag de dernière opération.
Le rôle de la machine est d’exécuter les programmes qui lui sont donnés en paramètre.
Elle doit vérifier que chaque processus appelle l’instruction "live" tous les cycles donnés.
Si, après un certain nombre d’appels à la fonction "live", tous les processus sont encore vie, on décrémente le nombre de cycle de référence jusqu’à ce qu’il n’y ait plus de processus en vie.
Le dernier joueur valide à avoir dit "alive" a gagné.
L’assembleur : L’assembleur est un programme qui transforme un fichier texte avec une syntaxe définie plus loin en un exécutable de la machine virtuelle.
Le champion : Le champion est mis en compétition avec ceux des autres groupes lors d’un concours inter-promotion.
- Partager

