CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[FreePascal] bouger char dans un array

[R]Viper
[R]Viper
Niveau 10
04 décembre 2006 à 03:14:03

Bonjour à tous, ca fait longtemps que je suis pas venue ici. J´ai arrêté la programmation de jeux pour ne pas apprendre plusieurs langages en même temps et me mélanger entre eux.

En cours, on apprend le Pascal, et j´aurais envie de créer un petit jeu en Pascal.

Pour l´instant, je cherche seulement à déplacer un vaisseau (caractère ´X´) dans une matrice vers la droite.

Voici mon code :
http://rviper.free.fr/include/index.php?title=D%C3%A9placement_d%27un_vaisseau

Pourtant, j´affiche la matrice (ainsi que le caractère dans la matrice), j´ajoute 1 à la valeur X et je réaffiche la matrice et le caractère, mais soit le caractère affiche pas, soit il affiche dans un coin sans raison.

J´essai depuis hier de réussir, mais je suis vraiment pas capable...

Merci d´avance.

godrik
godrik
Niveau 30
04 décembre 2006 à 14:20:55

lorsque tu fais:
Terrain[x,y] := Terrain [x+1,y];
x vaut 80 et y vaut 24

[R]Viper
[R]Viper
Niveau 10
04 décembre 2006 à 21:00:33

Comment ca? Pourtant j´ajoute 1 à x. Tu sais comment arranger le problème?

fracart
fracart
Niveau 5
05 décembre 2006 à 08:45:54

Tout d´abord tes erreurs par rapport à ce que tu veux faire :
Tu utilises les variables x et y pour parcourir ta matrice (for x := ...) ET pour désigner la position de ton vaisseau (Terrain[x,y] := ´X´;).
Ces variables sont constament modifiées et donc ne retiennent plus la position de ton vaisseau.
SOLUTION: tu devrais utiliser plus de variables : par exemple, x et y pour le parcours et x_pos, y_pos pour ton vaisseau.

Ensuite, il y a un gros problème dans la manière avec laquelle tu procèdes, à chaque affichage tu remplis toute la matrice alors qu´il n´y a que peu de cases à modifier. C´est une opération très conteuse et fastidieuse à faire pour l´ordinateur. En fait il faudrait juste enlever le vaisseau de son ancienne position et le placer à la nouvelle.
Ca devrait donner quelquechose comme :
Terrain[x_pos, y_pos] := ´ ´;
x_pos := x_pos + 1;
Terrain[x_pos, y_pos] := ´X´;

Bon courage, "on" a tous commencé par là.

fracart
fracart
Niveau 5
05 décembre 2006 à 08:47:55

euh je voulais dire "nous sommes tous PASSéS par là"

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment