SNAKE 3D OPENGL DEV C++

cs_Wett Messages postés 104 Date d'inscription dimanche 2 mars 2003 Statut Membre Dernière intervention 12 juin 2005 - 14 juil. 2003 à 00:29
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 - 14 janv. 2008 à 10:09
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/11095-snake-3d-opengl-dev-c

Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
14 janv. 2008 à 10:09
Bin visiblement, le pb semble plus venir du fait qu'il ne compile pas l'implémentation d'une certaine classe Jeu...
Samersahih >> es-tu sûr d'avoir bien ajouté le fichier jeu.cpp au projet?
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
13 janv. 2008 à 21:38
Wah ... Euh, le code date de la fête nationale française de 2003, alors ... :D Désolé, mais je ne saurais pas t'aider :). Ceci dit, si tu utilises VC++ et pas Dev-C++, tu dois définir toi-même les libraires avec lesquelles lier. L'erreur vient sans doute de là, tout simplement.
samersahih Messages postés 2 Date d'inscription mardi 11 décembre 2007 Statut Membre Dernière intervention 13 janvier 2008
13 janv. 2008 à 14:50
j'essaye de compiler mais je pense qu'il ya un probleme de linkage avec l'erreur suivante :

main.obj : error LNK2001: unresolved external symbol "public: __thiscall Jeu::Jeu(void)" (??0Jeu@@QAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall Jeu::ReSizeGLScene(int,int)" (?ReSizeGLScene@Jeu@@QAEXHH@Z)
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall Jeu::KillGLWindow(void)" (?KillGLWindow@Jeu@@QAEXXZ)
main.obj : error LNK2001:

c'est quoi cette erreur ??
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
13 sept. 2006 à 10:04
C'est un fait.

Et ta question est?
souf_ Messages postés 7 Date d'inscription samedi 6 mai 2006 Statut Membre Dernière intervention 1 octobre 2006
13 sept. 2006 à 01:32
bonjour a tous
je débute avec la programmation sous dev c++ avec opengl j'ai compiler un programme mais j'ai les erreures suivantes

cannot find -lobjc
ld returned 1 exit status
C:\Dev-Cpp\temp\Makefile.win [Build Error] [Project1.exe] Error 1
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
21 févr. 2005 à 20:32
Euh, c'est des cubes qui bougent, c'est pas extraordinnaire :p En plus c'était il y a longtemps, c'est mal codé, il y a des incohérence etc. C'est à la hauteur de ce que je savais faire avant, mais y a vrmnt pas de quoi s'émerveiller, calme, calme ^_^.
wiaeke Messages postés 38 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 9 avril 2005
21 févr. 2005 à 20:27
a vrai dire il faut se demander ou il va pioche ces codes et ces idees sinon pour dire en clos kirua est un grand tres grand et grand programmeur
je soyez pas jaloux svp
de tres beau jeu
CYouness Messages postés 5 Date d'inscription dimanche 17 octobre 2004 Statut Membre Dernière intervention 17 octobre 2004
17 oct. 2004 à 14:16
c génial ton serpent.......rien à dire.....courage et continue comme cela.............
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
23 mai 2004 à 12:38
raaah, j'ai recommencé une partie et j'ai 20, sgnif, je suis mauvais -_-'
neo_00110010101 Messages postés 360 Date d'inscription samedi 27 septembre 2003 Statut Membre Dernière intervention 30 mai 2006
23 mai 2004 à 11:26
Avec (bien sûr) pas mal de difficulté au début =) et puis j'ai fini par mettre 10 pour monter la note (y'a pas de 9.5 !!!) lol, @+
cs_AmK Messages postés 368 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 27 janvier 2010 1
22 mai 2004 à 22:58
32 eh ben !!!
je me souviens pas avoir depassé 20 moi :) lol
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
22 mai 2004 à 22:39
:p merci pour ce message, c'est sympa d'écrire même pour ça ^^
j'aurais peut-être dû faire une case plus grande, parce que c'est quand même pas tout simple comme jeu, 32 c pas mal ^^
neo_00110010101 Messages postés 360 Date d'inscription samedi 27 septembre 2003 Statut Membre Dernière intervention 30 mai 2006
22 mai 2004 à 22:30
Excellent ! Je viens de faire un score de 32 et je viens même de rater un appel sur mon portable tellement ce jeu est prenant ! Merci bien :] 9,5/10
cppdupdup34 Messages postés 212 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 13 mai 2006
6 déc. 2003 à 23:15
et toi kirua il a pas bouge depuis longtemps ton snake faudrait lui donner un coup de jeune
rien que de la musique ca serait beuacoup mieux
contrairement a moi tu poste des projet finit ou presque et c'est tout a ton honneur
il etait bien des le depart ton snake pas comme le vieux machin que j'avais posté |-)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
29 août 2003 à 02:50
dev c++ et VC, c pas une différence d'expérience, mais d'affinité et de budget. perso je me contente de dev C++ qui remplit très bien son office pr pas un rond, pas de raison de passer à l'autre, et je ne vois pas ce qui empêche un parfait débutant de commencer par là.

