Giter Site home page Giter Site logo

ce-monde-est-cruel's Introduction

TP NLPF #2

PreRequis

  • Installer PHP sudo apt install php // C'est obvious - php 7.4.3 (cli)
  • Installer PHP-DOM sudo apt install php-dom // Nécessaire pour phpunit
  • Installer Composer sudo apt install composer // Gestionnaire de paquets pour récupérer les injections de dépendances
  • Installer les vendors composer install // Permet de récupérer les vendors pour avoir un autoloader
  • Installer phpunit ./dlphpunit.sh // Permet d'installer et de configurer phpunit (permet de lancer les tests) - php 9.4.0

Introduction

Vous êtes enfermés avec une autre IA, dont vous ne connaissez pas l'identité.

Vous avez trois choix : pierre (rock), feuille (paper) ou ciseaux (scissors). En fonction de vos deux choix, les gains (ou pertes) sont répartis de la manière suivante.

Moi @ L'autre pierre feuille ciseaux
pierre 1 @ 1 0 @ 5 5 @ 0
feuille 5 @ 0 1 @ 1 0 @ 5
ciseaux 0 @ 5 5 @ 0 1 @ 1

Comment faire ?

A chaque tour, vous devez faire un choix 'rock', 'paper' ou 'scissors', en fonction du contexte.

Objectif

Il faut avoir le plus haut score. Les scores se cumulent entre chaque match.

Informations

Il y a 10'000 tours par match. // Ce chiffre peut changer.

Pour vous aidez à faire vos choix, vous avez accès aux informations suivantes :

  • votre (ou son) dernier choix
  • la pile de vos (ou ses) choix
  • votre (ou son) dernier gain (ou perte)
  • la pile de vos (et ses) gains (ou pertes)
  • des statistiques (pour vous, pour l'autre ou les deux) concernant le nombre de fois : où il a été dit 'rock', 'paper', 'scissors'' et le score de chacun
  • le numéro du tour où vous en êtes (le tour 0 signifie le premier tour)

Les informations sont dans la proprieté result de votre objet.

Les scripts à connaitre

./phpunit.phar : permet de lancer les tests (ils seront lancés AVANT de lancer tous les combats) php EntryPoint.php : permet de lancer les combats ET de générer un fichier index.html avec l'ensemble des résultats

Les résultats - Etape par Etape

  • Récupération de vos classes que je remplace
  • Remplacement (ou non) de la classe Crazy par les autres IA
  • Execution des tests qui permettent de vérifier s'il n'y a pas eu triche et que vos IAs sont compatibles (si une IA ne passe pas les tests ==> c'est la disqualification)
  • Generation de la page de résultats

## Notes

  • Ne pas modifier les fichiers dans : src/Game/Engine/* | src/Game/PlayerIA/Player.php | src/Tests/* | racine de ce projet
  • Les boucles infinis, l'utilisation de die, exit, exceptions, signal, ... sont interdits.
  • Une vérification du temps d'execution sera effectué.
  • Les valeurs de la matrice de gains/pertes sont amenées à évoluer, ainsi que le nombre de tours pour un match (le nombre de tours sera toujours supérieur à 100).
  • Les IAs déjà présentes ne seront pas les mêmes sur l'environnement final. Elles ne servent qu'à tester votre propre IA.

Quotes

Prediction is very difficult, especially about the future. -Niels Bohr

ce-monde-est-cruel's People

Contributors

hvmzx avatar robinduval avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.