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

  1. #1
    Membre éclairé
    Avatar de Chrispi
    Homme Profil pro
    Chargé de missions
    Inscrit en
    Juin 2020
    Messages
    204
    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 : 204
    Points : 885
    Points
    885
    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 070
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 070
    Points : 15 457
    Points
    15 457
    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 !
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  3. #3
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 418
    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 418
    Points : 5 816
    Points
    5 816
    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.
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  4. #4
    Membre éclairé
    Avatar de Chrispi
    Homme Profil pro
    Chargé de missions
    Inscrit en
    Juin 2020
    Messages
    204
    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 : 204
    Points : 885
    Points
    885
    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 éclairé
    Avatar de Chrispi
    Homme Profil pro
    Chargé de missions
    Inscrit en
    Juin 2020
    Messages
    204
    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 : 204
    Points : 885
    Points
    885
    Par défaut
    Quelques petites modifications...

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

    Informations forums :
    Inscription : Février 2009
    Messages : 287
    Points : 276
    Points
    276
    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 : 669
Taille : 923,9 Ko
    Images attachées Images attachées  

  7. #7
    Membre éclairé
    Avatar de Chrispi
    Homme Profil pro
    Chargé de missions
    Inscrit en
    Juin 2020
    Messages
    204
    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 : 204
    Points : 885
    Points
    885
    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 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 929
    Points
    40 929
    Billets dans le blog
    62
    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.
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  9. #9
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 418
    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 418
    Points : 5 816
    Points
    5 816
    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.
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  10. #10
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 929
    Points
    40 929
    Billets dans le blog
    62
    Par défaut
    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 - Visualiser dans une fenêtre à part
    case edimg1+edimg2+edimg3 of
    en fait peut-être faire une opération binaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     case edimg1 AND edimg2 AND edimg3 of
       0 : iGain:=15;   
       1 : if (edmg1 AND edimg2 AND edimg3)=edimg1 then  Gain:=5;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

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