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

Jeu de dés 421

Petite application de jeu de 421 pour Windows développée avec Lazarus.
Le tirage des dés se fait de façon pseudo-aléatoire en utilisant la fonction Random.
L'image de la face des dés est montrée selon le tirage.
Le joueur bénéficie de 3 lancers maximum pour réaliser 421. Après chaque lancer, il peut sélectionner les dés qu'il désire conserver avant le prochain lancer.
Après les 3 lancers, le joueur peut rejouer en cliquant sur le bouton "Rejouer" qui apparaît à ce moment là alors que le bouton "Lancer" disparait.
Pensez à mettre le son.
Avatar de SergioMaster
Rédacteur/Modérateur https://www.developpez.com
Le 20/04/2021 à 16:28
Bonjour,

Que de code à nettoyer !

mais il reste l'énumération fastidieuse des différentes combinaisons.
il y a plus facile à moins que je ne me trompe. Je voulais faire une TList<integer> triée mais avec Lazarus je seche
Code : Sélectionner tout
1
2
3
4
5
6
// au revoir les xyz et concaténations de chaines vraiment moches
function TFormAppli.Combitest: boolean;
begin
  result:=(a+b+c+3=7) AND (a<>b) AND (a<>c) AND (b<>c);
end;

mais bon je préfère vous mettre le programme élagué quoique pas encore totalement
Avatar de Chrispi
Membre éprouvé https://www.developpez.com
Le 23/11/2020 à 2:03
Bonjour,

Je vous propose un nouvel élément à utiliser : Jeu de dés 421

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



Le tirage des dés se fait de façon pseudo-aléatoire en utilisant la fonction Random.
L'image de la face des dés est montrée selon le tirage.
Le joueur bénéficie de 3 lancers maximum pour réaliser 421. Après chaque lancer, il peut sélectionner les dés qu'il désire conserver avant le prochain lancer.
Après les 3 lancers, le joueur peut rejouer en cliquant sur le bouton "Rejouer" qui apparaît à ce moment là alors que le bouton "Lancer" disparait.

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

Qu'en pensez-vous ?
Avatar de SergioMaster
Rédacteur/Modérateur https://www.developpez.com
Le 02/12/2020 à 17:46
Bonjour,

Impossible à télécharger, dommage cela m'aurait rappelé mes jeunes années "bar"
Avatar de Chrispi
Membre éprouvé https://www.developpez.com
Le 09/04/2021 à 21:54
C'est OK, c'est téléchargeable.
Avatar de Roland Chastain
Rédacteur/Modérateur https://www.developpez.com
Le 19/04/2021 à 6:15
Il doit y avoir une erreur quelque part parce que je gagne à chaque lancer, ce qui est suspect.

D'autant que les dés que je vois sur l'écran ne sont pas gagnants.

Autre remarque. Le code suivant peut certes fonctionner mais n'est pas optimal.
Code : Sélectionner tout
1
2
3
4
5
6
7
8
  case r of
    '013': Result := True;
    '031': Result := True;
    '103': Result := True;
    '130': Result := True;
    '301': Result := True;
    '310': Result := True;
  end;
Heureusement qu'il n'y a pas cinq ou six dés !

Pourquoi ne pas utiliser plutôt un ensemble ? Le test tiendrait en une seule ligne.
Avatar de Roland Chastain
Rédacteur/Modérateur https://www.developpez.com
Le 20/04/2021 à 11:31
Citation Envoyé par Chrispi Voir le message
Je suis étonné. Je suis sous Windows 10 et l'application fonctionne normalement sans aucun souci. Même si parfois je gagne deux fois à la suite. Je pense que l'erreur que tu rencontres est liée au fait que la variable "gagne" reste peut-être inscrite une fois que tu as gagné, et provoque ainsi l'erreur quand tu veux rejouer.
Non, ce n'est pas corrigé. Je gagne toujours à tous les coups...

Le problème est qu'aucune valeur n'est assignée au résultat de la fonction quand la combinaison n'est pas gagnante :

Code : Sélectionner tout
1
2
3
4
5
6
7
function Tformappli.Combitest(r: string): boolean;
begin
  r := x + y + z;
  case r of
    '013', '031', '103', '130', '301', '310': result := True;
  end;
end;
Avatar de Roland Chastain
Rédacteur/Modérateur https://www.developpez.com
Le 20/04/2021 à 12:29
Citation Envoyé par Chrispi Voir le message
Tu as raison. C'est fait.
Oui, c'est déjà mieux comme présentation, mais il reste l'énumération fastidieuse des différentes combinaisons. Encore une fois, heureusement qu'il n'y a que trois dés !

En fait je pensais au type ensemble (set of), mais je me suis rendu compte que ça n'était pas possible.

Du coup j'aurais plutôt fait quelque chose comme ça :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
function Gagnant(const s: string): boolean;
begin
  result := (Length(s) = 3)
    and (Pos('0', s) > 0)
    and (Pos('1', s) > 0)
    and (Pos('3', s) > 0);
end;

begin
  WriteLn(Gagnant('013'));
  WriteLn(Gagnant('310'));
end.
Avatar de Chrispi
Membre éprouvé https://www.developpez.com
Le 01/03/2021 à 1:40
J'ai apporté quelques modifications...
Avatar de Roland Chastain
Rédacteur/Modérateur https://www.developpez.com
Le 01/03/2021 à 7:02
Le téléchargement ne fonctionne pas chez moi.

J'ai l'impression, en lisant la description du téléchargement, qu'il s'agit d'un exécutable Windows, sans le code source. Est-ce bien le cas ?
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.