Pour les joueurs d'échecs (et les matheux aussi) et pour tous en fait

Staple1600

XLDnaute Barbatruc
Bonjour

Un petit remue-méninges bien célèbre

(encore imparfait car il vous faudra...)


Toute aide vbaiste sera la bienvenue

(en formules ca doit etre possible aussi mais trés coton (enfin il me semble))

Merci

Edition
Dans la deuxième version il y 10 solutions aux problèmes
solutions.zip

EDITION
Dans la même veine (pour ceux qui aiment se casser la tête)

Il y aussi: Le Cavalier d'Euler (The Knight's Tour)
Des détails ici
Echecs : Problèmes, études et jeux sur les échecs
 
Dernière édition:

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Pour les joueurs d'échecs (et les matheux aussi) et pour tous en fait

Bonjour

très sympa en effet

j'ai trouvé la solution mais en effet cela doit être sympa à mettre en oeuvre en vba avec affichage en rouge aussitot qu'il y a une erreur

A plancher
 

Staple1600

XLDnaute Barbatruc
Re : Pour les joueurs d'échecs (et les matheux aussi) et pour tous en fait

Re

Voici un code QBasic copié tel quel
or la fonction SWAP n'existe pas en VBA
(ou je ne le sais pas )

Comment faire, svp pour rendre cet exemple fonctionnel?

Code:
DefInt A-Z
Sub huitreines()

Dim q(8)
For i& = 0 To 40319
   For j = 0 To 7: q(j) = j: Next: k& = i&
   For j = 8 To 1 Step -1
   SWAP q(j - 1), q(k& Mod j)
   k& = k& \ j
   Next
   A = 0
   b = 0
   For j = 7 To 0 Step -1
      v = 2 ^ (q(j) + j): If A And v Then Exit For
      A = A + v
      v = 2 ^ (q(j) - j + 7): If b And v Then Exit For
      b = b + v
   Next
   If j < 0 Then
      c = c + 1
      Print c; ":";
      For j = 0 To 7
      Print Str$(q(j));
      Next
      Print
   End If
Next
End Sub
 

Gruick

XLDnaute Accro
Re : Pour les joueurs d'échecs (et les matheux aussi) et pour tous en fait

Salut Staple,
Eh oui, swap c'est le troc, A prend la pace de B et inversement. Ca n'esiste pas en vba, faut un tiers C.
Ce qui est rigolo, c'est que cette fonction existe sur ma HP41C des années 70, une merveille de machine.
pas compris non plus les if a and v...
Bon, sinon v'la ma petite version, j'ai déplacé l'échiquier pour être plus à l'aise pour programmer.
Pas de problème pour les horizontaux et verticaux, mais les diagonales du fou c'est plus artisanal. Si un quidam a une solution plus mathématique, avec des modulos par exemple.....
mode d'emploi :
Tu places et tu appuies sur solution à chaque fois (ou doûte).
A plus,
Gruick
 

Pièces jointes

  • 8queens.xls
    33.5 KB · Affichages: 142
  • 8queens.xls
    33.5 KB · Affichages: 152
  • 8queens.xls
    33.5 KB · Affichages: 150

Staple1600

XLDnaute Barbatruc
Re : Pour les joueurs d'échecs (et les matheux aussi) et pour tous en fait

Merci de ta participation Gruick

Voici une version avec 10 solutions.

PS: il faut installer la police qui est dans le zip pour avoir les pièces d'échec dans les cellules.

