Jeu et algo pour jouer et solver le jeu Absens

Jeu et algo pour jouer et solver le jeu Absens - Algo - Programmation

Marsh Posté le 09-10-2017 à 17:15:38    

Bonjour,
 
Je conçois un jeu, je cherche l'algo solution pour résoudre le jeu. Si ça vous interresse, je suis preneur de vos analyses et idée de techniques !
 
Merci pour votre contribution.
 
Le jeu s'appelle absens, les règles sont les suivante :

Citation :

Plateau du jeu :
 
    Jeu 0: 0000000
    Jeu 1: 1111111
    vide : [ ]
     
 
Règles
Début de partie :
 
    Les joueurs choisissent chacun une place dans leur jeu.
    Le joueur qui commence place un de ses autres pions dans la place vide.  
     
 
Tour de jeu :
 
    A chaque tour chacun des deux joueurs déplace un de ses pions dans une place libre ou la place vide si elle est libre.
     
 
But :
 
      Le jeu continu jusqu'à complétion du jeu propre en laissant le joueur adverse dans la place vide.    
     
 
Coup spécial
 
    Si un des deux joueurs place son propre pion dans la palce vide, celui- ci choisie la place qu'il désire en échangeant la place vide avec un pion de l'adversaire.


 
Ma recherche d'algorithme est vraiment archaïque pour le moment avec Ada :
 

Code :
  1. -- Voir sourceforge


 
vous pouvez trouver ce jeu et algo sur sourceforge : https://sourceforge.net/projects/absens/
 
 
Merci de votre participation.


Message édité par Profil supprimé le 11-10-2017 à 16:53:52
Reply

Marsh Posté le 09-10-2017 à 17:15:38   

Reply

Marsh Posté le 11-10-2017 à 09:31:11    

Désolé mais je n'ai rien compris aux règles.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 11-10-2017 à 15:43:52    

C'est pourtant pas bien compliqué.
Si je peu aider à saisir je suis disponible.

Reply

Marsh Posté le 11-10-2017 à 16:18:25    

Après de longues minutes, voilà ce que je comprends du jeu :
- les pions du joueur 1 seront symbolisés par des 1
- les pions du joueur 2 seront symbolisés par des 2
 
- plateau de jeu du joueur 1 : 0 0 0 0 0 0
- plateau de jeu du joueur 2 : 0 0 0 0 0 0
- plateau de jeu neutre : 0
 
Début de partie, les joueurs définissent une place sur leur plateau :
- plateau de jeu du joueur 1 : 0 0 [0] 0 0 0
- plateau de jeu du joueur 2 : 0 0 0 0 0 [0]
- plateau de jeu neutre : 0
 
Premier tour, joueur 1 place un pion dans le plateau neutre :
- plateau de jeu du joueur 1 : 0 0 [0] 0 0 0
- plateau de jeu du joueur 2 : 0 0 0 0 0 [0]
- plateau de jeu neutre : 1
 
Premier tour, joueur 2 place son pion dans le plateau du joueur 1 :
- plateau de jeu du joueur 1 : 0 2 [0] 0 0 0
- plateau de jeu du joueur 2 : 0 0 0 0 0 [0]
- plateau de jeu neutre : 1
 
Deuxième tour, joueur 1 place son pion dans le plateau du joueur 2 :
- plateau de jeu du joueur 1 : 0 2 [0] 0 0 0
- plateau de jeu du joueur 2 : 0 0 0 1 0 [0]
- plateau de jeu neutre : 1
 
Deuxième tour, joueur 2 place son pion dans le plateau du joueur 1 :
- plateau de jeu du joueur 1 : 0 2 [0] 0 2 0
- plateau de jeu du joueur 2 : 0 0 0 1 0 [0]
- plateau de jeu neutre : 1
 
Ainsi de suite, je ne comprends pas à quoi sert le choix de place au début, je ne comprends pas le coup spécial et surtout je ne comprends pas qui gagne...


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 11-10-2017 à 16:22:23    

Ouahouh.
 
Merci pour ton retour.
 
 
Alors que moi je part d'un plateau avec les pion disposés sur le plateau.
On peut distinguer le pion du chacun des joueur en choisissant des pion spécifique.


Message édité par Profil supprimé le 11-10-2017 à 16:23:40
Reply

Marsh Posté le 11-10-2017 à 16:30:13    

MaybeEijOrNot a écrit :


 
Ainsi de suite, je ne comprends pas à quoi sert le choix de place au début, je ne comprends pas le coup spécial et surtout je ne comprends pas qui gagne...


 
Le gagnant est le premier qui re- constitue la ranger de ses pions en laissant le pion du joueur adverse dans la place vide.
 
Le coup spécial si le pion du joueur courant est dans la place vide et si on le souhaite,  permet  d'échanger n'importe lequel des pions de l'adversaire avec le pion dans la place vide.


Message édité par Profil supprimé le 11-10-2017 à 16:31:07
Reply

Marsh Posté le 11-10-2017 à 16:33:55    

Ah je commence à mieux comprendre. Tu récupères tes pions dans jeu/plateau adverse en fait, c'est ça? Mais du coup c'est sans fin? Puisqu'à chaque tour tu ne fais qu'échanger, le pion que tu auras récupéré sera de nouveau piqué par l'adversaire? xD
Tu ne peux pas simuler quelques tours pour qu'on comprenne mieux?


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 11-10-2017 à 16:42:40    

Ok, à 2 pions chacun :
 
Les 0 pour le joueur A et un K pour le pion du joueur A.
Les 1 pour le joueur B et un L pour le pion du joueur B.
 