si tu ne maîtrises pas encore le C++, ne pense pas à l'opengl, ça va t'embrouiller, donne toi qq mois pr avoir une bonne connaissance de la syntaxe pure, des accès fichier, (des sockets peut etre?) etc. Après envisage l'opengl, il y a des tas de sites.

je ne peux pas élaborer car je suis chez un ami, mais tu peux tjs me parler sur msn si tu veux un coup de main, nicolasboumal @ hotmail . com. je rentrerai dans 3 jours, donc voilà. sahce aussi que funto a une bonne connaissance théorique, ça pourra te servir, plus que moi !

ciao
cs_Mistral12 Messages postés 3 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 9 septembre 2003
28 août 2003 à 13:48
Salut Funto66 , je te remercie vivement pour ton aide
c'est vraiment sympa de toi !!
au fait Kirua , j'ai eu un problème au démarrage du jeu au serpent 3D
j'avais juste l'écran de départ mais impossible d'accéder au jeu ,
mais en relisant ton premier post, je vais faire ce qu'il faut
pour placer les fichiers importants !!
j'espère après cela pouvoir voir ce jeu d'ici quelques minutes !
c'est la raison de mon inscription ici , en fait.
car Je ne connaissais pas du tout ce site avant,
J'ai vu que tu avais envoyer d'autres sources de programmes ^^
bon, si tu n'y vois pas d'inconvénient, on va allez voir ce que
sait , hi hi :-)
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
28 août 2003 à 12:09
http://casteyde.christian.free.fr/
Le meilleur cours de C++ du net.
Si avec ça ça ne te suffit pas, tu as la MSDN de Microsoft, sur leur site, qui est la documentation des dévelopeurs, et qui contient entre-autres des infos sur les fonctions du langage C/C++.
Et il me semble qu'il y a pas mal de trucs dans le menu Aide (ou ? je sais plus) de Dev-C++ 4 ;)
cs_Mistral12 Messages postés 3 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 9 septembre 2003
28 août 2003 à 03:18
Salut à tous ^^
je viens de m'inscrire sur ce site ^^
je vois que ton jeu de serpen semùble super
alors je suis en train de le télécharger ^-^
je suis débutant en CCPP
et j'utilise DEVCPP version 4
l'autre version ne marche pas :(
Je pense que VC est bien pour les déburtants
et pour les comfirmés , devcppp est le top !
C'est vraiment un bon soft mais j'ai un problème :(
Je ne possède pas de manuel de référence
sur le C avec toutes ses fonctions détaillées,
est ce que quelqu'un peut m'informer et me donner
une réponse??
Si je fais un jeu , je me mettrai ici
j'ai bien un projet mais
j'ai besoin d'aide alors help me !
Encore une fois , merci ,
cs_AmK Messages postés 368 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 27 janvier 2010 1
15 août 2003 à 19:15
meme avec allegro on peu faire de la 3D ,en plus l'avantage c'est que dans le zip d'installation ya des exemples commentés en 3D !!!
eldered Messages postés 232 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 mai 2022
14 août 2003 à 20:14
Hum, je pense aussi ... ^^
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
8 août 2003 à 01:11
un programmeur a posté un moteur 3D software sur le réseau il y a peu, ou du moins un début. c'est évidemment possible, d'ailleurs opengl, ce n'est "que" ça, avec de l'appuis hardware, mais vu le nb de difficultés qui se posent déjà pr UTILISER un moteur 3D efficacement, tu crois pas que c un peu ... euh... une perte de temps de vlr en écrire un toi-même? sans vlr être vexant ou encore mettre tes facultés en doute, il me parait assez improbable que tu parviennes à faire ne fut-ce qu'un équivalent d'OpenGL, DX ou autre, ces moteus ont été dvp par des bataillons de professionnels pdt des années, avec des budgets collosaux, ce n'est pas vrmnt à la portée d'un programmeur seul.
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
7 août 2003 à 16:46
trinitacs >> ouais, ben je te laisse la faire la 3D avec SDL, ce que tu me dis, c'est de carrément créer une librairie qui s'appuierait sur une fonction du style putpixel() qui elle resterait dépendante du moteur. Donc, beaucoup de maths, pas d'accélération matérielle (enfin si, mais avec DirectX 5 sous Windows, mais on n'utilise presque rien comparé à ce qu'elle peut prendre en charge maintenant), beaucoup de code, il faut "réinventer" le calcul des lumières si tu veux avoir un rendu correct.........
mais oui, techniquement, c'est possible, mais bon.... Je te laisse essayer ;)
trinitacs Messages postés 249 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 7 août 2003 2
7 août 2003 à 15:23
funto66 >> es-t-on obligé d'utiliser opengl pour faire de la 3D? Non, il suffit simplement de connaître calcules de la perspectives afin de donner l'impression de profondeur. Donc non avec que SDL tu peux aussi faire de 3D.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
31 juil. 2003 à 13:56
merci pr ts ces messages, je suis loin la, et g enfin mis la main sur un bar civilise avec internet.
eldered, pr SDL je sais pas, si je l ai utilise c a l insu de mon plein gre ;-) veuillez pardonenr l absence d accents c un clavier qwerty icim salete !!

