Puzzle coulissant

GW-Basic, utilisé par PC-Basic

Programme avec Texte Seulement

PC-BASIC

Vous avez probablement joué avec un puzzle coulissant quand vous étiez enfant. Si c'est le cas, permettez-moi de vous rafraîchir la mémoire : vous êtes face à un grand récipient carré avec quinze petits carrés placés à l'intérieur.

Chacun de ces quinze petits carrés a sur sa face un numéro unique de 1 à 15 (chaque numéro étant représenté une fois, bien sûr).

Puisqu'il n'y a que quinze petits carrés de taille égale mais qu'il y a de la place pour seize petits carrés possibles à l'intérieur du grand conteneur carré (comme c'est la nature des carrés), vous pouvez glisser des petits carrés numérotés dans le petit espace carré vide - tant que les petits carrés numérotés sont adjacents au carré vide.

Lorsque vous commencez le puzzle coulissant, les carrés ne seront pas dans l'ordre croissant de gauche à droite, de haut en bas. Votre travail, à travers de nombreux glissements, consiste à mettre les petits carrés dans l'ordre numérique, de un à quinze.

Exécutez le programme SLIDER.BAS, et vous serez d'abord présenté avec une invite vous demandant :

Quel niveau de difficulté ?

Plus le nombre que vous entrez est élevé, plus il y aura de mélange hors écran des petits carrés du plateau de jeu.

Ensuite, c'est parti pour les courses : vous pouvez faire glisser n'importe quel nombre, tant qu'il est adjacent à une case vide, en tapant une entrée numérique.

Un tableau de seize éléments appelé ARRAY est déclaré et initialisé dès le début - contenant les nombres 1 à 15, ainsi que 0, représentant le carré vide (comme seizième élément).

Ensuite, un sous-programme est appelé pour randomiser le plateau de jeu. Déposer simplement des nombres aléatoires de 1 à 15 sur l'écran ne fonctionnera pas, car de nombreuses permutations de plateau de jeu seront impossibles à résoudre; au lieu de cela, le sous-programme (commençant à la ligne 520) doit mélanger le plateau en "déplaçant les cases" d'une manière physiquement possible.

Remarquez l'utilisation répétée de l'opérateur MOD (module), qui effectue une arithmétique modulaire pour trouver des restes, en tenant compte de certains emplacements des nombres.

L'opérateur MOD, en conjonction avec des opérations arithmétiques simples, est également utilisé pour vérifier si le mouvement demandé par un utilisateur est valide (voir lignes 210 à 330).

Enfin, pour savoir si l'utilisateur a résolu l'énigme, le programme teste les éléments de ARRAY (voir lignes 400 à 470).

Le puzzle coulissant peut être généralisé à n'importe quel taille de carré, ce qui signifie que le même jeu peut être joué avec des carrés 2X2, ou 3x3 ou 4X4, ou NxN - mais le code devrait être un peu modifié (par exemple, l'arithmétique modulaire changerait de trouver des restes de 4 à N).

Pendant que vous y êtes, vous voudrez peut-être nettoyer un peu le code en regroupant les commandes fréquemment utilisées, comme la commutation d'éléments dans des tableaux, dans une sous-routine.

Mais pour un défi plus important, envisagez de réécrire le programme pour permettre à l'utilisateur de choisir un plateau de jeu rectangulaire de n'importe quelle taille. Faire un puzzle rectangulaire MxN nécessite des modifications considérables de SLIDER.BAS.

Enfin, envisagez d'ajouter une composante graphique pour rendre le jeu plus attrayant visuellement.

SLIDER.BAS

 

 

 

 

 

 

 

Recherche personnalisée