Avis: Ce défi du roi de la colline est terminé. Cela signifie que la coche verte, qui a été attribuée à C5H8NNaO4 pour son entrée The Observer ne sera pas déplacé vers une nouvelle réponse.
Vous pouvez toujours soumettre de nouvelles entrées, mais il peut y avoir des retards dans le déroulement des nouveaux tournois car je ne vérifie plus activement les nouvelles entrées.
introduction
Dans ce défi, vous jouez à un jeu d'arcade intitulé The Ultimate Samurai Showdown, édition spéciale Ultimate Edition 2.0 X Alpha Omega Turbo (ou simplement Ultimate Samurai Showdown en abrégé). Vos adversaires? Nul autre que les autres membres de Programming Puzzles & Code Golf!
Comme vous pouvez vous attendre d'un jeu d'arcade PPCG, vous ne jouez pas directement dans Ultimate Samurai Showdown , mais écrivez plutôt un programme qui jouera le jeu pour vous. Ce programme luttera contre les programmes soumis par d’autres utilisateurs lors de duels individuels. Le programme le plus qualifié sera couronné Ultimate Samurai de PPCG et obtiendra le titre de légende vert.
Description du jeu
Cette section décrit les mécanismes derrière le jeu.
Condition de victoire
Un match consiste en deux samouraïs qui se font face. Chaque samouraï commence chaque match avec 20 points de vie et 1 honneur . Un samouraï gagne si son adversaire est mort et qu'il est toujours en vie. Il existe deux méthodes par lesquelles un samouraï peut mourir:
- Si les points de vie d'un samouraï sont ramenés à 0, il mourra.
- Si un samouraï ramène son propre honneur en dessous de 0, il sera frappé par les dieux pour avoir agi de manière déshonorante dans un duel.
Être frappé par les dieux a la priorité sur la réduction du nombre de points de vie à 0. Ainsi, dans une situation où un samouraï est à 0 point de santé et l'autre à -1 honneur, le samouraï avec 0 point de santé l'emportera. Dans une situation où les deux samouraïs sont à -1 honneur, ils sont tous deux frappés par les dieux et le jeu est un match nul.
Un match comprend jusqu'à 500 tours . Si tous les 500 tours sont passés et que le match n’a pas été décidé (aucun samouraï n’est mort), les dieux s’ennuient et abattent les deux samouraïs, ce qui entraîne un match nul.
actes
À chaque tour, le samouraï doit effectuer exactement l'une des actions suivantes:
W
Le samouraï doit attendre et ne rien faire. Cela le rend cool mais ne l'aide pas à vaincre son adversaire. C'est aussi l'action par défaut.
B
Le samouraï doit s'incliner devant son adversaire de manière honorable. Cela plaît aux dieux et ainsi les samouraïs gagneront 1 honneur. L’honneur est essentiel au succès de votre samouraï, car l’honneur est essentiellement la "ressource" de ce jeu - tous les mouvements sont différents B
et W
peuvent diminuer l’honneur. De plus, si un samouraï gagne 7 points d’honneur ou plus, il se voit accorder l’utilisation de l’ Épée des Dieux . Les implications de ceci sont décrites ci-dessous.
Cependant, s'incliner devant votre adversaire vous laisse ouvert si votre adversaire décide de vous frapper avec son épée. Soyez donc prudent lorsque vous choisissez de vous incliner.
G
Le samouraï doit entrer en position défensive et se prémunir contre les coups d’épée. Ce mouvement bloquera avec succès toutes les frappes à l'épée, même celles effectuées avec l' épée des dieux .
Cependant, les dieux froncent les sourcils sur un samouraï trop défensif. Ce mouvement consomme 1 Honneur si l'action du samouraï au tour précédent était également en garde. Il ne consomme pas l'honneur autrement.
I
Le samouraï doit tenter de frapper son adversaire avec un tirage rapide de son épée de son fourreau. Si le samouraï a 7 honneur ou plus, il utilisera l' épée des dieux à la place de son épée habituelle. Ce mouvement consomme 1 Honneur.
Le tirage rapide est une frappe rapide qui battra des attaques plus lentes au-dessus de la tête, mais perdra contre des parades. Si la frappe se connecte avec succès, elle infligera 1 dommage, ou 2 dégâts avec l' épée des dieux .
P
Le samouraï doit tenter de parer toute attaque imminente, puis lance sa propre attaque. Si le samouraï a 7 honneur ou plus, il utilisera l' épée des dieux à la place de son épée habituelle. Ce mouvement consomme 1 Honneur.
La parade est une bonne manœuvre contre les frappes rapides, mais elle sera dominée par des attaques aériennes plus lentes. Si la frappe se connecte avec succès, elle infligera 1 dommage, ou 2 dégâts avec l' épée des dieux .
O
Le samouraï doit tenter de frapper son adversaire avec une attaque aérienne plus lente. Si le samouraï a 7 points d'honneur ou plus, il utilisera l' épée des dieux à la place de son épée habituelle. Ce mouvement consomme 1 honneur.
La frappe aérienne peut maîtriser les parades, mais elle perdra face aux frappes rapides. Si la frappe se connecte avec succès, elle infligera 1 dommage, ou 2 dégâts avec l' épée des dieux .
Épée des dieux
Un samouraï avec honneur de 7 ans ou plus gagne la capacité d'utiliser l' épée des dieux . Si son honneur est réduit à moins de 7, sa capacité à utiliser l' épée des dieux lui sera révoquée. L' épée des dieux inflige 2 dégâts au lieu de 1.
L' épée des dieux ne permet pas à une frappe de vaincre une frappe d'épée qui ne serait normalement pas vaincue. Par exemple, une parade de Sword of the Gods perdra toujours face à une frappe aérienne ordinaire, et un tirage rapide de Sword of the Gods ne l'emportera pas sur un tirage rapide ordinaire. En fait, la soi-disant épée des dieux n’est en réalité pas très puissante - c’est peut-être une blague cosmique jouée par les dieux ...
Table d'interaction
Le fragment de pile ci-dessous contient un tableau qui répertorie explicitement tous les résultats possibles des différentes combinaisons d’actions que les deux samouraïs peuvent effectuer. Pour l'afficher, cliquez sur "Afficher l'extrait de code", puis sur "Exécuter l'extrait de code".
Programme de communication
Pour faciliter le déroulement du tournoi, un programme de contrôleurs a été écrit pour jouer le rôle de "dieux" - il garde des records d’honneur et de santé et frappe les samouraïs en conséquence. Cette section décrit comment votre programme communiquera avec le programme du contrôleur.
Description de l'entrée
Le programme du contrôleur appellera votre programme à partir de la ligne de commande, comme suit:
<command> <history> <enemy_history> <your_health> <enemy_health> <your_honour> <enemy_honour>
où:
<command>
est la commande requise pour exécuter votre programme. Par exemple, si votre programme est dans un fichiersuper_sentai.pl
, la commande est probablementperl super_sentai.pl
.<history>
est une histoire de mouvements que vous avez faits. Par exemple,WWBP
cela signifierait que vous avez attendu deux fois, que vous vous êtes incliné une fois et que vous avez été paré une fois.<enemy_history>
est une histoire de mouvements effectués par votre ennemi. Par exemple,BBBI
cela signifierait que votre ennemi s'est incliné trois fois et a effectué un tirage rapide.<your_health>
est votre santé actuelle.<enemy_health>
est la santé actuelle de l'ennemi.<your_honour>
est votre honneur actuel.<enemy_honour>
est l'honneur actuel de l'ennemi.
Pour le premier tour, le history
et enemy_history
sera vide, votre programme sera donc appelé avec les quatre derniers arguments comme ceci:
<command> <your_health> <enemy_health> <your_honour> <enemy_honour>
S'il vous plaît soyez prêt pour cela!
Les lecteurs avisés remarqueront peut-être que les quatre arguments fournissant l’honneur et la santé des deux samouraïs sont, dans une certaine mesure, superflus; S'agissant d'un jeu d'informations parfait, l'honneur et la santé des samouraïs peuvent être déterminés à l'aide des historiques uniquement.
Ces valeurs sont fournies à des fins pratiques afin que vous n'ayez pas à analyser les arguments de l'historique. Cela devrait s'avérer utile pour mettre en œuvre des stratégies simples, telles que ne pas attaquer lorsque votre honneur est égal à 0.
Description de la sortie
Pour choisir une action, votre programme devrait afficher l' un des W
, B
, G
, I
, P
ou O
à la sortie standard, en fonction de l' action que vous voulez faire. Si votre programme ne génère rien dans un délai de 1000 ms, il sera terminé et votre programme sera traité comme s'il était sorti W
.
Si votre programme génère plus d'une lettre, seule la première lettre sera prise en compte. La sortie Parry
sera donc identique à la sortie P
.
Si le résultat de la première lettre de votre programme ne correspond à aucune des options répertoriées ci-dessus, sa valeur par défaut est W
.
Format de soumission
Soumettez un programme en réponse à cet article. Vous pouvez soumettre plusieurs programmes. Si vous soumettez plusieurs programmes simples, je vous recommande de les soumettre en tant que réponse unique; Si vous soumettez plusieurs programmes complexes, je vous recommande de les soumettre séparément. Une fois que j'ai ajouté avec succès votre / vos programme (s) au tournoi, je ferai un engagement dans le référentiel git avec votre inscription (lien ci-dessous).
Si je rencontre des problèmes qui empêchent l'ajout de votre programme au tournoi, je laisserai un commentaire sur votre inscription pour indiquer le problème.
Veuillez inclure les éléments suivants dans votre soumission:
- Nom lisible par l’homme de votre programme, à utiliser dans les tableaux de bord. Les espaces sont autorisés ici; les virgules et les caractères Unicode ne le sont pas.
- La langue dans laquelle votre programme est écrit. Veuillez éviter d’écrire dans des langues étranges et difficiles d’accès telles que TinyMUSH.
- Un bref synopsis de votre programme. Il peut s’agir d’une description du fonctionnement du programme, ou simplement d’un texte de synthèse sur votre programme (si vous souhaitez rester secret), ou peut-être des deux.
- La commande / s requise pour exécuter votre programme. Par exemple, si vous écrivez votre soumission en Java appelée
example.java
, vous devez fournir des instructions de compilationjavac example.java
puis des instructions d'exécutionjava example
. - Le code source du programme.
Pour aider à la soumission, je fournis un modèle de soumission qui peut être trouvé ici . Le modèle rend les soumissions plus jolies. J'encourage fortement à l'utiliser.
Je fournis également deux exemples d'entrées. Bien que les exemples d’exemples participeront au round robin, leur objectif principal est de clarifier les formats de soumission et d’entrée / sortie du tournoi, plutôt que d’être de sérieux prétendants au titre d’Ultimate Samurai.
Structure du tournoi
Cette section décrit le déroulement du tournoi entre les participants.
Programme de contrôle
Le programme de contrôle est écrit en Python 2 et se trouve dans le référentiel Ultimate Samurai Showdown Github . Si vous souhaitez l'exécuter vous-même, des instructions sur son exécution sont incluses dans le fichier README.md dans le lien. Cependant, seuls les tournois organisés sur mon ordinateur seront officiels pour éviter les différences matérielles affectant les résultats du tournoi.
Le programme de contrôle sera exécuté sur un ordinateur portable sous Arch Linux. Il dispose d'un processeur Intel Core i7 et de 8 Go de RAM. Je vais essayer de faire en sorte que toutes les entrées soient exécutées sur mon ordinateur, mais je vous en serais très reconnaissant si vous évitiez des langues inaccessibles (sans aucun coût monétaire).
Système de notation
Le système de notation est un round robin. Chaque programme jouera huit matches contre tous les autres programmes. Une victoire donne au programme 1 point, une perte sans points et un match nul 0,5 point. Le programme avec le score le plus élevé gagne la partie. S'il y a un match nul, je combinerai les deux meilleurs programmes pour déterminer le vainqueur.
Le nombre de répétitions de chaque programme peut être réduit de 8 si le nombre de participants est extrêmement élevé. Je vais ajouter une note ici si cela se produit.
J'organiserai le tournoi à la ronde à plusieurs reprises au fur et à mesure que de nouvelles soumissions seront publiées, mais seul le plus récent tournoi à la ronde comptera.
Disqualifications
Il est possible que votre programme soit disqualifié du tournoi. L’exclusion peut survenir si:
- Votre programme ne compile ni ne court;
- Votre programme est un duplicata stratégique d’un autre programme (c’est-à-dire qu’il met en œuvre exactement la même stratégie qu’un autre programme);
- Votre programme tente de saboter d'autres programmes en modifiant le code du contrôleur, le code d'un autre programme, etc.
- Votre programme tente d'exploiter un bogue dans le code du contrôleur. Au lieu d’exploiter des bogues, vous devriez plutôt ouvrir un problème dans le référentiel git, faire un commentaire ici ou cingler.
Résultats passés
Les résultats détaillés de tous les tournois sont disponibles sur la page wiki .
Le plus récent tournoi a été clôturé le 2015-07-17 07:20. Voici un résumé des résultats:
The Observer: 209.0
Coward: 203.0
Monk: 173.0
Elephant Warrior: 157.0
Iniqy: 157.0
Agent 38: 144.0
Ninja: 138.0
Meiyo Senshi: 138.0
Kakashi: 136.0
Yoshimitsu: 131.0
Hermurai: 121.0
Warrior Princess: 120.0
Gargoyle: 119.5
The Honourable: 119.0
Hebi: 118.5
Predictor: 116.0
Whack-a-mole: 107.0
The Fool: 106.0
The Prophet: 105.0
Copy-san: 97.0
YAGMCSE: 80.0
The Waiter: 66.0
Swordsman: 43.0
Spork Holder: 32.5
Blessed Samurai: 27.5
Attacker: 27.0
The Terminator: 17.0
Master Yi: 16.0
la source
Réponses:
Le moine (Java)
Les valeurs du moine honorent et louent les bénédictions des dieux. Entraîné à la patience, il envoie ses prières au ciel avec calme jusqu'à ce qu'il se sente favorisé par Dieu.
Profitant de sa vie, il tente de la protéger. Lorsqu'il perd la santé au-dessus d'un certain taux, il se défend du mieux qu'il peut.
Espérant avoir le soutien de ses dieux, il envoie au hasard des éjaculations [1] au ciel, sinon il se bat du mieux qu'il peut.
Si son adversaire est usé de la bataille, il le termine en utilisant son dernier honneur pour lui accorder une mort rapide et sans douleur.
Compiler / Exécuter
Le Ninja (Java)
Le Ninja est rapide et attaque encore plus vite. Il attaque tout de suite après un salut formel et amical, déroutant davantage son ennemi en s'inclinant avant et après chaque attaque.
Après avoir été béni, le ninja maintient ce comportement, attendant que son adversaire fasse son (ses) premier (s) mouvement (s). Profitant de cette opportunité, il déchaîne une série d'explosions bénies par la déesse ninja jusqu'à ce qu'il soit trop épuisé par la bataille. Utilisant son dernier honneur, il se cache sous les feuilles, se protégeant de la prochaine attaque. Il saute et attaque son ennemi par derrière, se cachant aussi vite que possible.
S'il reçoit une blessure mortelle, il met tout en œuvre pour emmener avec lui la vie de son adversaire - bien sûr, en gardant un minimum d'honneur.
Kakashi, le copycat ninja (Java)
Kakashi copie ses mouvements adverses en choisissant au hasard entre les deux derniers mouvements effectués par l'adversaire. Si l'adversaire attend, il s'incline. Il conserve également son honneur.
Je souhaite que Kakashi soit béni avec le sharingan .. J'ai pensé à lire le casting.txt. Simulez chaque tour de son histoire contre chaque adversaire. Essayez de savoir contre quel adversaire il se bat en comparant l’histoire simulée de l’ennemi à l’histoire réelle. Ensuite, utilisez ces informations pour prédire le prochain coup que l’adversaire ferait et choisir le meilleur contre-mouvement à partir d’une liste prédéfinie. Mais je pense que cela pourrait prendre un peu, car je suis très lent sur Internet et qu’il n’ya aucune connaissance de Java
L'observateur, (node.js)
L'observateur s'incline avant d'essayer de prédire le prochain mouvement de l'adversaire parmi ses 5 derniers mouvements, en choisissant le meilleur pendant du mouvement prédit.
Edit: Merci à @apsillers pour le partage du node.js boilerplate !.
Edit: j’avais un défaut majeur chez l’observateur, je ne sais pas ce que je pensais hier soir. Il semble qu'il n'ait regardé que les deux derniers mouvements de l'ennemi. Il a fait étonnamment bien comme ça.
Sa mémoire est maintenant interrogée pour la partie la plus longue de l'histoire de l'ennemi qu'il a déjà vue. Cela contient un tableau avec tous les mouvements qui ont suivi l'historique des mouvements. L'un est sélectionné au hasard. Donc, si un mouvement suivait plus souvent, il est également plus probable qu'il soit choisi. Un peu comme les chaînes de markov.
The Observer, maintenant également gardien.
[1]: TIL: l'éjaculation a un sens religieux
la source
Meiyo Senshi (Java)
Originaire de la région de Haijima, on ne sait pas grand-chose du Meiyo. Ils ne participent normalement pas à des jeux de sport, mais ont envoyé un guerrier à celui-ci afin d'évaluer leurs rivaux.
Cependant, ils forment un groupe honorable. Vous pouvez donc être assurés qu'il fera bientôt connaître sa présence aux dieux. Une fois qu'il aura vu assez de son ennemi pour le signaler, il utilisera les bénédictions reçues pour abattre son adversaire.
Pour compiler, c'est la méthode Java standard:
la source
Porte-Spork (Rubis)
Spork Holder s'incline au premier tour, puis agit de manière aléatoire après. C'est l'un des deux exemples d'entrées.
Commander:
ruby spork-holder.rb
Le serveur (bash)
Le serveur attend seulement à chaque tour. C'est l'un des deux exemples d'entrées.
Commander:
echo W
Il n'y a pas de code source requis.
la source
Coward (Node.js)
BXBXBX
/ lesBBB
modèles pour s'incliner (ou te frapper) lorsque tu te prosternes.GXGXGX
modèles à s'incliner lorsque vous gardez.Si vous souhaitez rédiger une soumission Node.js , n'hésitez pas à utiliser mon code standard. tout, y compris la
decide
fonction, est entièrement général et gratuit.la source
Whack-a-mole (R)
Frappe quand l'ennemi est susceptible de s'incliner, sinon gardes.
Courir en utilisant
Rscript Whack-a-mole.R
.la source
Guerrier Éléphant (Java)
Le guerrier d'éléphant vient d'un temps plus ancien et plus naturel. Il a beaucoup vu et se souvient de tout. Il recherche les faveurs des dieux pendant qu'il examine son adversaire, puis, une fois qu'il les prend dans son cœur, il les sépare.
Compiler:
javac ElephantWarrior.java
Commande:
java ElephantWarrior
la source
args
.Princesse guerrière (Julia)
C'est le premier défi du roi de la colline auquel je participe. Voyons comment cela se passe.
La princesse guerrière donne la priorité à l'attaque et à l'honneur, et recourt à l'auto-préservation en cas de besoin. Elle est plutôt impatiente et n'attend jamais. Dans un effort pour rester agile, elle n’utilise pas non plus d’attaque aérienne.
Enregistrez sous
warrior-princess.jl
et exécutez à partir de la ligne de commande comme suit:Si vous n'avez pas Julia, vous pouvez le télécharger ici . Pour éviter les problèmes, la dernière version stable est recommandée (c’est-à-dire pas la version de développement).
la source
Gargouille (Java)
Essaie d'utiliser le mouvement défensif sans consommer l'honneur.
Comme c'est une entrée java:
la source
Épéiste (C / Java)
Swordsman s'incline au premier tour et chaque fois qu'il manque d'honneur. Il vérifie ensuite si l'adversaire ne s'est pas incliné, ne s'est pas défendu ou n'a pas attendu au tour précédent. Si l’adversaire ne l’avait pas fait, il ya une forte probabilité qu’il en fasse une dans le tour en cours et que l’épéiste frappe ainsi au hasard sur l’adversaire. Si ce n'est pas vrai, il défend s'il n'a pas défendu le tour précédent. S'il l'a eu, il s'incline pour gagner l'honneur.
Version C:
Installez GCC (compilateur) et enregistrez le code dans un fichier nommé " Swordsman.c " pour compiler:
Un exécutable nommé " Swordsman " sera créé. Courir en utilisant
Version Java:
Installez javac (compilateur) et enregistrez le code dans un fichier nommé " Swordsman.java " pour compiler:
Un fichier de classe nommé " Swordsman.class " sera créé. Courir en utilisant
Attaquant (Java)
L'attaquant ne se soucie de rien sauf qu'il veut la mort de son adversaire. Il frappe au hasard un des mouvements d'attaque et, s'il a peu d'honneur, s'incline.
Installez javac (compilateur) et enregistrez le code dans un fichier nommé " Attacker.java " pour compiler:
Un fichier de classe nommé " Attacker.class " sera créé. Courir en utilisant
Prédicteur (C / Java)
Predictor prédit les mouvements de l'ennemi. Au premier tour, il utilise un coup aléatoire. S'incline si son honneur est bas, frappe si l'honneur de l'ennemi est bas ou s'il s'est incliné au tour précédent. Si le prédicteur n'a pas gardé le tour précédent, les gardes du tour actuel. Sinon, fait le même mouvement que l'ennemi lors du tour précédent, à condition que ce ne soit pas le
'W'
cas, Predictor s'incline.Version C:
Installez GCC (compilateur) et enregistrez le code dans un fichier nommé " Predictor.c " pour la compilation:
Un exécutable nommé " Predictor " sera créé. Courir en utilisant
Version Java:
Installez javac (compilateur) et enregistrez le code dans un fichier nommé " Predicator.java " pour compiler:
Un fichier de classe nommé " Predicator.class " sera créé. Courir en utilisant
Pas sûr de l'efficacité de ces robots car je n'ai pas l'interpréteur python2 pour le tester.
la source
ArrayIndexOutOfBoundsException
au premier tour, l'obligeant à attendre le premier tour. En dehors de cela, il fonctionne.segmentation fault (core dumped)
après la ronde 24Maître Yi (Python)
Le maître assassin gagne beaucoup de faveur au début du jeu, le construisant jusqu'à ce qu'il soit invincible. Essaie d'attaquer quand ils s'y attendent le moins.
Pour exécuter: Enregistrer sous
MasterYi.py
la source
Copy-san (C)
Copie chaque mouvement de son adversaire. Je suis sûr qu'il est assuré de perdre. Compiler:
gcc copy-san.c
la source
Hebi (Java)
Hebi suit la voie du serpent.
Le serpent n'a pas besoin de la bénédiction des dieux.
Le serpent glisse ses grèves; comme des vagues sur la plage, ce qui arrive recule comme il était venu.
Le serpent n'attend jamais.
Le serpent n'a aucun sens d'aptitude, sinon il aurait été écrit en Python.
Instructions d'exécution:
Corps du code:
la source
L'honorable (Java)
Les valeurs honorables honorent avant tout. C'est-à-dire que son honneur est supérieur à celui des autres. Si le samouraï ennemi a un honneur plus grand ou égal, il s'incline. Personne ne sera plus honorable que lui. Sinon, il fait un mouvement aléatoire. Il ne garde jamais deux fois d'affilée - ce serait déshonorant!
compiler:
La source:
la source
Bienheureux Samurai (Python)
Ce samouraï essaie de garder la faveur des dieux aussi longtemps que possible. Il se précipite pour obtenir l'épée sacrée, puis alterne entre Garder et Attaquer avec l'une des frappes, reconstituant l'honneur en cas de besoin. S'il semble que son adversaire ou lui-même risque de tomber, il se précipite pour tuer. Il tombera facilement devant un adversaire capable de suivre son schéma, mais sa stratégie consistant à toujours attaquer à deux dégâts devrait être assez efficace.
Pour exécuter:
Enregistrer sous BlessedSamurai.py
la source
last
à ceself.last
qui semble résoudre le problème.Hermurai (C ++)
Admire son adversaire et est un peu paranoïaque. Il veut savoir s’il peut faire ce que les autres samouraïs peuvent faire, car il ne peut toujours pas se croire samurai. Son rêve ne s'est jamais estompé est devenu réalité avant qu'il ne le sache. Ce qui pourrait lui coûter la tête ...
Iniqy (C ++)
Frappe aussi fort que possible. Passe en mode d'attaque imparable lorsqu'il est en danger.
Les deux sont écrits en C ++. Compiler:
Pour fonctionner sous Linux:
./iniqy
Pour fonctionner sous Windows:
iniqy.exe
la source
Le terminateur (rubis)
Le Terminator ne fait pas attention à sa propre santé. Le Terminator n'a aucune notion d'honneur. Le Terminator est envoyé du futur et simplement déterminé à mettre fin à son adversaire. Il le fait en regardant ses adversaires bouger, et rien d’autre. Il échantillonne les déplacements et calcule la réponse appropriée de manière si complexe qu'aucune technologie actuelle ne peut prédire les actions du Terminator. En fait, pour ceux qui vivent en 2015, le Terminator peut sembler quelque peu aléatoire ...
la source
Agent 38 [1] (C)
En tant que produit de la manipulation génétique importante, l' agent 38 a le physique et l' acuité mentale d'un super [2] -samurai, et est nettement supérieure à tous ses sans ressource [citation nécessaire] viciée [citation nécessaire] concurrents.
[1] Nombre complètement non pertinent. [2] Garanti d'être vrai 1% du temps.
YAGMCSE
Les méthodes de Monte Carlo semblent présenter un jeu décent, alors voici encore une autre entrée générique pour la simulation de Monte Carlo!
Contrairement à la plupart des autres participations de ce concours, cette inscription utilise un grand nombre de simulations de jeux aléatoires et nécessite donc l'utilisation de l'indicateur -O3 pour des performances optimales.
Compilez le programme avec la commande suivante: gcc monte.c -o monte -O3 -std = c99
la source
GBWWWWW...
ou l' autreBWWWW
Après ma tentative infructueuse d'entrer dans Target Dummy, je vous présente mon prochain bot ...
ScroogeBot - Python 2
Ce bot s'inclinera s'il n'a qu'un seul honneur. Sinon, il lancera une pièce de monnaie.
S'il tombe sur la tête, il effectuera une attaque au hasard. S'il tombe sur la queue, il s'incline ou se protège.
Commander:
python scroogebot.py
la source
Yoshimitsu (JS)
Essaie de ne pas se protéger en vérifiant les deux derniers mouvements, obtiendra le courage avec un plus grand honneur. basé sur le modèle apsillers fait
la source
Le fou (C)
Le Fou implore une stratégie plutôt erratique, ne répétant jamais deux fois le même mouvement à moins d'y être contraint par manque d'honneur. Ses mouvements sont largement basés sur le hasard, ce qui rend difficile de prédire ses actions. Son bien-être est la dernière chose à laquelle il pense, car ses pensées ne sont orientées que sur l'effusion de sang et la victoire ultime.
Le prophète (c)
Le Prophète utilise la connaissance des 2 précédents mouvements de son adversaire afin de prédire son prochain mouvement et fournit une contre-attaque rapide et mortelle. En outre, il fait de l'astrologie et d'autres choses.
Compilation
Les deux programmes sont écrits en C et peuvent être compilés avec
gcc
:Fonctionnement
*rien
les fenêtres
la source