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

Pascal Discussion :

Défi Tetris : empêcher une pièce de pivoter hors des limites


Sujet :

Pascal

  1. #1
    Membre éprouvé
    Avatar de EpiTouille
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 372
    Points : 917
    Points
    917
    Par défaut Défi Tetris : empêcher une pièce de pivoter hors des limites
    Voilà j'ai un bug avec tetris que je n'arrive pas a résoudre. Je vais essayer d'expliquer sans en donner trop :=)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    |        |
    |     .  |
    |     .  | 
    |     .  |
    |     .  |
    |        |
    +--------+
    En gros ça represente le terrain de jeux et les points une barre vertical.
    Quand j'appuie sur la touche du haut elle pivote et sort de l'écran et fais tout planter.
    J'empeche les formes de bouger quand elles sont collées au bord, ce qui marche avec tout sauf la barre (trop grande ) . Donc si vous avez une solution merci

  2. #2
    Membre averti
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Points : 365
    Points
    365
    Par défaut
    Bonjour,


    ah le tétris... tu en es deja là... moi je n'ai pas encore écris une seule ligne...

    et si tu rajoutais un test quand c'est la grande barre ? si collée ou presque collée, tu empêches le déplacement...

    à bientôt peut-être

  3. #3
    Membre éprouvé
    Avatar de EpiTouille
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 372
    Points : 917
    Points
    917
    Par défaut
    Oui j'y ai pensé mais le probleme, c'est que je vais rajouter au moins 10 lignes et que ça va faire un code sale. J'aurais préféré une méthode qui marche pour toute les formes. Mais si je trouve pas je vais faire comme ça...

    merci

  4. #4
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Salut

    Le plus simple, tu tourne ta barre, et tu regarde si il y a chevauchement/dépassement. Si c'est le cas, tu annules le mouvement.
    C'est valable pour n'importe quelle pièce.

    Bonne chance

  5. #5
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    alors le plus simple pour éviter de "sortir" de l'écran dans ce genre de situation est d'ajouter une zone vide suffisamment grande autour de celui-ci.

    exemple, je déplace un pion sur un damier de 9x9

    type Damier=array[1..9,1..9] of Byte;.

    si je veux tester que le point peut aller de (x, y) à (x + 1, y) il faut tester if (x + 1 < 9) and Damier[x + 1, y] = 0 then....

    Pour éviter le teste sur la valeur de x, il suffit d'agrandir le damier

    type Damier=array[0..10,0..10] of Byte; et de remplir les cases du bord par une valeur bloquante.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      for i := 0 to 10 do
      begin
        Damier[i, 0] := 255;
        Damier[i,10] := 255;
        Damier[0, i] := 255;
        Damier[10, i] := 255;
      end;
    tu peux peut-être appliquer se principe sur ton Tetris en élargissant la grille de 4 cases qui sont toujours occupées.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Membre éprouvé
    Avatar de EpiTouille
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 372
    Points : 917
    Points
    917
    Par défaut
    J'ai utilisé ça pour le bas du tableau, mais je vais aussi utilisé ça sur les bords. Merci !

Discussions similaires

  1. [AC-2003] empêcher une requête ajout d'afficher des doublons dans une table
    Par facteur dans le forum VBA Access
    Réponses: 19
    Dernier message: 31/10/2012, 15h35
  2. Réponses: 3
    Dernier message: 17/10/2008, 16h03
  3. AdvOfficePager (TMS) index hors des limite?
    Par kheldoun ahmed dans le forum Delphi
    Réponses: 1
    Dernier message: 03/07/2007, 14h03
  4. Msg d'erreur: Erreur de traduction. Valeur hors des limites
    Par Zoilus dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/12/2005, 16h15
  5. empêcher une fenêtre de perdre le focus (MDI)
    Par eponette dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/08/2005, 16h17

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