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

 C Discussion :

Matrice de jeu + shift conditionel


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Par défaut Matrice de jeu + shift conditionel
    Bonjour,

    j'essaye dans le cadre de la programmation d'un jeu ceci:

    Dans un tableau (une matrice), un pion/une forme qui occupe plusieurs cases se déplace de "haut" en "bas". D'une manière asynchrone (signal unix) je dois roller (cf. rol en asm) le tableau sur les lignes pour autant que la pièce ne "cogne" pas d'autres éléments déjà présents dans le tableau.

    J'ai essayé de:
    -dupliquer le tableau & y retirer ma forme en cours pour la remplacer par du "vide"
    -rol sur mon tableau copié.
    -Essayer de reparcourir le tableau de base pour recopier la forme dans l'autre tabeau pour autant que ses coordonées n'ayent pas été prises par un autre éléments (mur, ou autre forme).

    J'aimerais bien savoir si il y a plus éfficace.

    J'espère que j'ai été assez clair. Modérateurs, n'hésitez pas à changer ce post de forum si besoin.

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    Par défaut
    J'ai envie de dire que si tu ajoutes la rotation de ta pièce, tu auras réinventé le Tétris ! :-)

    Qu'est-ce qui te pose problème, exactement ?

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Par défaut
    OUI! tu as bien dit le mot ! c'est un tétris.... mais avec un rol aléatoire des colonnes !

    Je dois donc sur ordre d'un signal roller mon tableau sans bouger la forme en cours et abandonner si le fait de bouger fait entrer en collision une forme "morte" et la forme en cours. Le problème est que surveiller l'espace libre autour de la forme avant le rol est prise de tête si elle est contre les bord du tableau.
    Et sortir la forme du tableau, rol, + repositionner la forme avec un tableau de bakcup au cas ou .. ça fait bcp de boucles ...

    Alors j'hésite .... et jviens ennuyer tout le monde sur dvp pour une histoire de boucle ou pas ..

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    Par défaut
    Citation Envoyé par Haknaton Voir le message
    Le problème est que surveiller l'espace libre autour de la forme avant le rol est prise de tête si elle est contre les bord du tableau.
    Et sortir la forme du tableau, rol, + repositionner la forme avec un tableau de bakcup au cas ou .. ça fait bcp de boucles ...
    Ça, par contre, c'est principalement algorithmique. Il y a plusieurs façons de se sortir de là.

    L'une des manières consiste à ajouter des « marges » à ton tableau. Autrement dit, tu ajoutes deux colonnes de plus qui sont toujours pleines et tu ne travailles (et n'affiches) que les colonnes 1 à n-2. De cette manière, tu n'as jamais besoin de vérifier si tu touches les bords ou pas.

    Si tu peux bouger ta pièce, en plus de décaler la scène du jeu, tu peux simuler un décalage de ton tableau par un mouvement de ta pièce dans la direction inverse. Tu utilises alors la même routine pour contrôler la légalité du déplacement de ta pièce et de celui de ton tableau.

    Tu peux également utiliser deux tableaux et les « superposer » : si deux cases homologues (de mêmes coordonnées) dans tes tableaux sont non-vides à la fois, alors il y a collision.

    Tu peux aussi (à mon avis, c'est le plus efficace), simuler un tableau décalé en biaisant les coordonnées : à chaque fois que tu veux lire une case, tu lis en fait celle d'à côté. Le résultat est le même et tu n'as aucun mouvement préalable à effectuer en mémoire.

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Par défaut
    Merci beaucoup pour toutes ces réponses Obsidian.

    Je crois que j'ai trouvé mon bonheur parmis toutes les réponses que j'ai eu ce soir.

    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/02/2015, 19h36
  2. Jeu paintPlash version Matrice
    Par f14speedking dans le forum C
    Réponses: 3
    Dernier message: 18/02/2014, 21h10
  3. [Jeu 2D]Labyrinthe et matrice
    Par Invité dans le forum Développement 2D, 3D et Jeux
    Réponses: 5
    Dernier message: 05/09/2006, 14h27
  4. Gestion de matrice
    Par bzd dans le forum C
    Réponses: 4
    Dernier message: 12/08/2002, 18h19
  5. Comment définir le type matrice ?
    Par charly dans le forum Langage
    Réponses: 7
    Dernier message: 15/06/2002, 21h01

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