LazLightsOut : une implémentation du jeu Lights Out avec Lazarus

Présentation
Bonjour

Je vous propose un petit casse-tête amusant datant des années 90, sous forme d'un jeu électronique et transcrit plusieurs fois sous forme d'un programme de jeu. Il s'agit d'éteindre des ampoules en respectant quelques règles.

Les sources sont complets, les dépendances se limitent aux composants standards de la LCL, l'exécutable inclus est un binaire pour Linux 64 bits (Debian). La migration vers une autre plate forme supportant Lazarus ne devrait pas poser de problème.

Je l'ai développé pour le loisir et aussi pour mettre à disposition un exemple d'implémentation d'un jeu simple.
Détails
Catégories : Programmes complets
Avatar de Eric BARBIER
Membre expert
Voir tous les téléchargements de l'auteur
Licence : Non renseignée
Date de mise en ligne : 1er juillet 2016




Avatar de gvasseur58 gvasseur58 - Responsable Delphi https://www.developpez.com
le 22/06/2016 à 21:11
Citation Envoyé par e-ric Voir le message

Qu'en pensez-vous ?
Que du bien .

Les sources, un mode d'emploi, une application qui fonctionne, un jeu amusant, c'est exactement ce qu'on souhaite en ce début d'été (et même le reste de l'année ). Dès que j'aurai un moment, je regarderai le code de plus près, promis.
Avatar de e-ric e-ric - Membre expert https://www.developpez.com
le 23/06/2016 à 7:46
Bonjour

Merci beaucoup Gilles, je suis content de faire un heureux

Cela faisait longtemps que je voulais publier quelque chose. Ce programme n'est pas encore complet à mon sens, il lui manque la parole (pour ainsi dire), en effet, je n'ai pas intégré de sons mais le choix des bibliothèques n'est pas simple sous Lazarus et il n'y a pas de composant standard pour cela. Quant à l'affichage, l'emploi d'un TDrawGrid n'est pas ce qu'il y a de mieux mais cela dépanne.

A terme, je pense mettre en oeuvre la SFML mais cela dépend du temps libre et du courage disponibles.

Cdlt
Avatar de Francois_C Francois_C - Membre averti https://www.developpez.com
le 29/06/2016 à 13:07
Citation Envoyé par e-ric Voir le message

Qu'en pensez-vous ?
Très bien réalisé. Présentation soignée. Merci.
Personnellement, je n'aime pas trop les applications qui font du bruit, mais si j'avais écrit celle-ci, je ne résisterais pas à la tentation d'essayer quand même

PS : J'ai peut-être fait des bêtises en compilant, mais chez moi les boutons "nouveau" et "refaire" n'ont pas d'effet. En revanche, le mode triche est bien utile
Avatar de e-ric e-ric - Membre expert https://www.developpez.com
le 29/06/2016 à 18:39
Salut,

Très bien réalisé. Présentation soignée. Merci.
Encore un heureux, tout le plaisir est pour moi. Merci pour le compliment.

J'ai peut-être fait des bêtises en compilant, mais chez moi les boutons "nouveau" et "refaire" n'ont pas d'effet. En revanche, le mode triche est bien utile
Je suis ravi que quelqu'un ait des petites choses à me soumettre. Cela est curieux, j'ai compilé le programme avec la dernière version de Lazarus sous Linux et vous ? J'ai vérifié vite fait dans les sources, les gestionnaires sont bien associés au code, les événements sont connectés aux TSpeedButton à travers des TAction.

Pour le son, ce sera pour beaucoup plus tard car j'ai des projets personnels dans un avenir très proche qui ne vont pas me laisser beaucoup de temps.

Cdlt
Avatar de gvasseur58 gvasseur58 - Responsable Delphi https://www.developpez.com
le 30/06/2016 à 13:51
Citation Envoyé par e-ric Voir le message
J'ai vérifié vite fait dans les sources, les gestionnaires sont bien associés au code, les événements sont connectés aux TSpeedButton à travers des TAction.
Bonjour,

J'ai le même problème qui ne vient pas des TAction puisque le problème persiste en les court-circuitant. J'ai survolé le code (où j'ai apprécié l'emploi d'un énumérateur et des génériques ), mais je n'ai pas identifié l'origine de l'erreur.
J'ai essayé une compilation avec Lazarus 1.6 sous Windows 10. La compilation a lieu, mais les deux boutons signalés restent sans effet.
Avatar de e-ric e-ric - Membre expert https://www.developpez.com
le 30/06/2016 à 14:07
Salut

Si c'est sous W10, c'est peut-être une évolution non encore prise en compte par La LCL.
Ne disposant pas de W10, je vous propose de remplacer les TSpeedButton par des TButton pour voir et de m'informer de l'issue du test, il faudra que je regarde à nouveau cela.

Est-ce que les autre boutons ( [Options] et [Quitter]) se comportent de même ?

Cdlt
Avatar de Jon Shannow Jon Shannow - Membre extrêmement actif https://www.developpez.com
le 30/06/2016 à 15:17
Bonjour,

Je n'arrive pas à compiler le programme !

Je suis sous Win 10 64bits, avec Lazarus 1.6 FPC 3.0 en 32 bits et à la compilation j'ai
Code : Sélectionner tout
1
2
Compiler le paquet FCL 1.0.1: Code de sortie 1 - Erreurs : 1
Fatal: Impossible de trouver system utilisé par fcllaz du paquet FCL.
Quelqu'un à une idée ?

JS
Avatar de gvasseur58 gvasseur58 - Responsable Delphi https://www.developpez.com
le 30/06/2016 à 15:58
Citation Envoyé par Jon Shannow Voir le message
Bonjour,

Je n'arrive pas à compiler le programme !

Je suis sous Win 10 64bits, avec Lazarus 1.6 FPC 3.0 en 32 bits et à la compilation j'ai
Code : Sélectionner tout
1
2
Compiler le paquet FCL 1.0.1: Code de sortie 1 - Erreurs : 1
Fatal: Impossible de trouver system utilisé par fcllaz du paquet FCL.
Quelqu'un à une idée ?

JS
Bonjour,

Ce n'est pas grave : le code source est livré avec des éléments qui faussent la compilation. Il suffit de supprimer les fichiers LazLightsOut.lps et LazLightsOut.res. Alors, tout rentre dans l'ordre.

Cordialement,

Gilles

PS : ces fichiers seront recréés automatiquement et... correctement .
Avatar de Jon Shannow Jon Shannow - Membre extrêmement actif https://www.developpez.com
le 30/06/2016 à 16:04
Citation Envoyé par gvasseur58 Voir le message
Bonjour,

Ce n'est pas grave : le code source est livré avec des éléments qui faussent la compilation. Il suffit de supprimer les fichiers LazLightsOut.lps et LazLightsOut.res. Alors, tout rentre dans l'ordre.

Cordialement,

Gilles

PS : ces fichiers seront recréés automatiquement et... correctement .
Ok,
Ça fonctionne !

J'ai pas bien compris le jeu, mais ça marche !
JS
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Responsables bénévoles de la rubrique Lazarus : Alcatîz - Gilles Vasseur -