Bonjour,

Pour un projet en cours je dois créer un jeu de go en python. Il y a 3 "parties" de code :

Le moteur du jeu en Python, l'interface graphique en Javascript et la partie serveur qui fait le lien entre les deux. J'essaie en ce moment d'écrire le code serveur me permettant de passer un tour. Cette fonction prend en entrée un paramètre "Ptour" venant d'une variable javascript (pour l'instant je rentre manuellement le numéro du tour dans un champ puis je clique sur un bouton pour le valider). Mon code javascript appelle ensuite la fonction serveur "passTurn" qui appelle à son tour la fonction passTurn du code Python. En fonction de la valeur retournée par le code Python, qui détermine si c'est au tour de noir ou de blanc de jouer, je renvoie au code javascript un Json contenant 'Noir passe' ou 'Blanc passe'.

Mon problème est qu'aucun message ne s'affiche dans la console, l'erreur suivante s'affiche quand j'appuie sur le bouton passer :

404 Not Found

Unexpected query string parameters: tour, y, x, z

Traceback (most recent call last):
File "C:\Python34\lib\site-packages\cherrypy\_cpdispatch.py", line 61, in __call__
return self.callable(*self.args, **self.kwargs)
TypeError: index() got an unexpected keyword argument 'tour'


Sachant que x, y et z sont des variables utilisées pour une autre fonction "move" qui permet de gérer le placement des pierres (et qui elle, fonctionne sans erreur).

Voici mes lignes de code :

1) Code javascript :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<form>
 
    <input type="number" id="tour" name="tour"/>
 
    <button id="pass" onclick = "pass() ;return false;">Pass</button>
 
</form>
 
<script>
    function pass(){
        //console.log("pass .click()called." );
        var Ptour = $("#tour").val();
        $.post('/passTurn', {tour}).done(function(data){
            // console.log(data);
            var json = JSON.parse(data);
            if(json){
                console.log(json.message);
            }
        });
    };
</script>
2) Code serveur Python :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
@cherrypy.expose
def passTurn(self, Ptour): #Doit être appelée par le bouton "passer un tour"
    passtour = example1.Game()
    if(int(Ptour>=0)):
        if (passtour.passTurn(int(Ptour))==1):
            response={'message' : 'Noir passe'}
        else:
            response={'message' : 'Blanc passe'}
    else:
            response={'message' : 'error'}
    return json.dumps(response)
3) Code "moteur" Python (fichier Game) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
# PASSTURN > passer son tour
def passTurn(self, tour):
    if (int(tour) %2 == 0):
        passtour = 1
    else:
        passtour=2
    return passtour
Pour information, la fonction index() est dans le fichier serveur, c'est ce qui me sert à envoyer la page javascript. Elle n'est même pas censée être appelée quand j'essaye de passer un tour, je ne comprends pas pourquoi l'erreur affichée est :

TypeError: index() got an unexpected keyword argument 'tour'

Je n'arrive pas à trouver l'origine de l'erreur, et donc encore moins à la corriger. Quelqu'un connait il la réponse à mon problème ? Serait il plus simple de gérer les tours uniquement dans le code javascript ?

Je travaille en entreprise dans la journée, mais j'essaierai de répondre le plus vite possible si il manque des informations

Merci d'avance

Aurore