je dois vous laisser, je lirai et repondrai plus amplement ds qq jours, ciao a tous !!
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
22 juil. 2003 à 20:15
trinitacs >> Tu n'as pas lu le post entier je pense. D'ailleurs, si tu relis "SDL c'est bien pour faire des jeux 2D. D'ailleurs, c'est tout ce que tu peux faire en n'utilisant QUE SDL", tu remarques le "que". Si tu lis la suite du post, tu verras que je dis qu'on peut créer sa fenêtre avec SDL et utiliser OpenGL dedans.
Pour les sites que tu m'as donnés, je les connaissais :)
trinitacs Messages postés 249 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 7 août 2003 2
22 juil. 2003 à 19:22
funto66 << "SDL c'est bien pour faire des jeux 2D. D'ailleurs, c'est tout ce que tu peux faire en n'utilisant que SDL"
Vraiment tout? Bon une fois de plus je ne suis pas d'accord avec toi :p

Voici d'autres liens:
http://www.gamedev.net/
http://www.gametutorials.com/
http://www.gamasutra.com/
http://www.flipcode.com/

bonne lecture ;)
eldered Messages postés 232 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 mai 2022
21 juil. 2003 à 12:25
Merci !!! Je zieute ça et je te dis koi !!!!
++
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
21 juil. 2003 à 12:17
OpenGL, c'est pas compliqué => http://glinfrench.apinc.org => GLInFrench.
=> http://prografix.games-creators.org/ => ProGrafiX
SDL, c'est pas compliqué non plus : => http://www.libsdl.org => (site officiel de SDL)
=> http://www.programmationworld.com/site/
=> ProgrammationWorld : des tutos sur SDL entre-autres (y'a aussi du DirectX et de l'Allegro).
=> ProGrafiX a aussi des tuts sur SDL (notamment installation sous VC++).
eldered Messages postés 232 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 mai 2022
21 juil. 2003 à 11:23
héhé ok, merci bien, et des sites sur sdl, vous en avais vers les kels me diriger ?

Et Open gl c compliqué ou pas ?

++
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
21 juil. 2003 à 07:41
SDL c'est bien pour faire des jeux 2D. D'ailleurs, c'est tout ce que tu peux faire en n'utilisant que SDL. C'est sûr, c'est pas aussi rapide que OpenGL mais tu peux faire des trucs pas mal. Ensuite, si tu veux essayer OpenGL, tu peux gérer de façon portable ta fenêtre avec SDL et ensuite utiliser OpenGL dedans, ce qui est à mon avis le meilleur choix. Mais tu peux très bien rester à SDL :)
eldered Messages postés 232 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 mai 2022
21 juil. 2003 à 01:06
Hum ... a propos du random et de la liste chainé, j'ai eu le meme problème pour un jeu de freecell {sur ce site d'ailleur} ou il fallait tiré des cartes au "hazard" {a savoir qu'un random ne se fait pas au hazard ...} et je me suis contenté de tiré une carte et de la comparé avec les cartes deja tirée, si elle était deja tirée je recommencait le procédé jusqu'à tomber sur une carte non tiré, puis je la placé .. etc ... ms c trés lours et trés nul en fait, j'ai réfléchi un peu sur le sujet et il est vrai que la meilleur solution qui m'est venu a lidée ct une liste chainée ... je pense k'il n'y a pas mieux !

Sinon, J'utilise dev c aussi et je le trouve trés bien.

Pour terminer, super ton logiciel, je commence a faire un nouveau jeu, et je compte utiliser la librairie SDL ... c bien ou pas ???

++ all
trinitacs Messages postés 249 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 7 août 2003 2
19 juil. 2003 à 16:51
kirua <<"et je sais pas pq. je devrais utiliser des listes chaînées pr dépasser et ça m'amuse pas du tt du tout"
Car la STL offre le conteneur list qui offrira plus de souplesse afin de modifier la taille du jeu sans recompiler.
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
19 juil. 2003 à 15:17
Kirua si tu me lis..... >> je sais pas d'où tu nous sort qu'un tableau peut faire que 256 cases au maximum; tu devrais essayer de marquer Cube cubes[300]; et tu verrais...
Tu utilises Dev-C++ 4.9.6.0 ? Si t'as eu des problèmes avec la 4.9.8.0, sache qu'il y a une update vers 4.9.8.1, je sais pas si ça arrangera tes probs...
Sinon, on peut pas dire que Visual C++ SEUL soit tellement meilleur que Dev-C++ (à part pour l'édition des ressources), c'est surtout quand on y ajoute Visual Assist que la comparaison tient plus...
ANSI, ça veut dire "American National Standard ....je sais plus le I :)", c'est un organisme qui s'occuppe de définir un standard pour les langages, ce qui évite de voir plusieurs versions incompatibles : c'est parce que le BASIC a été normalisé trop tard que toutes les versions sont incompatibles (si, si, je crois qu'il existe une version ANSI ou ISO je sais plus...)
trinitacs >> on arrête le troll, je te laisse le dernier mot :) J'ai Dev-C++ 4.9.6.0 et Dev-C++ 4.1, et je n'ai que le 2ème qui marche, l'autre ne marche pas "complètement" : si je fais une erreur, il ne me compile pas mais ne me dit pas pourquoi !! Quoi que je compile, le seul message que j'ai est un "clock skew detected".
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
19 juil. 2003 à 01:13
j'oubliais, je vous quitte pr 2-3 semaines ^^ je répondrai probablement pas sauf si je trouve un accès internet là ou je vais, ce qui devrait être possible. à ciao bonsoir! je vais coder ailleurs ;-)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
19 juil. 2003 à 01:12
ah ok, on sait pas pq mais ça marche donc... tant mieux ^^

