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

Turbo Pascal Discussion :

[TP][Projet] Réaliser un Snake-Like


Sujet :

Turbo Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Par défaut
    Oui d'accord pour les petites indications et merci.

    Seulement, avant j'aimerai bien que quelqu'un veuille bien copier le code source que j'ai posté là, qu'il le compile et qu'il me donne son avis. Je me dis que ce n'est qu'avec des critiques qu'on peut évoluer...

    En attendant, j'ai terminé le "Snake" en mode texte, j'avais déjà utilisé le chr(219) pour les morceaux qui constituent serpent et actuellement j'ajoute juste quelques détails comme les points etc...
    Je ne compte pas poster le code source (sinon comme l'autre y'aura des grandes chances pour que personne ne le regarde!!!) mais terminer de faire un petit site où je pourrais héberger cà avec d'autres programmes que j'aurai écrit...

    Mais en attendant, j'attends toujours vos impressions sur le "Snake" en mode graphique. Et j'attends aussi que Sub0 me dises comment joindre des bgis à des éxécutables.

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 055
    Billets dans le blog
    2
    Par défaut
    Allez, quelques commentaires en vrac (dans un but constructif bien sûr) :

    Personnellement, dans l'intro, j'aurais préféré avoir le temps de lire les indications avant qu'elles s'effacent automatiquement. Ca va un peu vite !

    Sinon, ça tourne. J'ai constaté que le jeu ralentissait lorsque je pressais les touches frénétiquement. De plus, je préférerais nettement me servir des touches de direction plutôt que des touches du pavé numérique. Mais il faut tester 2 codes au lieu d'un seul.

    A plusieurs reprises, mon serpent a traversé la cible alors qu'il la recouvrait à 90 % : il faut vraiment être dans l'axe pour la toucher, ce qui rend le jeu plus difficile. Tu pourrais peut-être prévoir quelques pixels de tolérance autour de la cible ?

    Je regrette qu'il n'y ait pas moyen de faire faire demi tour au serpent : il faut lui faire faire 4 virages pour se diriger exactement dans la direction opposée.

    Enfin, lorsque le jeu se termine et lorsque tu demandes si l'on veut recommencer, tu devrais vider le buffer du clavier car il reste parfois des 1, 2 3 ou 5 qui viennent s'afficher. Et puis, il n'est pas nécessaire je pense de me redemander mon nom.

    Sinon, bravo à toi. Et puis ton petit jeu est sympa.
    J'espère que tu nous montreras le code final !
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2003
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 37
    Par défaut lol
    Ou Bien encore tu peuxProgrammer tes propore police de caracteres et l'accorder a une touche clavier je te donne un super liens Traitant le sujet :

    http://membres.lycos.fr/jmy51/

    Rub turbo pascal Programmer les polices de caracteres

    Bon courage

  4. #4
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Par défaut
    Citation Envoyé par Alcatîz
    De plus, je préférerais nettement me servir des touches de direction plutôt que des touches du pavé numérique. Mais il faut tester 2 codes au lieu d'un seul.
    En fait, c'est parce que je ne connaissais pas les codes Ascii des touches de direction (j'ai d'ailleurs crée un petit programme qui me renvoit le code Ascii de la touche tapée mais lorsque j'entre une touche de direction, il me renvoit 0 )

    Citation Envoyé par Alcatîz
    A plusieurs reprises, mon serpent a traversé la cible alors qu'il la recouvrait à 90 % : il faut vraiment être dans l'axe pour la toucher, ce qui rend le jeu plus difficile. Tu pourrais peut-être prévoir quelques pixels de tolérance autour de la cible ?
    En jouant moi même, j'ai eu à le remarquer, et donc dans la version finale, que je compte mettre très bientôt sur mon "nouveau" site, le niveau de tolérance est plus elevé.

    Citation Envoyé par Alcatîz
    Je regrette qu'il n'y ait pas moyen de faire faire demi tour au serpent : il faut lui faire faire 4 virages pour se diriger exactement dans la direction opposée.
    En fait lorsque tu parles de démi-tour, tu parles de marche-arrière? Si c'est le cas, le serpent n'a pas le droit de faire une marche arrière! S'il vas dans une direction et qu'on entre la direction opposée, il continue dans la première direction. Ce qui fait que pour tourner, si on vas par exemple de gauche vers droite, il faut monter/descendre et aller dans la nouvelle direction...

    Citation Envoyé par Alcatîz
    Enfin, lorsque le jeu se termine et lorsque tu demandes si l'on veut recommencer, tu devrais vider le buffer du clavier car il reste parfois des 1, 2 3 ou 5 qui viennent s'afficher. Et puis, il n'est pas nécessaire je pense de me redemander mon nom.
    Oui tu as raison. Et merci beaucoup d'avoir pris la peine de tester le jeu et de donner tes impressions.

    Citation Envoyé par Sub0
    De toute façon, le plus difficile est de faire un programme qui marche sur toutes les configs!
    S'il te plaît si tu sais comment le faire, dis le moi...(comment joindre le BGIs sur l'éxécutable...)

    Citation Envoyé par macluvitch
    Ou Bien encore tu peuxProgrammer tes propore police de caracteres et l'accorder a une touche clavier je te donne un super liens Traitant le sujet :
    http://membres.lycos.fr/jmy51/
    C'est vraiment un super lien. Merci beaucoup à tous!

  5. #5
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    mais lorsque j'entre une touche de direction, il me renvoit 0 )
    Je t'ai pourtant bien expliqué comment récupérer le code des touches!
    Va donc relire mon post plus attentivement! :-(

    il faut lui faire faire 4 virages pour se diriger exactement dans la direction opposée.
    Le jeu n'est pas encore terminé, qu'il yen a déjà qui veulent tricher!

    S'il te plaît si tu sais comment le faire, dis le moi...(comment joindre le BGIs sur l'éxécutable...)
    Primo, il faut convertir le fichier BGI en fichier INC. Pour cela, j'ai crée un petit utilitaire avec TP:
    http://site.voila.fr/subut/data2/file2inc.pas (3 ko)
    Depuis, je l'ai amélioré avec Delphi: http://site.voila.fr/subut/data2/file2inc.zip (216 ko)
    Voici le résultat, le fichier EGAVGA.BGI sous forme de tableau à intégrer dans ton unité avec {$I egavga.inc}:
    http://site.voila.fr/subut/data2/egavga.inc (26 ko)
    Ensuite, c'est simple, il suffit d'appeller la fonction RegisterBGIDriver(@egavga); avant InitGraph...
    Tu vérifieras que ça fonctionne bien, en supprimant l'accès au dossier BGI, à+

  6. #6
    Membre Expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Par défaut
    Tiens... Tout ça me fait penser que je n'ai jamais balancé mon snake sur le Net !

    Si y'en a que ça intéresse... Conçu avec Vbe2, bien entendu

    http://membres.lycos.fr/hdd34/snake.zip

    A+

  7. #7
    Membre chevronné Avatar de charly
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 329
    Par défaut
    c est pas gentil de faire de l ombre !!!

  8. #8
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Par défaut
    Citation Envoyé par charly
    c est pas gentil de faire de l ombre !!!
    Moi en tout cas cà ne me gêne pas, cà me permet au contraire d'effectuer une petite comparaison et voir à quel niveau j'en suis

    Et merci à Sub0 pour son convertisseur .bgi--->.inc

  9. #9
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    En fait, cet utilitaire peut servir à intégrer tous types de fichiers dans son éxécutable.
    Des samples WAV par exemple, des polices, des images, etc...
    Par contre, avec TP, il ne faut pas utiliser des fichiers de taille supérieure à 64ko!
    Avec Delphi, nous ne sommes pas limités... à+
    http://www.developpez.net/forums/viewtopic.php?t=124817

  10. #10
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Par défaut
    En fin de compte, je pense bien qu'après Paint (si je réussis à le terminer), je me lancerai dans Delphi 8)

  11. #11
    Membre Expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Par défaut
    Euh... Il semblerait que Sub0 ait dégainé le bazooka pour abattre la mouche qui passait dans le coin

    Turbo Pascal est fourni avec un utilitaire permettant d'intégrer un fichier binaire dans un programme. Il s'appelle BINOBJ.

    Exemple pour l'intégration d'un driver BGI :

    1. Sous Dos

    Taper
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BINOBJ  EGAVGA.BGI  EGAVGA.OBJ  EgaVgaDrv
    Remarque :
    • EgaVgaDrv est un nom dit "public", qui sert à accéder aux données par la suite (au travers d'une procédure, par exemple)


    2. Sous Turbo Pascal

    Insérer dans le programme les lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    procedure EgaVgaDrv; far;
    {$O EGAVGA.OBJ}
    Remarques :
    • - On retrouve ici le nom "public" EgaVgaDrv. Il doit correspondre bien évidemment au nom donné à BINOBJ.
      - La procédure doit être déclarée en appel far


    Puis, pour utiliser le driver :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var
      Gm, Gd: Integer;
    begin
    Gd := RegisterBGIDriver(@EgaVgaDrv);
    InitGraph(Gd, Gm, '');
    ...
    CloseGraph;
    end.
    Cette méthode est celle conseillée par Borland. Elle fonctionne à merveille, bien entendu

    A+

  12. #12
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Pas vraiment hdd34, je connais aussi ce principe. En réalité, je me suis servi d'une méthode que j'utilise pour intégrer des fichiers à mes sources, en les transformant en tableaux. C'est un peu différent de BinObj, dans la mesure où le résultat est une unité, un fichier INC, et non un fichier de données au format OBJ. L'avantage, c'est que l'on peut insérer le tableau (driver BGI) directement dans les sources, pas de fichier suplémentaire... Comme je l'ai précisé, j'utilise File2Inc avec Delphi, qui ne possède pas d'équivalent à BinObj il me semble (pas sûr).
    Avec TP, cette méthode a été surtout nécessaire lorsque j'ai voulu intégrer des fichiers de taille supérieure à 64ko. Je découpe le fichier en plusieurs tableaux... Ainsi, je n'ai aucune difficulté à reconstituer le fichier original avec BlockWrite, tandis qu'avec BinObj, vois pas comment on peut réaliser cela! Cette méthode fonctionne à merveille, bien entendu! :-)
    En tous les cas, une étude sur le sujet m'intérresse, ton avis sur la question aussi, à+

  13. #13
    Membre Expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Par défaut
    Delphi n'a pas d'équivalent à BinObj... Et pour cause ! Ce n'est plus du tout la même stratégie à employer. Les exe Windows peuvent intégrer des ressources. C'est à ça qu'elles servent. L'utilisation des ressources permet d'éviter de passer par des "astuces" plus ou moins avouables

    Le fait d'intégrer tout un fichier binaire en un tableau rend le code assez lourd je suppose. Et j'imagine la panique si, malencontreusement, on change une lettre ou un un chiffre en un autre en plein milieu !

    Je n'ai pas regardé aussi : adaptes-tu les codes ASCII de façon à ce qu'il soient lisibles ? Non je présume... Sinon le tableau n'est pas accessible directement. Ca peut poser problème, car Turbo Pascal n'est pas capable d'afficher tous les caractères. Et ce n'est rien comparé aux limitations d'autres éditeurs. Attention aux pertes...

    Le fait d'avoir un fichier OBJ à part semble gênant à tes yeux. Après tout, fichier OBJ ou unité Pascal ? Ca fait un fichier quoiqu'il arrive.

    Reste le problème des fichiers d'une taille supérieure à 64Ko. Dans ce cas, il faut le couper en plusieurs morceaux avant de le passer à BinObj. Mais après, on peut aussi passer le tout à BlockWrite sans trop se fatiguer. Et puis généralement, quand on intégre i,n fichier dans le code, ce n'est pas pour le réécrire. Mais il doit bien y avoir des exceptions je présume.

    Voilà, pour/contre, question de goût. Je préfère limiter le bricolage à certaines choses. Et j'évite d'inclure du bricolage dans le corps même de mon code source

    A+

  14. #14
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Merci Hdd34! Ta réponse me convient. En ce qui concerne, l'adaptation des caractères Windows/dos, il n'ya pas de soucis puisqu'il sagit de tableaux de byte. De plus, ce sont des tableaux de constantes, on ne peut pas modifier les octets sans le vouloir vraiment. Je reconnais que ça peut paraître lourd comme solution d'intégration de fichiers, mais cela convient bien dans certains cas. C'est vrai aussi qu'avec Delphi, les fichiers RES sont une bonne solution. Pour conclure, je dirais aussi que c'est une question de choix finalement, et surtout fonction du contexte du projet... Je comptais améliorer ma méthode en compressant les données avant le stockage, et intégrer une procédure pour les décompresser avant l'utilisation. Remarque, cela peut aussi se faire avec la méthode obj... à+

  15. #15
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Par défaut
    Débat très interessant! Un posteur (récemment) n'avait pas tort de vous appeller les "mages" du Pascal

  16. #16
    Membre Expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Par défaut
    Les mages du Pascal ? Il en faut pas beaucoup dites donc... Quoiqu'il en soit, merci pour le compliment !

    PS: Oublie la remarque plus ou moins stupide sur l'affichage des caractères : je ne devais pas être très réveillé

    A+

  17. #17
    Membre Expert

    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mars 2002
    Messages : 255
    Par défaut
    Citation Envoyé par Hdd34
    Les mages du Pascal ? Il en faut pas beaucoup dites donc... Quoiqu'il en soit, merci pour le compliment !
    Si si ! T'en connais plus que moi :-) (j'ai jamais su comment fonctionnait BINOBJ ... je me suis jamais penché sur le problème en même temps ;-))

    @+ Haypo

  18. #18
    Membre chevronné Avatar de charly
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 329
    Par défaut
    c'est déprimant , hdd34 n a jamais secher sur un probleme , meme les plus biscornue , et je suis un champion pour sa :o

  19. #19
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 466
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 466
    Par défaut
    Je confirme Charly, tes problèmes sont très problématiques dès fois....

  20. #20
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Par défaut
    Le projet est loin d'être terminé mais avance quand même. J'essaie de me débrouiller tout seul mais quand cà vas me dépasser www.developpez.net

    Et j'ai testé les deux méthodes d'intégration des .OBJ et elles fonctionnent correctement (du moins pour le moment 8) ).

    Citation Envoyé par charly
    c'est déprimant , hdd34 n a jamais secher sur un
    probleme , meme les plus biscornue
    Je suis tout à fait d'accord! Je ne l'ai jamais vu sécher sur une question, quelque'elle soit

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. [Recrutement] Projet Dota Like
    Par Neoskai dans le forum Projets
    Réponses: 7
    Dernier message: 04/06/2010, 16h29
  2. [Open-Source][Python]Snake like
    Par the_dorian dans le forum Mon programme
    Réponses: 3
    Dernier message: 21/03/2008, 11h22
  3. Projet de creer un facebook like : trop ambitieux ?
    Par Moucroune dans le forum Mon site
    Réponses: 4
    Dernier message: 16/11/2007, 11h32
  4. [SDK]Codage d'un BCA like : projet en cours
    Par VinZent dans le forum SDK
    Réponses: 4
    Dernier message: 11/02/2007, 20h36

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