SYS.NOMINAL | RADAR.ACTIVE | CORE.SYNC
virtual machine & assembler

Corewar.rs

cargo run --release -n zork.cor big_feet.cor
Machine virtuelle + assembleur Corewar en Rust,
avec visualiseur ncurses et shell WASM.

corewar

| Demos

Demo 1 — Bataille entre champions avec le visualiseur ncurses
Demo 2 — Combat avec controle de vitesse

| Hacking Game — MARS Protocol

MISSION CONTROL · POD 042 L'arène mémoire est infectée. Compilez votre warrior Red Code, défendez votre code des DAT ennemis et purgez les 7 secteurs du MARS.
LINK STANDBYSTATUS MARS · 7 SECTEURSOBJECTIVE
Hacking game v3 prêt à être initialisé.
ZQSD Déplacement Souris Visée Clic Tir Espace Dash K Parade V Overdrive Tab Arme E Terminal P Pause M Muet Le sol wireframe est la mémoire — vos cellules dorées exécutent votre Red Code en direct.

| Visualiseur ncurses

Corewar Visualizer Screenshot

Controles clavier

ToucheAction
EspacePause / Reprendre
sStep — avance d'exactement 1 cycle puis pause
↑ / ↓Vitesse (pas de 500)
+ / −Vitesse fine (pas de 100)
PgUp / PgDnScroller les processus
qQuitter

Fonctionnalites

| Crates

corewar-common
Constantes, types, op_table, utilitaires partages
corewar-asm
Assembleur — traduit les fichiers .s en bytecode .cor
corewar-vm
Machine virtuelle — execute les champions dans l'arene
corewar-disasm
Desassembleur — traduit les .cor en .s

Utilisation

$ cargo build

# Assembleur : .s -> .cor
$ ./target/debug/asm champs/zork.s

# Desassembleur : .cor -> .s
$ ./target/debug/disasm champs/zork.cor

# Machine virtuelle
$ ./target/debug/corewar --dump 1000 champs/zork.cor champs/big_feet.cor
$ ./target/debug/corewar -v champs/zork.cor champs/big_feet.cor

# Visualiseur ncurses interactif
$ ./target/debug/corewar -n champs/zork.cor champs/big_feet.cor

| Benchmark : C vs Rust

Comparaison des performances entre la version C (-O2) et la version Rust (--release).

Test C (-O2) Rust (release) Ratio
2 champions / 10k cycles 20 ms 8 ms 2.5x
2 champions / 50k cycles 50 ms 10 ms 5.0x
2 champions / 100k cycles 51 ms 11 ms 4.6x
4 champions / 10k cycles 160 ms 13 ms 12.3x
4 champions / 100k cycles 1 990 ms 93 ms 21x
Vitesse
5-21x
Rust plus rapide
Binaire C
231 Ko
5x plus petit
Binaire Rust
1.2 Mo
Runtime complet
Scaling
Rust
Performances stables

Pourquoi le Rust est plus rapide ?

| Le Livre

Un essai complet sur le Corewar de l'école 42 : histoire, langage, machine virtuelle, assembleur, stratégie, implémentation en C et comparaison avec Rust. Cliquez sur la couverture pour l'ouvrir, puis naviguez avec les flèches ou en cliquant sur les pages.

+