bah oui du noyeau (kernel), bien sur mais je caricaturait parce que tt ce que j'ai lu n'était vrmnt pas clair, alors bon, bof quoi :-) et chez Blekin autant que chez D-Link, pas de drivers linux, c con.

j'aime pas les voitures mais j'aime bien le C++, alors passons les comparaisons ;-) mais j'y penserai (promi juré!)

je suis de tte façon limité à 256 cases, puisque sauf erreur, un tableau type Cube cubes[NB_CUBES] ne peut pas être plus grand que 256 entrées, si? en tt cas c ce que j'ai ds la tête depuis longtemps et je sais pas pq. je devrais utiliser des listes chaînées pr dépasser et ça m'amuse pas du tt du tout

surtout à qualité égale, bon c vrai que DevC++ (quand on voit tt ce que tu m'as dit funto) est moins puissant, mais regarde: on fait des choses bien aussi :-D ;-) non ok VC++ justifie peut etre son prix par ses fonctions, mais comme dit trinitacs, DevC++ est plus à jour car constamment amélioré, donc respecte mieux les "nouveaux" standards. (au fait, ANSI ça veut dire quoi? ou plutot, qu'est-ce que c ?)

oui la complétion du code y est (j'utiliser 4.9.8.0), mais je dois reconnaître qu'elle est un peu boiteuse, on c pas trop quand elle apparaît et quand non. par contre les infos sont correctes (ouf ^^)

c ce que je disais ds mon message précédent dans une phrase tellement mal construite que tu l'as pas comprises, dsl ^^ mais donc oui je confirme c possible.

en fait la v4.9.x.x est la bêta 5, et parfois elle plante sans trop savoir pq (on dirait windows ^^). puis aussi (en tt cas avec la 4.9.6.0, j'ai changé depuis très peu (2 jours), quand on compile en ayant modifé des fichiers, il s'en rend pas tjs compte alors il faut faire un make t puis une compile -> 2x plus de temps, c énervant. c pe corrigé ça.
trinitacs Messages postés 249 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 7 août 2003 2
19 juil. 2003 à 00:17
kirua >> l'option -s infique au compilo d'envoyer toutes les options qu'il ne connaît pas au linker. Ensuite ne me demande pas pourquoi l'éxécutable est plus petit mais tout ce que je sais c'est qu'il diminue environ de moitié à chaque fois :)

Je vais essayer de faire un tut là dessus puisque tu est interressé.

Pour ce qui est de mandrake je pense qu'il faut plutot que tu recompile ton noyau au lieu de dire ma propre distrib. C'est un passage obligé. Par exemple pour installer les drivers de mon modem c'est ce que j'ai dû faire. Mais bon le makefile était déjà préparé heureusement :)

funtoo >> Tu dis le petits désavantage du const mais pas ceux des define. Je dois dire pour équilibrer que les define peuvent-être redéfinient sans qu'on s'en aperçoive. Ensuite c'est un vrai catastrophe car on s'arrache les cheveux à chercher là où il ne faut pas. Et franchement c'est pas avec des define que l'on résuit la mem utilisée par un prog. Bon on ferme avant que ça devienne un troll ;)

