Un tournoi de Corewar !

Répondre
Partager Rechercher
Hep
J'ai retrouvé récemment une publication de Pour la Science appelée « Récréations informatiques » et regroupant une douzaine d'applications ludiques de l'informatique.
L'un de ces articles porte sur Corewar et a éveillé mon intérêt.
Corewar qu'est ce ?
Littéralement, la guerre des noyaux.

En fait il s'agit de faire combattre deux courts programmes (les guerriers) au sein d'une machine virtuelle (appelée MARS).
Le but de ces programmes est détruire le programme adverse, par exemple en foutant des données incohérentes dans son code.

Les programmes exécutés par MARS sont écrits en REDCODE qui est un langage très proche de l'assembleur.
Pour le tournoi, chaque candidat écrira un programme combattant et un type neutre et trop crétin pour tricher (moi, au hasard) fera s'opposer les duellistes deux par deux.


Je sens que ça vous branche. Mais vous ne connaissez peut être pas REDCODE ?
Qu'à cela ne tienne, vous allez apprendre. C'est pas bien compliqué et des connaissances en programmation ne sont pas absolument nécessaires.
Par contre, il faut causer anglais. Suivez le guide.

Si le tournoi a lieu, il faudra fixer quelques règles : ne pas repomper un programme existant (logique), ne pas utiliser un grower c'est à dire un programme qui « élève » des modules en REDCODE.
Pour éviter ce genre de triche, chaque participant devra expliquer clairement le fonctionnement de son guerrier.

Mais cessons de nous avancer.
Voyons d'abord si des gens sont intéressés.
Alors ?


Edit :

Voici un genre de Draft paper.

Quelques liens sympas (tout en anglais désolé) : http://www.infionline.net/~wtnewton/corewar/
Ça excite pas les foules mon idée dites donc. Peut être que ça paraît trop abstrait à certains ?
Voici un exemple concret de combattant célèbre, appelé le nain (dwarf) en raison de sa petite taille.
Code:
;redcode-94
;name Dwarf
;author A.K. Dewdney
;strategy Bombs the core at regular intervals.
;(slightly modified by Ilmari Karonen)
;assert CORESIZE % 4 == 0

        org     loop

loop:   add.ab  #4, bomb
        mov.i   bomb, @Bomb
        jmp     loop
bomb:   dat     #0, #0

        end
Le code débute au label « loop ».
La première instruction ajoute 4 au contenu de la cellule « bomb ».
La seconde instruction copie le contenu de la cellule « bomb » dans la cellule située [contenu de la cellule « bomb »] cellules plus loin. Par exemple si « bomb » contient 4, la seconde instruction copie la valeur 4 à 4 cellules de « bomb ».
Enfin la troisième instruction retourne au début du code c'est à dire à la cellule « loop ».
Ainsi ce code copie des puissances de 4 de plus en plus loin. Il finira peut être par copier une valeur dans le code de l'adversaire et gagner la partie (à moins que l'adversaire ne puisse se réparer) !


Ça vous semble plus concret maintenant ? Alors dites que ça vous intéresse !
Citation :
Publié par Abrasax

C'est pas bien compliqué et des connaissances en programmation ne sont pas absolument nécessaires.

Faut avoir des connaissances en quoi pour comprendre ce truc ???
Il faut lire à tête reposée et avec de la bonne volonté.
Pis si tu sais faire une verveine ça devrait aider.
Stou.
Bon, Sercille et Niwa sont intéressés.
Qui d'autre?
Citation :
Publié par Abrasax
Ça vous semble plus concret maintenant ? Alors dites que ça vous intéresse !

J'aime beaucoup l'injonction.

Essayes déjà d'être un peu moins direct, ça nous motiverais peut-être plus.
Un peu moins direct ?
C'est à dire?


