Afficher un message
Vieux 06/07/2007, 23h16   #3 (permalink)
Gruick
XLDnaute Impliqué
 
Avatar de Gruick
 
Date d'inscription: décembre 2005
Localisation: Chelles 77500
Version Excel : Excel 2004 (MAC)
Messages: 852
Par défaut 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
__________________
MOI, J'AIME ...IER !!

Dernière modification par Gruick ; 06/07/2007 à 23h19.
Gruick est déconnecté   Réponse avec citation