kirua >> Pour le printf je sais très bien que c'est pratique pour débuger, je fais la même chose. Mais cependant utilises les objets de flux du C++ si tu fais du C++. C'est un peu comme si tu m'étais une carosserie de clio sur une porsches.

Oui l'algo de Wett est excellent à condition qu'on ne puisse pas faire des terrains immenses :o

Pour ce qui est de VC et DevCpp c'est une question de goût car les deux sont très bien. Mais je préfère DevCpp car je sais que mon code sera portable sans problème sur un unix par exemple. En plus VC 6.0 est assez vieux et ne respecte pas les dernières normes de l'ANSI/ISO et je trouve ça gênant. Et puis quand j'ai le fois entre utiliser un logiciel libre et cracker un programme payant je prend la première solution.

funto >> Quelle version de DevCpp as tu utilisé? La 5 est une bêta et elle n'est pas très stable, par contre la 4 fonctionne très bien chez moi. Ensuite DevCpp 5 propose la complétation du code également et tu peux le paramétré. D'ailleurs pleins d'éditeurs le proposent.

Wett >> Dans DevCpp tu peux également aller à la définition ou la déclaration d'une fonction tout comme une classe ou une variable.
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
19 juil. 2003 à 00:15
Ah !
Et sinon, si tu tapes "#~include <GL/glut.h>", est-ce que si tu tapes "gl" et que tu fais TAB, ça t'affiche une liste de toutes les fonctions commençant par "gl" ? Est-ce que si ton curseur est à côté d'un "(" ou d'un "{", celui qui correspond et ferme le bloc/les parenthèses apparaît en gras (ou en couleurs) ? Et si tu fais une erreur de syntaxe, est-ce qu'elle apparaît différente dans le code source ? Et si tu tapes "glColor3f(" et que tu fais TAB, est-ce que tu vois les arguments de la fonction en tooltips ?
Je veux juste savoir si Dev-C++ peut faire tout ça (j'ai pas la dernière version, depuis que ça marche pas, j'en ai eu marre, la seule version qui marche chez moi est la 4 !!).
Si oui, alors j'essaierai...
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
18 juil. 2003 à 22:02
dis, passer directement à uen déclaration de variable ç y est ds DevC++, en meme temps que l'arborsescence des fonctions (avec définitions de méthodes, paramètres etc) des sauts direct source / en-tête; vers la déclaration; vers le code de la fonction etc... nonon pas de problème le programme suit :-)
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
18 juil. 2003 à 21:07
De rien :)
Tu verras, qd tu l'auras installé, t'auras plus jamais envie de passer à autre chose que Visual C++ :)
D'ailleurs, c'est dommage que ça n'existe pas ailleurs.
cs_Wett Messages postés 104 Date d'inscription dimanche 2 mars 2003 Statut Membre Dernière intervention 12 juin 2005
18 juil. 2003 à 15:21
C'est vrai que VC simplifie souvent la vie, on peut aller directement à une definition de variable, chercher n'importe quoi de definit il te le retrouve tout seul... Et en plus je connaissais pas ca funto, je crois que je vais l'installer ;) merci du tuyau ;)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
18 juil. 2003 à 14:46
ah oui je comprends, la première raison suffit déjà amplement d'ailleurs funto ;-) vi c vrai qu'y a pas de macros pr DevC++, ou en tt cas j'en ai pas vues. Mais donc, c pas VC++ en soi qui est mieux, c comme tjs une question d'école (on finit tous par tomber ds un programme et après c dur de changer) et parce que VC++ est extensible grâces aux macros.
DevC++ est en constante évolution, ils vont peut-être créer un système de macros u nde ces jours :-)))
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
18 juil. 2003 à 14:27
Moi j'ai 2 bonnes raisons d'utiliser Visual C++ :
-Primo Dev-C++ ne marche pas chez moi (clock skew detected à chaque compilation, ç m'indique pas où sont les erreurs..... J'ai cherché partout et j'ai abandonné. Si jamais vous savez ce que c'est...
-Deuzio : Avec Visual C++, j'ai Visual Assist 4.1, de tomato software, et ça c'est le pied : http://www.wholetomato.com/
Tu tapes le début d'une variable, tu fais TAB et ça finit d'écrire, tu tapes un prototype de fonction et lors de la définition, tu fais TAB après la parenthèse et tout s'écrit automatiquement, tu tapes if+TAB et t'as
if()
{
}
avec le curseur placé entre les parenthèses, toutes les macros, les enum, les constantes en #define sont en rose, les variables en gris, les fonctions en rouge, les classes en bleu, tu cliques sur une variable et tu cliques sur goto et tu vas à la déclaration de la variable ou de la fonction...... Bref, c'est GENIAL !
cs_Wett Messages postés 104 Date d'inscription dimanche 2 mars 2003 Statut Membre Dernière intervention 12 juin 2005
18 juil. 2003 à 13:49
Hum... Personellement si j'utilise VC++ c'est plus par habitude... J'ai essayé Dev c++, et vraiment c'est trop bizarre : rien qu'un detail mais qui pour moi a son importance : la mise en forme auto du code lol ça ça m'horripile sous Dev ^^ Sinon apres c'est vraiment par pure habitude, je cherche plus des heures ou se trouve tel commande du compilo, enfin tout ça quoi... Je sais que ca t'aide pas à repondre mais bon :) j'ai tjs utilisé VC++, et je n'ai aucune envie d'en changer :)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
18 juil. 2003 à 13:41
je suppose que tu es adeptes de VC++. perso je préfère DevC++, parce qu'il incarne bien l'esprit du C++ (libre, gratuit). Enfin, j'ai bien essayé VC++, et je ne comprends pas ce que vous y trouvez de plus qu'à DevC++, c vrai au fond, qu'est-ce qu'il a de plus qui justifie cette dépense ?
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
18 juil. 2003 à 13:32
Ben chez moi c'est une ligne bleue :)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
18 juil. 2003 à 12:48
yeah, la théorie du moins (pr son algo)
pr les #define, je les préfère parce que ça fait une ligne verte très visible en haut du fichier :-D (suicide en publique de mon crédit de programmeur ^^)
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
18 juil. 2003 à 12:46
Pour l'histoire du mélange C/C++, trinitacs et moi avions eu une longue conversation pour/contre ;) Donc ce n'est que mon avis, et trinitacs ne sera pas certainement pas d'accord, mais je pense qu'utiliser des printf et des #define ne nuit pas à la POO, et je pense qu'il est mieux d'utiliser des #define plutôt que des const type parce que des const sont des variables et prennent donc de la place mémoire alors qu'avec les #define le préprocesseur remplace dans le code par la valeur.
Pour la taille de l'arène, à mon avis, il veut dire que ça serait sympa de pouvoir modifier la taille de l'arène pendant le jeu, sans recompiler.
Pour l'algo de Wett, pour l'instant c'est le meilleur qu'on ait :)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
18 juil. 2003 à 02:09
merci dean

