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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Téléchargez Pascal Discussion :

Bandit manchot LAZvegas [Sources]


Sujet :

Téléchargez Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Chrispi
    Homme Profil pro
    Chargé de missions
    Inscrit en
    Juin 2020
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chargé de missions
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2020
    Messages : 212
    Points : 1 076
    Points
    1 076
    Par défaut Bandit manchot LAZvegas
    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 ?

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 085
    Points : 15 490
    Points
    15 490
    Billets dans le blog
    9
    Par défaut
    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 - Visualiser dans une fenêtre à part
      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 !

  3. #3
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 442
    Points : 5 862
    Points
    5 862
    Par défaut
    Salut

    Bon je viens de regarder ton code, il y a effectivement quelques améliorations à apporter à mon avis.

    Premièrement, le sender dans calcul et essai n'a aucune justification - déplace-les dans la partie private, c'est là qu'ils seront le mieux.

    Comme le dit Roland, ne prends que les noms de fichiers images, cela devrait suffire.

    J’avoue que j'aurais mis les noms dans un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Const
    TabImg = array[7] of String20 =('Img7.jpg','ImgBar.jpg','ImgCerises.jpg','ImgCitron.jpg','ImgCoeur.jpg','ImgEclair.jpg','ImgPrune.jpg','ImgStar.jpg')
    et par exemple dans tampo8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    procedure TFormAppli.Tempo8Timer(Sender: TObject); //Rotation 8 des images selon tempo et lancement tirage pseudo aléatoire des images
    begin
        randomize;
        a := Random(7);//Limiter de 0 à 8
      writeln(a);
      EdImg1.Text:= FloatToStr(a);
      Img1.Picture.LoadFromFile(TabImg[a]);
      //Tirer et afficher les images en fonction du score Random
      //Fonctionnement identique au précédent
      b := Random(7);
      writeln(b);
      EdImg2.Text:= FloatToStr(b);
      Img2.Picture.LoadFromFile(TabImg[b]);
     
      //Fonctionnement identique au précédent
      c := Random(7);
      writeln(c);
      EdImg3.Text:= FloatToStr(c);
      Img3.Picture.LoadFromFile(TabImg[c]));
     
      Tempo8.Enabled:= false;
      //Afficher le message quand c'est gagné et incrémenter le crédit
     
      if  (EdImg1.Text = EdImg2.Text) and (EdImg2.Text =EdImg3.Text)  then // les 3  zone de texte sont identique
      begin 
         EdGain.Text:= '0';
         Case StrtoInt(EdImg1.Text) do 
    	   0 : EdGain.Text:= '20';
    	   1 : EdGain.Text:= '15';
    	   4,5,7 : EdGain.Text:= '10';
    	   2,3,6 : EdGain.Text:= '5';
    	 end;
         if  EdGain.Text <> 'O' Then 
    	 begin 
           ShowMessage(Format('Vous avez gagné ! + %s à votre crédit.',[EdGain.Text]);
    	   Calcul(sender);
    	 end;
      end;	 
    end;
    Sachant que ce code est encore perfectible, mais ce n'est que pour te montrer quelques voies d’amélioration.

  4. #4
    Membre éprouvé
    Avatar de Chrispi
    Homme Profil pro
    Chargé de missions
    Inscrit en
    Juin 2020
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chargé de missions
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2020
    Messages : 212
    Points : 1 076
    Points
    1 076
    Par défaut Merci
    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...

  5. #5
    Membre éprouvé
    Avatar de Chrispi
    Homme Profil pro
    Chargé de missions
    Inscrit en
    Juin 2020
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chargé de missions
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2020
    Messages : 212
    Points : 1 076
    Points
    1 076
    Par défaut
    Quelques petites modifications...

  6. #6
    Membre averti
    Avatar de sematimo
    Profil pro
    Inscrit en
    Février 2009
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 310
    Points : 305
    Points
    305
    Par défaut
    Bonjour à tous
    je me suis amusé à relooker le jeu et j'ai ajouter un peu de son...
    LAZVegas - v2.zip

    Nom : Capture.PNG
Affichages : 802
Taille : 923,9 Ko
    Images attachées Images attachées  

  7. #7
    Membre éprouvé
    Avatar de Chrispi
    Homme Profil pro
    Chargé de missions
    Inscrit en
    Juin 2020
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chargé de missions
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2020
    Messages : 212
    Points : 1 076
    Points
    1 076
    Par défaut
    Sematimo, super !
    Au moins un qui a profité de l'idée et c'est fait pour ça.

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 175
    Points : 41 367
    Points
    41 367
    Billets dans le blog
    63
    Par défaut
    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 - Visualiser dans une fenêtre à part
    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.

  9. #9
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 442
    Points : 5 862
    Points
    5 862
    Par défaut
    Salut

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

Discussions similaires

  1. [Livre] Bandit Algorithms
    Par dourouc05 dans le forum Livres
    Réponses: 0
    Dernier message: 25/01/2021, 20h22
  2. jeu de bandit manchot
    Par yvanovitch dans le forum Contribuez
    Réponses: 0
    Dernier message: 09/01/2012, 10h39
  3. Bandit Manchot, direct3d
    Par yvanovitch dans le forum Vos contributions VB6
    Réponses: 1
    Dernier message: 09/11/2009, 14h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo