Avis: Recherche forumeurs pour réaliser un jeu de Nim en VBA

Staple1600

XLDnaute Barbatruc
Bonsoir à tous

Je lance un appel à tous ceux qui aiment se creuser les méninges
qui raffolent des casse-têtes, des enigmes etcie.

J'essaye d'adapter en VBA le jeu de Nim

J'y suis arrivé pour deux joueurs humains.

Maintenant je me suis lancé vers une option [Jouer contre l'ordinateur]

et c'est ça là que j'ai besoin de vous, car je ne suis pas
assez doué en maths et (je suppose que c'est ce qu'il faut utiliser)
en modules de classes.

Alors avis aux amateurs.

Vous trouverez plus de détails dans le classeur joint
et ou j'en suis.

Merci de l'intérêt que vous porterez à ce projet.

Staple1600

PS: Je serai épaté si on pouvait faire un jeu de NIm
sans VBA (tout en formules)
donc bienvenue aux formulistes qui se piqueraient au jeu.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Avis: Recherche forumeurs pour réaliser un jeu de Nim en VBA

Bonjour à tous

Voici une version un peu plus améliorée.

(avec des modules de classes)
(Merci à John Walkenbach et son classeur de démonstration)
(Merci également aux messages et leurs intervenants des archives du forum concernant les modules de classes)

Il reste le plus compliqué (en tout cas pour moi)

Mettre en place l'algo du joueur Ordinateur.

J'espère que cela intéressera quelqu'un sur le forum.

Merci d'avance à ceux qui sauront m'aider.


Staple1600



PS: :( Je suis désolé de n'avoir pas su percevoir lors de ma scolarité
l'importance des mathématiques)
 
Dernière édition:

Gruick

XLDnaute Accro
Re : Avis: Recherche forumeurs pour réaliser un jeu de Nim en VBA

Salut Staple,
Un humain contre un ordinateur, l'ordinateur gagnera toujours s'il commence.
L'algo est simple, si celui qui prend la dernière est le gagnant, et qu'on peut prendre de 1 à 3 alumettes, il faut que le reste modulo 4 soit différent de zéro. L'ordinateur jouera ce modulo, sinon il a perdu, sauf si l'humain fait une erreur
voir petite macro jointe
Code:
Sub nim()
' nim Macro
' Macro enregistrée le 06/07/2007 par Gruick
Randomize
nbalumettes = InputBox("entrez le nombre d'alumettes")
prem = MsgBox("Moi, l'ordinateur, je joue en prem ?", vbYesNo)
1 If prem = vbNo Then
retrait = InputBox("t'en retires combien, simple humain ?")
If retrait > 3 Or retrait < 1 Then MsgBox "Pas plus de 3, pas moins de 1": GoTo 1
Else
retrait = nbalumettes Mod 4
If retrait = 0 Then retrait = Int(3 * Rnd) + 1
MsgBox "J'en retire " & retrait
End If
nbalumettes = nbalumettes - retrait
MsgBox "Il en reste " & nbalumettes
If nbalumettes = 0 Then GoTo 2
If prem = vbNo Then prem = vbYes: GoTo 1
If prem = vbYes Then prem = vbNo: GoTo 1
2 If prem = vbNo Then MsgBox "T'as gagné, mais c'est incohérent, t'as dû tricher !!!"
If prem = vbYes Then MsgBox "Face à l'intelligence artificielle, tu peux pas lutter !!!"
End Sub

C'est sans doûte le premier programme que j'ai fait sur ma HP41C il y a 30 ans.

Ca devrait être plus rigolo entre plusieurs joueurs contre l'ordinateur.

A plus,
Gruick
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Avis: Recherche forumeurs pour réaliser un jeu de Nim en VBA

Bonsoir Gruick


L'algo est simple

Oui pour ceux qui gazent ou gazèrent en maths

Déjà que j'ai échoué au Bac littéraire déjà (en 84 si je me souviens bien)

Alors faire tout seul un algo avec mes petits neurones..

Merci pour ta contribution en tout cas
 

Gruick

XLDnaute Accro
Re : Avis: Recherche forumeurs pour réaliser un jeu de Nim en VBA

Salut Staple,
On peut dire, vu tes délectables envois, que tu as rattrapé ton retard... pas besoin d'être bardé de diplômes, instruction ne veut pas dire intelligence.
Moi, avant la terminale, les math c'était la corvée, puis j'ai eu un prof qui nous en a donné le goût, et puis l'informatique aide à comprendre les maths.
Donc pour le nim, je pense que ma macro est facile à comprendre, mais pour l'adapter sur un USF, c'est une autre paire de manches. Pour moi, c'est là que ça coince.
Il faut compter les alumettes, et celles jouées, le faire disparaître, et ce à chaque coup, humain ou machine...
Donc, amis USFiens, à vos claviers...
Gruick
 

Staple1600

XLDnaute Barbatruc
Re : Avis: Recherche forumeurs pour réaliser un jeu de Nim en VBA

Bonjour Gruick le forum

Bien évidemment je me suis empressé d'essayer d'intégrer ton code
(enfin sa logique) dans l'userform

Dans un premier temps ImageGroup.Tag=1

puis nbalumettes =Image1.Tag+...+Image16.Tag

et la moi aussi je coince


J'ai compris ta macro

un peu moins le

retrait = nbalumettes Mod 4
If retrait = 0 Then retrait = Int(3 * Rnd) + 1

On divise le nombre d'alumettes/4 et on prend le reste

donc ex: MOD(13,4)=1
donc l'ordi prend un alumette eil en reste 12
J'en prends 3 il en reste 9
l'ordi en prend donc MOD(9;4)=1 il en reste 8

C'est bien ça?

Ce que je n'arrive pas à fiare c'est garder en mémoire
les changements de nbalumettes

Donc je me joins à toi pour en appeller (non pas à la tendresse) mais
aux XLDien(nes) et leur dextérité excellemment VBAiste. :)


Quand aux maths, j'aurai voulu les aimer

Alors pour me rattraper souvent je lie magazine Tangente
(bien que je ne capte qu'un 1/10 de ce que je lis)

Allez j'y retourne.


Bonn week à tous
 

Gruick

XLDnaute Accro
Re : Avis: Recherche forumeurs pour réaliser un jeu de Nim en VBA

re,
Voui m'sieu,
T'as bien compris le truc, la fonction modulo, c'est ma préférée depuis toujours. J'en mets partout en bon cochon...

C'est la variable nbalumettes qui contient le nombre initial, puis le nombre restant.

Quand l'ordinateur se sent perdu, il jouera aléatoirement de 1 à 3, d'où la fonction randomize et le int(3*rnd)+1, qui lui donnera un nombre stochastique de 1 à 3 (fallait pas me parler du bac littéraire) (bref, des chiffres et des lettres).

ImageGroup.Tag=1
nbalumettes =Image1.Tag+...+Image16.Tag
??? pour moi,

Tu devrais soumettre tout ça dans le forum général, il y a des costauds.

A plus,
Gruick
 

jeanpierre

Nous a quitté
Repose en paix
Re : Avis: Recherche forumeurs pour réaliser un jeu de Nim en VBA

Bonjour Staple, Gruick, le forum,

Staple, Ton histoire d'allumettes ne m'enflamme vraiment pas....

Maintenant, si elles sont là pour allumer les bougies, çà marche....

Alors un bon Anniversaire à toi.

Jean-Pierre
 

Gruick

XLDnaute Accro
Re : Avis: Recherche forumeurs pour réaliser un jeu de Nim en VBA

re,
Quelle andouille je fais, de toutes façons je finirai comme ça, à la charcuterie...
Où avais-je la tête ?

Bon anniversaire cher Staple, et en plus je te dois mon 500e post.
Sept un grand jour, ce sept sept sept, et je suis dans le sept sept.

Gruick
 

Staple1600

XLDnaute Barbatruc
Re : Avis: Recherche forumeurs pour réaliser un jeu de Nim en VBA

Re à tous

Et oui un an de plus... Merci à tous



Gruick
Tu devrais soumettre tout ça dans le forum général, il y a des costauds
.

ImageGroup.Tag=1
nbalumettes =Image1.Tag+...+Image16.Tag
??? pour moi,
Tu n'a pas regardé mon fichier joint?

C'est pas grave si cela fait un double-post?

Et je ne sais pas si cela intereressait plus de monde dans le forum
général

Jean-Pierre
Tu n'aimes pas tout ce qui jeux de réfexion, casse-tête enigme.
PS: je n'ai pas posté dans le forum général
car il s'agit d'un divertissement
pas d'un réel problème

(je veux jouer au nim j'ai une boite d'alumettes toujours prêtes
(surtout aujourd'hui :) )

Et je peux également jouer en ligne.

REPS: question subsidiaire:
Est-il facile de convertir
du, javascript en VBA

Personne ne s'est jamais attelè à la tâche

Dans le genre

On a déjà

XLS2HTM
XLS2TXT

On pourrait avoir
JS2XLS
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Avis: Recherche forumeurs pour réaliser un jeu de Nim en VBA

Bonjour


Ci joint la version avec quelques ajouts

INCLUE la version de Gruick :)

Tester la et jouer contre l'ordinateur


---> Gruick je me suis permis quelques modifs sur ton code
et je t'ai emprunté quelquechose de rose...


voir sur l'userform


PS : tu me l'autorises hein?
 
Dernière édition:

Gruick

XLDnaute Accro
Re : Avis: Recherche forumeurs pour réaliser un jeu de Nim en VBA

Salut Staple,
Merci pour tes hommages, j'en couine de joie
"We are the Champions, my friend..."
Qu'est-ce que je raconte, moi !!!!

Mon code n'était qu'une simple approche du problème pour mettre l'algo en valeur, mais pour l'appliquer aux dessins, ouille ouille ouille !
Les USF ont un language spécial que je ne maîtrise pas totalement (euh , fait misme). C'est un beau challenge.

Pour ma part, je me suis attaqué à un jeu de dominos, au 5 partout, avec un problème d'inputbox non résolu, mais contourné. Personne n'a pu me dire où était le blocage. On m'a conseillé l'USF, mais c'était trop compliqué. J'ai néanmoins réussi mon truc. Malheureusement trop gros pour être posté, et le modulo a encore servi.

On va y arriver, saperlipopette !!!!

A bientôt, j'espère

Gruick
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 370
Messages
2 087 693
Membres
103 641
dernier inscrit
anouarkecita2