trinitacs je te remercie pr ce message, j'y réponds:

-ok, en effet, je viens de tester et j'obtiens 85Ko! c'est une astuce en or, je te remercie ! quelles sont les contreparties de cette option? seulement lenteur de compilation?

-oui j'ai vaguement lu sur gamedev.net qu'on pouvait faire ça autrement mais je n'ai pas lu avec bcp d'insistance et j'ai pas trop compris, je t'encourage donc à faire un tuto, autant que possible j'aimerais éviter qu'un bête jeu de serpent exige un Pentium 6, 5 Ghz O_o

-pas portable en effet, j'avais prévenu ;-) pour tes touches, je suis désolé je ne vois pas, j'ai testé mon jeu sous Win XP et Win NT 2000 et je n'ai eu aucun problème à ce niveau. pr ce qui est de la portabilité, j'ai testé de longues heures les avantages / désavantage de trois types de fenêtres OpenGL: la fenêtre type NeHe Win32 (par définition non portable), la fenêtre type proposée ds u ntuto de opengl.org ou .com sais plus, compatible linux, mais qui ne proposait pas de vrai mode pleine écran et ne permettait pas une gestion clavier très poussée (avec la fenêtre Win32 je capte moi-même les messages WM_KEYDOWN et WM_KEYUP) ensuite, une troisième avec Borland C++ Builder, de tte évidence le plus simple, mais aussi le moins documenté et le moins distribuable (pleisn de DLL borland à fournir, puis c pas tlm qui a une version chez lui). en définitive j'ai choisi comme tu peux le voir la fenêtre NeHe adapté à la sauce POO, et tant pis pr les courageux qui utilisent Linux (j'ai installé mandrake 9.1 mais ça n'a pas été une réussite, ma carte réseau sans fil IEEE n'était pas reconnue, je me suis renseigné longuement, sur les sites officiels, sur les newsgroup, sur les sites spécialisés etc, en gros il faut que je crée une nvlle distribution linux presque ^^^

-oui je l'ai remarqué tt de suite en codant, je susi nul à ce jeu donc je risque pas de subir des ralentissements mais pr les plus performants, ça risque en effet. j'y pense gentillement mais rien ne me presse moins que ça ^^ pr sur, l'idée de Wett est la plus économe, si je saute le pas ce sera comme il l'a décrit.

la taille du jeu tu veux dire de l'arène? c possible, suffit de recompiler en modifiant les #define ds le main.h LARGEUR et LONGUEUR. deux règles à respecter: le produit doit être <= à 256, les deux dimensions doivent être paires. c tt, ça marche impec j'ai testé en 4*4, 6*8 etc.

