IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[VB.NET] Quel Algorithme pour le Jeu des 20 batons ?


Sujet :

VB.NET

  1. #1
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut [VB.NET] Quel Algorithme pour le Jeu des 20 batons ?
    Bonjour,

    Le jeu des 20 batons ( un des jeux de Fort Boyard ) consiste à prendre chacun son tour un, deux ou trois batons sur les 20 proposés. Le but est DE NE PAS prendre le dernier baton.

    Je souhaiterais faire un algorithme qui permet de calculer toutes les possibilités possibles et celles qui sont les bonnes.

    Mais je n'est aucune idée de comment m'y prendre.

    Si vous avez un tuyau merci.

    PS: Dsl pour le titre et l'emplacement du topic je sais pas ou le mettre

    ASPIC
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  2. #2
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Arf et dire que je connaissais l'astuce mais ya plus de 30 ans et saurais plus le formuler, il me semble que cela avait à voir avec la parité ou pas des rangées mais je sais plus trop.
    Bon c'est vrai que sans tenir compte du langage et du framework, tu pourrais tout aussi bien poster sur le forum dédié à l'algorithmie. J'attend un peu si demain tu n'as pas de réponse, je déplacerai vers le bon forum (laisse faire )
    Losque cela arrivera n'oublie pas de prendre le temps de présenter la shématisation du jeu, car personne n'est obligé de regarder Fort Boyard pour pouvoir de répondre

  3. #3
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Par défaut
    pas tout a fait Neguib.... pour generaliser le probleme (ne pas se limiter a fort boyard) ,la solution se presente comme telle (ATTENTION: il y a quand meme des cas dependant du nombre de batons au depart ou ce n'est pas gagné a coup sur):
    soit 2 joueurs
    soient N batons identiques disposés parall. les uns a cotés des autres
    soit k le nombre de batons que peut choisir un joueurs en un coup (k<N fixé en debut de partie).
    Le perdant est celui qui prend le dernier baton.


    Le candidat doit calculer le reste de la division euclidienne de N par (k+1), qu'on appelle r, puis retirer (r-1) batons pour obtenir un nombre de batons congru a 1 modulo (k+1).
    SI le nombre de batons au depart est congru a 1 modulo (k+1), soit tu passes ton tour (tricheur!!!) soit il te reste a esperer que ton adversaire ne connaissae pas la regle et attendre d'avoir un nombre de batons non congru a 1 modulo (k+1).

    Pour en revenir a Fort Boyard, quand tu commences , tu prends 3 batons pour lui en laisser 17 et ensuite tu prends systematiquement le complement a 4 du nombre de batons qu'il a pris....

    a toi les boyards !!!

  4. #4
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    merci bcp pour vos 2 reponses :

    Effectivement tophoune tu as raison mais j'ai une erreur : y'a 21 batons je crois dans le jeu ( d'apres les topic sur internet ) dc effectvement si j'en crois la regle : le candidat dans Fort Boyard est sur de perdre !!

    De plus, le congru modulo je connais pas ^^ loool je suis en 1erS masi j'ai retaper sinon j'aurais eu mon BAC cette année !!!! donc je vais attendre de voir mon année de terminal pour voir cet algorithme ^^

    Sinon ce ue je voulais faire c'est pas créer un IA qui gagne toujours ^^ mais plutot envisager toutes les solutions possibles et trouver les bonnes. ( j'ai essayer un arbre mais ca marche pas... )

    Merci
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    Citation Envoyé par Aspic
    j'ai essayer un arbre mais ca marche pas...
    Salut, tout dépend de ton algorithme et du type d'arbre, de la facon dont il est concut et élagué à la construction Générallement les algorithmes par construction d'arbres sont trop long, mais très efficaces.
    mais comme préciser, à chaque tour il faut recréer l'arbre à moins que le cas n'est déja été pris en compte. D'un autre coté, pour que ton algorithme soit viable, tu ne peux pas construire un arbre ENTIER, il faut déterminer des conditions pour l'élaguer et ainsi éviter un algo trop long à l'exécution et surtout une consommation mémoire trop grande.
    Essaie l'algorithme Minimax, meme si je suis pas convaincue lol

  6. #6
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Qu'est ce que c'est l'algorithme Minimax ?

    Je pense que c'est trop dur pour moi à faire mais bon merci comme meme
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  7. #7
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Comment traduire une congruence en language vb.net ?
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  8. #8
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    Bonjour

    Ton algorythme n'est pas du tout compliqué à faire !!
    Tout a été dit par tophoune

    En clair, ton algo c'est

    (Pour 21 batons à raison de 3 batons à enlever au max) :

    NombreDeBatonsAEnlever = 4 - NombresDeBatonsEnleverParAdversaire

Discussions similaires

  1. Quel algorithme pour classer des opérations par ordre de priorité
    Par verbose dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 16/06/2014, 11h11
  2. quel algorithme pour trouver le plus grand sous arbres commun à des arbres?
    Par iwky911 dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 20/05/2009, 21h08
  3. [Migration .NET] Quels arguments pour cela ?
    Par chris92 dans le forum Général Dotnet
    Réponses: 17
    Dernier message: 01/06/2007, 19h03
  4. Quel logiciel pour écrire sur des photos ?
    Par philippe du web dans le forum Imagerie
    Réponses: 26
    Dernier message: 29/12/2006, 15h25
  5. Quel algorithme pour insertion d'objets "triés" da
    Par phplive dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2005, 09h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo