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

Free Pascal Discussion :

Jeu en mode texte [Free Pascal]


Sujet :

Free Pascal

  1. #1
    Membre régulier
    Avatar de mohamedAziz
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2014
    Messages : 42
    Points : 84
    Points
    84
    Billets dans le blog
    2
    Par défaut Jeu en mode texte
    Bonjour à tous,

    J'essaie de faire un petit jeu en Free Pascal mais j'ai des problèmes.

    Voici mon code :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    program theGame;
     
    uses crt;
     
    const
      Vposition = 25;
     
    var 
      rk : char;
      Hposition : byte;
     
    procedure attack;
    var
      i : byte;
    begin
      for i:=Vposition-1 DownTo 1 do
        begin
          gotoxy(Hposition+1, i);
          write('|');
          Delay(80);
          gotoxy(Hposition+1, i);
          write(' ');
        end;
      gotoxy(1, 1);
    end;
     
    procedure move(direction : char);
    begin
      if direction = 'L' then
        begin
          gotoxy(Hposition+2, Vposition);
          write('    ');
          Hposition := Hposition - 1;
          gotoxy(Hposition, Vposition);
          write('-!-');
        end
      else 
        begin
          gotoxy(Hposition-3, Vposition);
          write('    ');
          Hposition := Hposition + 1;
          gotoxy(Hposition, Vposition);
          write('-!-');
        end;
      gotoxy(1, 1);
    end;
     
    procedure enemies;
    var
      EHposition, i : byte;
    begin
      Randomize;
      EHposition := Random(25)+1;
      for i:=1 to Vposition-1 do
        begin
          gotoxy(EHposition, i);
          write('O');
          Delay(60);
          gotoxy(EHposition, i);
          write(' ');
        end;
    end;
     
    BEGIN
      //cursoroff; {desactiver le cursor}
      Hposition := 39; {le milieu d'une fenere 80}
      gotoxy(Hposition, Vposition);
      write('-!-');
      enemies;
      while True do 
      begin
        rk := readkey;
        {writeln(rk);}
        case rk of
          'K' : move('L');
          'M' : move('R'); 
          ' ' : attack;
        end; 
      end;
    END.
    Mon problème est que je veux me déplacer et être capable de tirer des missiles et que les ennemis soient capables de tomber.
    Comment le faire sachant que le curseur est capable de faire une seule chose à la fois ?
    Ça serait gentil de m'aider.

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 086
    Points : 15 501
    Points
    15 501
    Billets dans le blog
    9
    Par défaut
    Bonjour !

    Un jeu de ce genre, en mode texte, c'est certainement faisable mais c'est du travail, pour un résultat qui sera peu attractif. Maintenant, si c'est vraiment ce que tu veux faire, pourquoi pas ? Ça pourrait être amusant.

    Autrement, je te conseillerais plutôt de te lancer dans un projet en mode graphique, soit avec la SDL, soit avec l'unité WinGraph...

  3. #3
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 43
    Points : 114
    Points
    114
    Par défaut
    Bonjour à tous,

    @Roland Chastain : Pour le côté attractif, oui évidemment, mais peut-être que MohamedAziz voit cela plus comme une expérience pour apprendre à essayer de bouger plusieurs objets et de se lancer dans l'interaction entre ces derniers? Au moins, en mode texte, ce sera 'plus' facile et ensuite il pourra faire, s'il le souhaite, des applications équivalentes en mode graphique. Je trouve que c'est un bon début (car on apprend beaucoup en essayant de réaliser ce type de programme).
    Oui, ce jeu aura un côté amusant.
    Pour la difficulté, du même avis, et j'aurais envie de dire que dans cet exemple que l'on s'aperçoit que les choses qui nous semblent les plus simples ne sont pas toujours évidentes à programmer.

    @MohamedAziz : Il n'y a pas qu'une façon pour faire ce programme, on peut élaborer diverses stratégies suivant son goût.
    Moi, j'aurais par exemple d'abord défini des variables pour les positions de chaque objet, et avec des noms le plus court possible. He et Ve pour celle de l'ennemi, Hj et Ve pour celui du joueur, Hm et Vm pour celui du missile, etc.

    Dans la procédure 'Enemies', je comprends qu'un caractère 'O' sera affiché puis effacé, 24 fois de suite. Je suppose que c'est pour une animation de la position d'un ennemi (et d'un seul contrairement au pluriel de 'enemies') ? Si c'est le cas, l'ordinateur sera bloqué pendant cette période et ne pourra pas faire autre chose. Peut-être faut-il éviter, pour le moment, les animations?
    Sinon, si tu souhaitais afficher 24 ennemies, il faudra créer et utiliser alors un tableau de 24 lignes contenant chacune deux variables (abscisse et ordonnée).

    Autre chose et pour info, tu peux utiliser au début l'instruction 'clrsrc' de l'unité crt, qui effacera tout l'écran.

    Il y aura encore diverses difficultés, mais je ne peux pas tout expliquer en un seul message.

    Bon courage à toi .

  4. #4
    Membre régulier
    Avatar de mohamedAziz
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2014
    Messages : 42
    Points : 84
    Points
    84
    Billets dans le blog
    2
    Par défaut
    merci pour vos réponses, c'est très gentil de votre part.
    j'ai abondonne ce petit projet car je croit que ce n'est possible de le faire en mode texte.
    maintenant je suis en train de faire un jeu de tictactoe mais comme toujours des problèmes ...

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

Discussions similaires

  1. [Virtual Pascal] JS-Echecs : Jeu d'échecs en mode texte
    Par forum dans le forum Codes sources à télécharger
    Réponses: 12
    Dernier message: 06/03/2019, 20h44
  2. Jeu de la vie - Affichage en mode texte.
    Par Endori dans le forum Débuter
    Réponses: 6
    Dernier message: 08/12/2010, 11h22
  3. Probleme d'ecriture dans un fichier en mode Text
    Par bbozet dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/01/2004, 13h46
  4. Retour au mode texte par défaut
    Par coca dans le forum x86 16-bits
    Réponses: 6
    Dernier message: 12/12/2002, 17h22
  5. Réponses: 5
    Dernier message: 11/12/2002, 12h31

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