-printf() c uniquement pr le débuggage, ça c révélé pratique, j'aurais pu utiliser un cout avec la bib. iostream mais comme j'incluais déjà la bib. pour printf(), j'ai préféré cette solution. pour les #define, je ne savais pas que c t du C, il faut utiliser const type alors, obligé? j'ai jamais fait de C, alors je vois pas trop la frontière.

bien à toi

Kirua
cs_Dean Messages postés 500 Date d'inscription mardi 16 avril 2002 Statut Membre Dernière intervention 2 août 2004
17 juil. 2003 à 21:17
Je n'ai pas pu apprécier le code car je ne m'y connais rien en C++, mais en tout cas le jeu déchire ! Je te tire mon chapeau ;-).
trinitacs Messages postés 249 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 7 août 2003 2
17 juil. 2003 à 19:22
Pour la taille de ton exe rajoute l'option -s lors de la compilation. Tu verras ça va réuidre de moitié peu près.

Ensuite il y a moyen de largement optimisé ton code quand tu envoies les vertex car ça fait un brin bourrin les glVertex. Mais tout les codes sur cppfrance utilise seulement glVertex, je vais peut-être faire un tuto là dessus.

Arf ton prog n'est pas portable g été obligé de rebooter. En plus même sous win les touches fonctionne bizarrement chez moi: je ne peux pas déclacer le serpent.

serpent.h ligne: 36
Heu c'est mieux avec une liste chaînée quand même :)

Ce serait cool de pouvoir modifier la taille du jeu.

Et je ne vais m'étendre sur le mélange du C et C++ (define, printf...), hein funto66 ;)
Ricpperso Messages postés 236 Date d'inscription jeudi 24 janvier 2002 Statut Membre Dernière intervention 26 octobre 2004
17 juil. 2003 à 01:02
de rien :p
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
16 juil. 2003 à 22:15
wow ric, merci ^^ ça fait un long mot tout à coup ^^
mouarf, depuis que je l'ai posté, j'ai plus touché au code, je me suis remis à mon bon vieux PHP, retour aux sources ^^
Ricpperso Messages postés 236 Date d'inscription jeudi 24 janvier 2002 Statut Membre Dernière intervention 26 octobre 2004
16 juil. 2003 à 17:36
10/10 c'est pas assez, nan masi ton prog la il est génnnnnnnnniiiiiiiiiiaaaaaaaaaallllllllll bravo continu comme ca
cs_Wett Messages postés 104 Date d'inscription dimanche 2 mars 2003 Statut Membre Dernière intervention 12 juin 2005
15 juil. 2003 à 01:16
Lol mais de rien ;) sinon mon code meme s'il ne te sert pas regarde le qd meme, il pourra p-t t'eviter des bugs à la noix dans ton propre code ;)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
15 juil. 2003 à 01:04
oui wett, excellente idée! merci, je vias y penser, parce que les listes chaînées, ce sera une premire pour moi (ton code m'a pas trop servi ;-))

oui ça simplifierait, la liste chainée contient des occurences de Point. l'algo passerait simplement ts les points existants ds la liste en revue et enlèverait et ajouterait ce qu'il faut à chaque déplacement de serpent, c très économique.
cs_Wett Messages postés 104 Date d'inscription dimanche 2 mars 2003 Statut Membre Dernière intervention 12 juin 2005
14 juil. 2003 à 20:46
Oui c sur mais bon en gros je pense que l'algo reste simple et efficace ;) Et qd le serpent grandit c'est qu'en general on ajoute une case à la tete sans supprimer la derniere case de queue, donc idem ca reste assez simple...
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
14 juil. 2003 à 20:09
G compris :)
Ce qui manquait, c'était "l'index de la case dans la liste chainée".
Après, il reste à s'occuper de quand le serpent grandit....
Faut aussi donner des numéros à chaque case pour pouvoir reconnaître quelle est la nouvelle case du serpent et savoir laquelle il faut enlever de la liste chaînée donc...
cs_Wett Messages postés 104 Date d'inscription dimanche 2 mars 2003 Statut Membre Dernière intervention 12 juin 2005
14 juil. 2003 à 19:37
Non c'est moi qui me suis mal exprimé. En effet tu peux pas faire un rand qui evite certaines valeur. Ce que je proposais c'etait de tenir un inventaire des cases libres dans une liste chainée (simple à faire, il suffit de prendre toutes les cases au debut du jeu, d'enlever celles ou sont le serpent. Puis, au fur et à mesure que le serpent avance vers une nouvelle case, on enleve la nouvelle et on rajoute celle qu'il vient de quitter. Non?), et ensuite tu fais un rnd() pour trouver l'index de la case dans la liste chainée contenant les cases libres. Je sais pas si vous avez mieux compris lol à ce stade le code parle mieux de lui-meme
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
14 juil. 2003 à 18:30
AmK >> Presque le seul snake 3D du site... L'autre tu le trouveras dans les + populaires du mois.
Wett >> Je comprends pas trop comment tu peux n'utiliser qu'un seul random : tu peux pas faire un rand() qui évite certains nombres, non ??
Kirua >> Ce que je disais, c'était juste pour une optimisation : je pense que l'appel de printf(), même s'il n'affiche rien parce qu'il n'y a pas de console, bouffe de la mémoire, non ?
Sinon, c'est vrai que la méthode "bourrin" est pas géniale non plus quand il y a beaucoup de cases occupées...
Je vois pas trop quelle serait la meilleure méthode (s'il y en a une :) )
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
14 juil. 2003 à 15:28
pr le mode debug, la version finale je la compile sans fenêtre dos, donc pas de problème de ce côté là ;-)