(Si vous hésitez ou z'avez des questions n'hésitez pas)
(Si vous voulez pas vous taper la honte en posant des questions ici posez les sur #corewar @ irc.jeux.fr on est déjà 3 :))))
Message supprimé par son auteur.
Citation :
Publié par Abrasax
Un peu moins direct ?
C'est à dire?

Je voulais dire, être un peu plus diplomate.

Ton projet à l'air très amusant, mais je n'ai pas compris (je ne sais pas si ça un rapport avec le fait que je sois nul en math et que je n'ai pas un niveau d'étude très poussé, je me suis arrêté en 3ème).

Citation :
Les programmes exécutés par MARS sont écrits en REDCODE qui est un langage très proche de l'assembleur
Citation :
C'est pas bien compliqué et des connaissances en programmation ne sont pas absolument nécessaires
Je ne voudrais pas chercher la petite bête, mais pour moi, c'est 2 phrases, sont plutôt contradictoires.

Voilà.... Maintenant, j'aimerais savoir quelles connaissances (ou plutot niveau d'études) posséder pour appréhender ce genre de programmes.

Je sais bien que ça ne m'aidera pas plus à comprendre, mais c'est surtout par pure curiosité.
@Vanngardh
Sur http://www.koth.org/ on peut affronter les meilleurs combattants à tout moment mais ça serait quand même bien sympa un tournoi exclusivement jolien.
En espérant que suffisamment de personnes seront intéressées.

Je précise que si le tournoi a lieu les combattants seront écrits selon les spécifications de 94.
(lire le Begginer's guide)

Edit :
Très proche de l'assembleur ne veut pas dire qu'il faut connaître la programmation. Je connais des gens qui ont appris à coder en commençant par l'assembleur.
Du reste, le redcode est un langage assembleur assez simple et épuré puisqu'une fois appris la quinzaine d'opcodes et les suffixes, vous connaissez la chose.

En ce qui concerne le niveau d'études euh je rentre en première année de deug.
Message supprimé par son auteur.
[Message effacé à la demande de l'auteur]
[Message effacé à la demande de l'auteur]
Citation :
Y a une interface visuelle ou ça ne se passe qu'à coups de : "chte balance ma ligne C== 2.5$$ t mort!" ?
Qu'entends tu par interface visuelle ?
A la fin du combat il est possible de voir l'état de la mémoire virtuelle mais sinon il n'y a rien de graphique.

@Mélancolie
Fais une phrase s'il te plaît.
Citation :
A la fin du combat il est possible de voir l'état de la mémoire virtuelle mais sinon il n'y a rien de graphique.
Il n'y a pas de log du combat ou un truc du genre ?
Sans ça c'est vrai que c'est un peu dommage vu que tu ne saura pas comment améliorer ton "guerrier".

Bon, j'vais jeter un coup d'oeil voir si j'arrive à faire qqch.
Message supprimé par son auteur.
Citation :
Publié par Kio_San
Il n'y a pas de log du combat ou un truc du genre ?
Sans ça c'est vrai que c'est un peu dommage vu que tu ne saura pas comment améliorer ton "guerrier".
Bien sûr que si, le duel en lui-même est regardable.
Un screenshot du shell VGA de pMars :
http://www.ecst.csuchico.edu/%7Epizza/koth/pmars.gif
Citation :
Il n'y a pas de log du combat ou un truc du genre ?
Sans ça c'est vrai que c'est un peu dommage vu que tu ne saura pas comment améliorer ton "guerrier".

Bon, j'vais jeter un coup d'oeil voir si j'arrive à faire qqch.
Je vous conseille de suivre les liens que j'ai pu donner, ainsi que d'aller sur http://redcoder.sourceforge.net
Beaucoup de sites parlent des trois grandes familles de combattants (papiers, cailloux et ciseaux), des différentes stratégies ainsi que les moyens de contre-attaquer etc...

Citation :
Ce truc m'a l'air drôle, mais j'ai AUCUNE connaissance en programmation, et le mode d'emploi est en anglais, or je suis anglophobe, que fais-je ?
Il va falloir t'accrocher.
Je doute qu'un guide aussi complet que le beginner's guide existe en français, mais après tout je n'en sais rien.
Tu peux jeter un coup d'oeil ici.
Ce site est en français mais il est très moyennement complet. L'intérêt est qu'il propose un interpréteur REDCODE en java.
Ça peut t'aider à mieux comprendre mais je doute que tu puisse participer à moins de trouver une bonne doc en français. Cherche toujours, elle m'a peut être échappé !
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés