IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Bandit manchot LAZvegas

Petite application de jeu de bandit manchot pour Windows développée avec Lazarus.

La rotation des figurines se fait en utilisant un système de temporisation et le tirage pseudo-aléatoire est basé sur la fonction Random.

Le jeu consiste à obtenir 3 figures identiques pour voir son crédit augmenter en fonction des figures car toutes n'ont pas la même valeur.

A l'ouverture de l'application, le joueur bénéficie d'un crédit de 10 essais pour obtenir 3 figures identiques et ainsi une augmentation de crédit qui permettra de poursuivre le jeu.

Pour jouer, le joueur doit cliquer sur le levier pour l'actionner et lancer la rotation des figures qui s'arrête d'elle-même après un petit temps.

Après épuisement du crédit, l'action sur le levier est neutre. Le joueur peut alors rejouer en cliquant sur le bouton "REJOUER" qui apparaît. Le crédit est remis à 10 pour commencer une nouvelle partie.

Avatar de SergioMaster
Rédacteur/Modérateur https://www.developpez.com
Le 12/04/2021 à 11:25
Bonjour,

tombé dessus par hasard, je suis assez surpris de tout ces LoadFromFile ou même d'un tableau de noms d'images.
Tout d'abord j'ai cru que Lazarus n'avait aucun TImageList puis après avoir découvert que si, douté qu'un jpg ne puisse y être mis. Mais non ! AMHA mettre toutes les images dans un TImageList adapté ferait gagné pas mal de choses en terme de vitesse et de déploiement.

Idem, je retrouve les travers de l'auteur avec ces EdImg1,EdImg2,EdImg3 et autres labels invisibles, là où des variables privées de type entier aurait largement suffit et permettant même de largement amélioré les tests pour les scores ! exemple

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
private 
  gain,edimg1, edimg2, edimg3 : word;

...

case edimg1+edimg2+edimg3 of
 3 : gain:=15; // 3*1
 6,9 : gain:=5;   // 3*2,3*3
 12 : gain:=10; // 3*4
..
 else gain:=0;
end;
d'autant plus que ces variables correspondrait au numéro d'image dans imagelist.

En bref beaucoup d'amélioration de code sont à apporter (je ne me suis pas penché sur la partie animation mais ces procedures TempoxTimer(Sender: TObject) sont largement optimisables).

Désolé, mais, je salue l'idée mais pas trop la codification.
Avatar de Chrispi
Membre confirmé https://www.developpez.com
Le 01/03/2021 à 2:31
Bonjour,

Je vous propose un nouvel élément à utiliser : Bandit manchot LAZvegas.
Petite application de jeu de bandit manchot pour Windows développée avec Lazarus.



La rotation des figurines se fait en utilisant un système de temporisation et le tirage pseudo-aléatoire est basé sur la fonction Random.

Le jeu consiste à obtenir 3 figures identiques pour voir son crédit augmenter en fonction des figures car toutes n'ont pas la même valeur.
À l'ouverture de l'application, le joueur bénéficie d'un crédit de 10 essais pour obtenir 3 figures identiques et ainsi une augmentation de crédit qui permettra de poursuivre le jeu.
Pour jouer, le joueur doit cliquer sur le levier pour l'actionner et lancer la rotation des figures qui s'arrête d'elle-même après un petit temps.
Après épuisement du crédit, l'action sur le levier est neutre. Le joueur peut alors rejouer en cliquant sur le bouton "REJOUER" qui apparaît. Le crédit est remis à 10 pour commencer une nouvelle partie.

Pour utiliser en l'état le jeu, déposer le dossier de l'application sous C:

Qu'en pensez-vous ?
Avatar de Roland Chastain
Rédacteur/Modérateur https://www.developpez.com
Le 02/03/2021 à 7:05
Bonjour !

Amusante petite application. Merci pour le partage.

Une ou deux observations (si je puis me permettre). Pourquoi mettre le chemin complet des images dans le code ? Cela n'est pas utile (me semble-t-il), et n'a que des inconvénients. Personnellement je mettrais simplement le nom du fichier, comme ceci :

Code : Sélectionner tout
  Img1.Picture.LoadFromFile('Img7.jpg'); //Image de départ
Avec cette modification, plus besoin d'imposer à l'utilisateur tel répertoire d'installation ; et en plus le programme fonctionne sous Linux !

Deuxième petite remarque. Random(7) renvoie un nombre de 0 à 6 (sept possibilités). Il ne renverra jamais 7.

Bonne continuation !
Avatar de sematimo
Membre habitué https://www.developpez.com
Le 11/04/2021 à 18:59
Bonjour à tous
je me suis amusé à relooker le jeu et j'ai ajouter un peu de son...
LAZVegas - v2.zip

Avatar de anapurna
Expert confirmé https://www.developpez.com
Le 20/04/2021 à 17:26
Salut

Arf Sergio ton calcul de score n'est pas correct.
Tu écris
Code : Sélectionner tout
case edimg1+edimg2+edimg3 of
Cela ne nous indique nullement que les trois éléments sont identiques.

Code : Sélectionner tout
1
2
  IF (edimg1=edimg2) and (edimg1=edimg3) Then   // cela sous entend que edimg2 = edimg3 => donc 3 valeur identique
     Case  edimg1 of
Avec ton code un exemple du défaut engendré : le 12 peut être obtenu
4+3+5 ou 4+2+6 ...

Il est donc plus simple de prendre la valeur unitaire 3 fois identiques mais comme tu l'as très bien souligné il y a beaucoup d'autres améliorations à faire.
Avatar de Chrispi
Membre confirmé https://www.developpez.com
Le 03/03/2021 à 21:51
Merci Roland et Anapurna pour vos remarques constructives qui vont contribuer à mon progrès en matière de développement avec Lazarus.
Oui, Roland j'avais remarqué mon erreur sur Random, mais trop tard j'avais publié.
Les petites applications ludiques que j'ai pu développer n'ont pas une grande valeur en matière de jeu mais visent plutôt à donner notamment à des débutants comme moi des idées d'utilisation de certaines fonctions...
Avatar de Chrispi
Membre confirmé https://www.developpez.com
Le 09/04/2021 à 22:27
Quelques petites modifications...
Avatar de Chrispi
Membre confirmé https://www.developpez.com
Le 11/04/2021 à 20:58
Sematimo, super !
Au moins un qui a profité de l'idée et c'est fait pour ça.
Avatar de SergioMaster
Rédacteur/Modérateur https://www.developpez.com
Le 20/04/2021 à 18:13
Citation Envoyé par anapurna Voir le message

arf sergio ton calcul de score n'est pas correct
Exact, je n'avais pas trop mis le nez dedans, de plus les valeurs sont de base 0 et non 1
tu ecris
Code : Sélectionner tout
case edimg1+edimg2+edimg3 of
en fait peut-être faire une opération binaire
Code : Sélectionner tout
1
2
3
 case edimg1 AND edimg2 AND edimg3 of
   0 : iGain:=15;   
   1 : if (edmg1 AND edimg2 AND edimg3)=edimg1 then  Gain:=5;
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.