funto avec ta méthodes, quand le serpent mesure 255 cases sur 256 cases de terrain, i lfaut potentiellement 256 * 96 000 opératiosn d'égalité pr trouver la place ...


merci pr les commentaires les gars, c sympa ^^ l'orienté objet c pas pr vous faire plaisir, c pr mon confort ;-)
cs_AmK Messages postés 368 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 27 janvier 2010 1
14 juil. 2003 à 15:03
bravo kirua ,j'avais deja joué a ton snake , mais il etait encore en phase de devellopement , en tout cas c'est le seul snake 3d du site et qui marche bien ;)
cs_Wett Messages postés 104 Date d'inscription dimanche 2 mars 2003 Statut Membre Dernière intervention 12 juin 2005
14 juil. 2003 à 14:40
Lol le coup de l'aglorithme bourrin de hasard c'est aussi comme ca que j'aurai fait moi ;) mais c vrai que a partir d'un certain nombre de cases, il devient aussi tres lent.... la solution serai p-t de tenir une liste chainée ou tu tiens les positions du serpent, à chaque fois qu'il bouge, tu supprime le dernier maillon et tu en rajoute un, ainsi tu connais en permanence la position de ton serpent... Ou l'inverse, tu tiens toutes les positions libres dans une liste chainée puis tu enleve celle ou le serpent passe puis tu rajoute celle qu'il quitte (operation tres simple il me semble et rapide...) ! Apres juste 1 seul random pour trouver une case ou poser la pomme... Enfin si tu vois ce que je veux dire ;) En tout cas encore bravo :D
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
14 juil. 2003 à 13:35
Très bon jeu. Ce qui est surtout bien fait, c'est qu'il soit orienté objet, et ça, c'est rare sur CppFrance !
Pour le débugage, tu pourrais mettre un #define DEBUGUER et placer les printf() entre #ifdef DEBUGUER et #endif // DEBUGUER, comme ça lorsque tu compiles ton prog en version finale, tu n'as qu'à commenter #define DEBUGUER et plus de printf() dans ton code. Enfin, ce n'est qu'une idée...
Pour ton système de placement de pommes, moi sur mon snake (eh oui, comme tu dis c'est la mode sur CppFrance :) ), j'ai utilisé un algorithme plus bourrin : je donne à X une position au hasard comprise entre 0 et un nombre et à Y une position au hasard comprise entre 0 et un autre nombre, et après je teste si la place est déjà occupée par une des parties du serpent : si c le cas, je recommence, sinon, je la garde... Je sais pas quelle est la meilleure méthode.
Pour ce qui est de l'idée des caisses, ça a l'air pas mal, mais comme les pommes, il faut pas que ça tombe sur le serpent.
Une autre idée serait de remplacer la pomme par une souris qui bouge... :)
Enfin, j'ai juste mis un petit 10/10..... :)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
14 juil. 2003 à 00:34
merci wett ;-) agréable commentaire. tu peux essayer de le recompiler avec un DELAI plus élevé (voir jeu.h en haut du fichier les #define). je devrais faire un menu d'options quand même. là un #define c vrmnt l'anti-facilité. puis aussi pr la résolution d'écran, moi j'aime autant être en mode fenêtré 1024*768, mais pr ici je l'ai mis en 800*600 (tlm n'a pas un écran 1280*1024 ;-)). faudrait aussi pvr le configurer en jeu. j'y penserai
cs_Wett Messages postés 104 Date d'inscription dimanche 2 mars 2003 Statut Membre Dernière intervention 12 juin 2005
14 juil. 2003 à 00:29
Hey franchement il est super!!! Un poil trop rapide pour moi qui n'aie que des reflexes d'un vieux croulant de 150ans, mais génial ;) Je te met 10/10!
Rejoignez-nous