Coder Social home page Coder Social logo

df92 / sudosimu Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 623 KB

Simulation de résolution humaine de sudoku, tente d'imiter la cognition avec réalisme sans objectif de performance - Human-like sudoku solver, attempts to best simulate realistic cognition disregarding performance

Python 99.84% HTML 0.16%
game human realistic resolution simulation solving sudoku

sudosimu's Issues

SudoThinkAI._startTech() - noms des techniques en littéral

Dans _startTech() il y a une série de if...elif... avec les noms de techniques en littéral. Le but est d'individualiser l'appel des techniques en fonction des arguments qu'elles demandent.
Pb = manque de standardisation et évolutivité du code.
Comment faire pour paramétrer afin qu'un unique appel de technique fonctionne dans tous les cas, et donc pour supprimer la série de if...elif ?

env=None dans __init__ des classes

Dans toutes les classes (avec héritage de la classe de base) la variable 'env' est un paramètre optionnel de l'instanciation :
def __init__(self, mem, know=None, env=None, testlevel= .... )
puis :
assert isinstance(env, sudoenv.SudoEnv) or env is None
oldlev = env.testLevel("thinkai")
Il manque quelque chose si env==None, par exemple env = sudoenv.SudoEnv()
En pratique le bug apparaît rarement car la plus grande partie du code propage un environnement depuis l'exécution initiale, mais c'est une source d'erreurs certaine.

import sudoui as ui - A supprimer partout

** MODIFICATION DANS TOUT LE CODE**
Dans tout le code il y a l'import : import sudoui as ui puis des appels de fonctions comme ui.display(...)
Problème = n'est pas objet et de plus ne permet pas de contrôle de l'UI d'une instance d'exécution de simulation puisque l'UI est globale donc unique.
TODO :

  • supprimer import sudoui as ui partout
  • utiliser dans le code : env.ui.display(...) ou env.display(...) qui permet que les outputs soient tous contrôlés par l'environnement.

Stabiliser test_main.py

Actuellement (21/11/2018) mélange de test_main.py, main_test.py, ... c'est le foutoir. Nettoyer tout ça pour avoir 1 seul script à importer pour faire les tests de modules.

plantage AI

PRIORITAIRE - URGENT
Plantage (exception) dans la suggestion d'une règle donc au top-niveau AI. Le problème est que ça empêche de tester quoi que ce soit donc c'est une priorité absolue.

Output :

Traceback` (most recent call last):
  File "C:\Users\David\_PROG\SudoSimu\src\Branches\Backup 20181120 Fork-20181114-app-game-player\sudosimu\sudothinkai.py", line 196, in decideAction
    suggestion = self._ai.suggest()
  File "C:\Users\David\_PROG\SudoSimu\src\Branches\Backup 20181120 Fork-20181114-app-game-player\sudosimu\sudoai.py", line 135, in suggest
    r = self._makeAIanswer(rulename)
  File "C:\Users\David\_PROG\SudoSimu\src\Branches\Backup 20181120 Fork-20181114-app-game-player\sudosimu\sudoai.py", line 186, in _makeAIanswer
    raise Sudoku_Error("AI - Erreur fatale AI, impossible de faire "\
sudorules.Sudoku_Error: AI - Erreur fatale AI, impossible de faire une suggestion d'action valable.

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.