(sinon c'est la lettre D qui apparaitra )

EDITION :
protection VBA supprimée
 
Dernière édition:

Tibo

XLDnaute Barbatruc
Re : Pour les joueurs d'échecs (et les matheux aussi) et pour tous en fait

Salut Gruick,

J'apprends que tu étais utilisateur d'une HP41 !!!

Pour info, ça a été ma calculatrice qui m'a accompagné pendant une bonne partie de mes études.

Etant nostalgique de cette machine, j'ai poussé le vice en en rachetant une sur E bay il y a 6 mois.

Merveilleuse machine à l'époque.

@+
 

Staple1600

XLDnaute Barbatruc
Re : Pour les joueurs d'échecs (et les matheux aussi) et pour tous en fait

Gruick

Si tu cliques sur SOLUTION alors qu'il y a aucune dame sur l'échiquier

tu obtiens une msgbox "Bien placé"

lol
 

Gruick

XLDnaute Accro
Re : Pour les joueurs d'échecs (et les matheux aussi) et pour tous en fait

Tu agrafes ton cas Staple...
je verrais bien un test du genre
if activecell = "" then exit sub, à placer quelque part....
mais ou ?
pas d'1,10
non mais.

Bon, c'est l'heure question pour un champion...

Gruick
 

Staple1600

XLDnaute Barbatruc
Re : Pour les joueurs d'échecs (et les matheux aussi) et pour tous en fait

Re

En m'inspirant de:
Solutions to the 8-Queens Problem

j'essaye de traduire cela en vba

For composite numbers n=pq, we can make a direct product of the p-queen and q-queen problems. That is, each queen position of the p-queen problem is regarded as a solution of the q-queen problem. We can change the roles of p and q. Thus for 35=5*7, we can generate 10*(40)^5 + 40*(10)^7 solutions.

To generate one solution for a general n, let the plane coordinated by i=0, ..., n-1 and j=0, ..., n-1.

Suppose n is even. For any k,

(2) If n is not 6k

j = (n/2 + 2i -1) mod n, for 0 <= i < n/2
j = (n/2 + 2i + 2) mod n, for n/2 <= i Example 3. n=8
Vu que j'ai pas trop carburé en maths jadis

qui ici pourrait m'aider?
 
Dernière édition:

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Pour les joueurs d'échecs (et les matheux aussi) et pour tous en fait

Re

Dis on va pas non plus faire 10 posts sur un pwd

je l'ai fait sauter sans souci ton pwd mais bon je vais créer un post uniquement pour cela

tiens ton code de ton module histoire de prouver mes dires
 

Gruick

XLDnaute Accro
Re : Pour les joueurs d'échecs (et les matheux aussi) et pour tous en fait

Bonjours à tous,
Si Maud passe, je lui demanderai.
Le but du jeu est-il de jouer, ou de faire découvrir une solution à l'ordinateur ?
Gruick
 

Staple1600

XLDnaute Barbatruc
Re : Pour les joueurs d'échecs (et les matheux aussi) et pour tous en fait

Le but de jeu est de trouver une solutin

Le but du code VBA serait de:

quand on pose une dame

les cases possibles se colorient d'une couleur
les cases impossibles d'une autre

Et qu'en cas de non résolution du problème

un bouton affiche aléatoirement une des 12 solutions possibles


(Il y a en 92 en tout, symetrie etc..)
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Pour les joueurs d'échecs (et les matheux aussi) et pour tous en fait

Staple1600 à dit:
Bonjour

Je vois que Pascal76 a joué le jeu


Je comprends pas trop de quels 10 posts tu parles.

Ecoute je en te connais pas trop mais regarde tous tes derniers posts ces derniers temps mais tu postes tu postes et par moment on se demande où tu vas. Sinon il y a un bouton "Editer" qui permet d'editer un post pour rajouter un petit truc san sposter à nouveau.

Staple1600 à dit:
Quel interet de livrer mon module aux autres forumeurs?


Merci pour le fair-play

Ok ok ne te fache pas j'ai editer mon post pour supprimer ton code
quel susceptibilité
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Pour les joueurs d'échecs (et les matheux aussi) et pour tous en fait

Re

Ok ne t'inquiètes pas j'éviterai à l'avenir de me trouver sur un même fil que toi, et je ne répondrais plus à tes demandes, tes idées, tes innovations sur le salon comme cela il n'y aura pas de problème du fait que "je ne joue pas le jeu"

Bonne journée malgré tout
 

Gruick

XLDnaute Accro
Re : Pour les joueurs d'échecs (et les matheux aussi) et pour tous en fait

Re,
Bon, c'est fini oui...
Je rappelle qu'aujourd'hui c'est la journée de la courtoisie au volant. Bon, je suis devant l'ordinateur, donc pas au volant ce qui me permettra d'emm... tous les co... qui me font ch...
je veux dire d'emmener tous les copains à Florence voir une statue de Michel Ange qui me font changer d'avis sur l'art. En effet, cette oeuvre a une jambe plus courte que l'autre, et elle louche....le saviez-vous.
Allez, calmez vous, Smile, cool.
Gruick
 

Statistiques des forums

Discussions
312 579
Messages
2 089 900
Membres
104 300
dernier inscrit
katlynefortin