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

Lazarus Pascal Discussion :

Jeu de Uno


Sujet :

Lazarus Pascal

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    L2 MIASHS
    Inscrit en
    avril 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : L2 MIASHS

    Informations forums :
    Inscription : avril 2019
    Messages : 2
    Points : 0
    Points
    0
    Par défaut Jeu de Uno
    Bonjour tout le monde.

    Nous sommes étudiantes en deuxième année en MIASHS, nous devons rendre un programme de jeu (contre joueur artificiel) sur Lazarus.
    Nous avons choisis le UNO (simplifié), cependant nous sommes bloquées pour générer aléatoirement une carte de notre TImageList sur une position de TImage, nous avions pensé faire un tableau pour donner un nombre automatiquement à chaque carte (ne marche pas puisque l'on ne connaît pas le type exact d'une image, c'est-à-dire, integer, currency ou string).
    Par conséquent, à part en donnant un nombre manuellement à chaque carte on ne sait pas comment le faire en une seule manipulation.
    Nous avons également essayé en voulant utiliser TBitmap mais cela bloque.

    Merci pour votre aide et votre temps,
    cordialement.

  2. #2
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    septembre 2015
    Messages
    1 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : septembre 2015
    Messages : 1 763
    Points : 4 067
    Points
    4 067
    Billets dans le blog
    2
    Par défaut
    Bonjour

    Quelques explications s'imposent car je ne vous comprends pas. Pourriez-vous être plus précise ?

    Citation Envoyé par yusu69 Voir le message
    nous sommes bloquées pour générer aléatoirement une carte de notre Timagelist sur une position de Timage,
    Que voulez-vous dire ici ? Choisir un nombre entre 0 et X ? Placer cette image à une position aléatoire dans le TImage ?

    Citation Envoyé par yusu69 Voir le message
    nous avions pensé faire un tableau pour donner un nombre automatiquement à chaque carte(ne marche pas puisque l'on ne connait pas le type exact d'une image, c'est-à-dire, integer, currency ou string)
    Vous vous emmêlez les pinceaux, je pense, ici.

    Citation Envoyé par yusu69 Voir le message
    Par conséquent, à part un donnant un nombre manuellement à chaque carte on ne sait pas comment le faire en une seule manipulation.
    Nous avons également essayé en voulant utiliser Tbitmap mais cela bloque.
    Bizarre, rien compris ????

    Je ne connais pas le jeu du UNO en détail mais, à mon humble avis, vous devriez songer à étudier un peu le langage Pascal car vous êtes, il me semble, en train de tout mélanger.
    Pour plus de clarté au niveau des différents types (les types ordinaux), je vous conseille de lire ce tutoriel et celui-ci.

    Autre conseil, commencez déjà par établir un cahier des charges et réaliser des "pseudo-codes" pour vos algorithmes.
    Puis ensuite retranscrivez ces algorithmes sans tenir compte d'objets gérants les images de vos cartes (TImage / TBitmap) (en passant par TMemo par exemple) pour logger/afficher les différents coups (ou autres informations relatives à l'exécution et la compréhension de votre IA).
    Une fois votre IA et le moteur de votre jeu validés, vous pourrez passer facilement à l'affichage et à la gestion des cartes avec des images et l'UI en général.

    Pour pouvoir obtenir un nombre aléatoire, il vous suffit d'utiliser la fonction Random.

    Bonne soirée
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    L2 MIASHS
    Inscrit en
    avril 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : L2 MIASHS

    Informations forums :
    Inscription : avril 2019
    Messages : 2
    Points : 0
    Points
    0
    Par défaut suite jeu uno
    Bonjour, tout d'abord merci pour votre réponse. Oui ce n'était pas très claire car nous étions perdues nous mêmes, en fait ce que l'on arrive pas à coder c'est simplement donner une valeur à une image de notre Timagelist
    Nom : timagelist.png
Affichages : 441
Taille : 31,3 KoNom : timagelist.png
Affichages : 441
Taille : 31,3 Ko

    Par exemple l'image qui est numéro 0 dans le Timagelist nous voulons lui donner la valeur simplifié 0 car la carte montre un zéro
    La carte numéro 1 dans le Timagelist est également un 0 donc nous voulons lui donner la valeur 0 (pour pouvoir simplifier le codage du jeu => si un joueur à dans son jeu une carte qui à le même nombre que sur le tas il peut jouer)

    Merci pour votre attention et votre temps.

  4. #4
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    mars 2005
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : mars 2005
    Messages : 3 577
    Points : 10 567
    Points
    10 567
    Billets dans le blog
    6
    Par défaut
    Si je vois bien les cartes, elles ont une valeur et une couleur, soit 2 propriétés (champs) qu'on peut affecter à un enregistrement personnalisé (type personnel record à déclarer). Un tableau de ces enregistrements dans l'ordre des indices de la liste d'images fournirait le parallèle cherché.
    Delphi 5 Pro - Delphi 10.3.2 Rio Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  5. #5
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    septembre 2015
    Messages
    1 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : septembre 2015
    Messages : 1 763
    Points : 4 067
    Points
    4 067
    Billets dans le blog
    2
    Par défaut
    Bonsoir,

    Je rejoins "tourlourou", mais tout dépend de comment vous avez codé votre moteur de jeu. A votre place déja dans le timagelist je regrouperai les cartes par couleur plutôt que par "valeur". Mais tout dépend du moteur comme je l'ai dis précédemment.

    Sinon, j'ai lu les règles du UNO elles ne sont pas très compliquées.

    Comme ça de tête vite fait je commencerai par déclarer les différentes cartes et poserai les bases du jeu ; dans le genre :

    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
     
    Type
      TUNOCardType = (uctZero, uctOne, uctTwo, uctThree, uctFour, uctFive, uctSix, uctSeven, uctEight, uctNine,  uctTakeTwo, uctPass, uctReverse, uctJoker, uctSuperJoker);
      TUNOCardColor = (uccRed, uccBlue, uccGreen, uccYellow);
      TUNOCard = record
        CardType : TUNOCardType;
        CardColor : TUNOCardColor;
        CardImageIndex : Byte;
      end;
     
      TUnoDeck : Array[0..107] of TUNOCard;
     
      TPlayerDeck : 
        Deck : Array of TUNOCard;
        CardInHand : Byte;
        // LastPlayCard : TUNOCard; // Faculatatif a voir si utile, suivant le moteur de l'IA. Peut-être un Byte qui ferai référence à l'index dans TUNODeck
      end;
     
      TPlayerNum : 2..10;
      TGameDirection = (gdLeft, gdRight);
     
    Const
       cUNOCardsGame : TUNODeck =(
       ( CardType : uctZero ; CardColor : uccRed; CardImageIndex : 0),
       ( CardType : uctOne ;  CardColor : uccRed; CardImageIndex : 1), ect... );
     
    Var
      NbPlayers :=  TPlayerNum;
      Players : array[0..9] of TPlayerDeck;
     
      Talon : TUNOCard; // Carte en cours
      PickDeck : TPlayeDeck; // La pioche est similaire à un joueur
     
      GameDirection : TGameDirection;
    Voila en espérant que cela vous aide un peu

    Bonne fin de soirée

    A+
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    mars 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 19
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mars 2021
    Messages : 3
    Points : 4
    Points
    4
    Par défaut On a besoin d aide
    Salut salut on est en L2 MIASHS et on a le même projet à rendre on se demandaient si tu pouvais nous donner un coup de main ..
    On a un peu de mal à commencer
    Merci d avance @yusu69

  7. #7
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    septembre 2015
    Messages
    1 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : septembre 2015
    Messages : 1 763
    Points : 4 067
    Points
    4 067
    Billets dans le blog
    2
    Par défaut
    Bonjour oui je peux essayer ou est-ce que vous bloquez ?
    Vous avez déja un code à montrer ?

    A+
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  8. #8
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    mars 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 19
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mars 2021
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    enfaite toujours pas on sais pas vraiment par quoi commencer

  9. #9
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    septembre 2015
    Messages
    1 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : septembre 2015
    Messages : 1 763
    Points : 4 067
    Points
    4 067
    Billets dans le blog
    2
    Par défaut
    Ok, bon faut deja vous faire un petit cahier des charges, définir de quoi vous avez besoins comme les variables, les methodes, la progression dans le jeu : quelles sont les actions a effectuer.
    Pour vous aider dans votre gestion de projet je vous conseil https://tree.taiga.io avec un tableau KANBAN qui vous permettra de définir les actions/besoin de votre jeu.
    Vous pouvez déja vous inspirer du code que j'avais posté ci-dessus
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  10. #10
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    mars 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 19
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mars 2021
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Merci!

Discussions similaires

  1. Aide programmation jeu UNO
    Par Radianovic dans le forum C
    Réponses: 7
    Dernier message: 29/11/2014, 07h45
  2. realisation d'un jeu temps réel genre "Uno"
    Par freums dans le forum Flash
    Réponses: 0
    Dernier message: 23/02/2010, 15h44

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