exemple :
plateau de départ :  
 
rangé A : 0K
rangé B : L1
vide : [vide]
--------------------
1er tour : B commence.
 
rangé A : 0K
rangé B :  1
vide : [L]
 
A joue :
rangé A : 0  
rangé B : K1
vide : [L]
--------------------
2eme tour : B joue.
 
rangé A : 0  
rangé B : L1
vide : [K]
 
Le joueur B gagne la partie en constituant son jeu sur sa rangé de départ.
 
 
 
 
 

Reply

Marsh Posté le 11-10-2017 à 16:49:00    

Ah, désolé : C'est un peu particulier : C'est un cas exceptionnel, le joueur qui commence place son pion dans le vide et il gagne à tout les coup.
 
Donc j'y pensais hier j'avais oublier : je devais ajouter une exception pour la règle mais du coup je ne sais pas si le jeux fonctionne toujours.
 
 
Et aussi suprenant que cela soit, il n'y a pas que prise de pion ; Seulement des déplacement et un coup spécial pour un échange.


Message édité par Profil supprimé le 11-10-2017 à 16:58:03
Reply

Marsh Posté le 11-10-2017 à 17:12:38    

A 2 pions chacun ça joue pas.
Ok, à 3 pions chacun :
 
Les 0 pour le joueur A et un K pour le pion du joueur A.
Les 1 pour le joueur B et un L pour le pion du joueur B.
 
exemple :
plateau de départ :  
 
rangé A : 00K
rangé B : L11
vide : [vide]
--------------------
1er tour : B commence.
 
rangé A : 00K
rangé B : L1
vide : [1]
 
A joue :
rangé A : 00  
rangé B : L1K
vide : [1]
--------------------
2eme tour : B joue.
 
rangé A : 00L  
rangé B :  1K
vide : [1]
 
A joue :
rangé A :  0L  
rangé B : 01K
vide : [1]
 
---------------------
3eme tour :
B joue.
 
rangé A : 10L  
rangé B : 01K
vide : [ ]
 
A joue :
rangé A : 10L  
rangé B : 01
vide : [K]
 

Reply

Marsh Posté le 11-10-2017 à 17:12:38   

Reply

Marsh Posté le 24-12-2021 à 04:23:02    

Bonjour,
 
Ne vous cassez pas trop la tête de bon matin.
 
Je cherche à nouveau une soluce pour ce jeu.

Reply

Marsh Posté le 24-12-2021 à 10:06:03    

Toujours pas certain d'avoir compris, cela semble être le vrai but du jeu...
 
Mais si le joueur A ne bouge jamais son K il ne peut jamais perdre, tout comme si le joueur B ne bouge jamais son L.
 
C'est bien ça ? Il ne faut pas que son K ou son L se retrouve dans le "vide" ?


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 24-12-2021 à 10:12:43    

Exact.
 
 
C'est pourquoi, j'ai énoncé, j'énonce ici, qu'il s'agit soit d'un défaut d'article de règles ; Soit d'un jeu cooperatif.
 
Mais dans le concepte, c'est plu un jeu comment on l'entend habituellement.

Reply

Marsh Posté le 24-12-2021 à 10:15:18    

Ce ci dis le concepte hasardeux de la conscience de la la règle fait que ça peu êre un jeu quand même.
 
Et ici, c'est une solution en considération des règle exclusivement, je vais pas introduire l'oublie des règle, avec un algo, le plu simple possible sera le mieux.
 
Mais un bon, j'aimerai bien trouver.
 
J'avoue que j'ai du mal.

Reply

Marsh Posté le 24-12-2021 à 10:24:47    

Ben ta première solution qui repose sur l'incompréhension des règles permet de rester aussi simple sur l'algo.
 
Sinon tu peux toujours transformer ton jeu en jeu de hasard en ajoutant des tirages aléatoires.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 24-12-2021 à 10:31:21    

J'ai déjà implementé une solution basé sur le concept de l'aléatoire.
 
C'est pas efficace. Pas du tout.

Reply

Marsh Posté le 24-12-2021 à 10:48:27    

J'ai pas tout bien compris le but du jeu mais ça ressemble un peut au jeu des allumettes. Du coup, je pense qu'n algo de résolution de ce jeu doit être applicable. Il faut faire un apprentissage par renforcement (calcul de récompense pour chaque coup joué). En simulant des milliers de parties, on devrait aboutir à la séquence de coups optimale.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 24-12-2021 à 11:05:41    

Justement on cherche un algo pour simuler lesparties.

Reply

Marsh Posté le 24-12-2021 à 12:11:14    

Ben tu fais des coups aléatoires. A chaque coup joué, tu calcules le score du coup avec une fonction d'évaluation qui va estimer dans quelle mesure ce coup à contribué à la victoire ou la défaite. Avec un grand nb de parties simulées va émerger le séquence de coups optimale.
Tout est expliqué ici : https://fr.wikipedia.org/wiki/Appre [...] nforcement
T'as même des algos en pseudo-code.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 24-12-2021 à 12:31:35    

J'ai déjà lu, merci.

Reply

Marsh Posté le 28-01-2023 à 13:43:08    

Hello !
 
J'ai examiné le déroulement d'une partie avec 2 et 2 pièce ; J'ai imaginé le dernier mouvement de pièce d'un tour avec un jeu matériel et j'ai constaté un problème.
 
Je n'ai en fait pas pu placé le pion car j'ai été sujet à l'impossibilité de distinguer lequel des joueur aurait gagné.
 

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed