[GCC] PACMAN EN C (MODE CONSOLE CURSES)

Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 - 9 juin 2004 à 22:20
Hack3urAl3x Messages postés 2 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 7 avril 2011 - 7 avril 2011 à 20:08
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/23539-gcc-pacman-en-c-mode-console-curses

Hack3urAl3x Messages postés 2 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 7 avril 2011
7 avril 2011 à 20:08
probleme résolu desolé pour le dérangement :/
il fallait juste installer la librairie ncurses
-> ncurses-dev
Hack3urAl3x Messages postés 2 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 7 avril 2011
7 avril 2011 à 19:54
Bonjour
Je viens de tester la compilation de ton PacMan, mais j'ai un petit problème :
$ make
cc --std=c99 --pedantic -Wall -W -g -c -o PacMan.o PacMan.c
cc --std=c99 --pedantic -Wall -W -g -c -o PacManInputCurses.o PacManInputCurses.c
PacManInputCurses.c:2:52: error: curses.h: Aucun fichier ou dossier de ce type
PacManInputCurses.c: In function ‘pmiGetCommand’:
PacManInputCurses.c:28: warning: implicit declaration of function ‘halfdelay’
PacManInputCurses.c:31: warning: implicit declaration of function ‘getch’
PacManInputCurses.c:35: error: ‘KEY_UP’ undeclared (first use in this function)
PacManInputCurses.c:35: error: (Each undeclared identifier is reported only once
PacManInputCurses.c:35: error: for each function it appears in.)
PacManInputCurses.c:36: error: ‘KEY_DOWN’ undeclared (first use in this function)
PacManInputCurses.c:37: error: ‘KEY_LEFT’ undeclared (first use in this function)
PacManInputCurses.c:38: error: ‘KEY_RIGHT’ undeclared (first use in this function)
make: *** [PacManInputCurses.o] Erreur 1

quel est se probleme ?
BeNBiBiFoKe Messages postés 12 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 6 octobre 2004
6 oct. 2004 à 23:23
Je suis pas parano, ni puissant....Mais oeil pour oeil , dent pour dent....Tes propos étaient infondés, c'est tout.
Le sujet est clos de toute manière.
todd43 Messages postés 3 Date d'inscription dimanche 26 septembre 2004 Statut Membre Dernière intervention 6 octobre 2004
6 oct. 2004 à 20:09
et oh c'est bon c'est pas la peine d'etre agressif comme ca monsieur le puissant programmateur. j'ai quand meme le droit de m'interroger. ca m'a paru surprenant vu que dans les 2 boites ou j'ai fait des stages personne ne commentait en anglais. surtout que j'avais mis un " ;-) " pour modérer mes propos le but c'était pas de te vexer faut pas etre parano non plus. en tout cas t'est pas plus sympa que moi en disant que tu voudrait me virer et en me traitant de con. enfin bon je veut pas te vexer plus.
BeNBiBiFoKe Messages postés 12 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 6 octobre 2004
1 oct. 2004 à 18:00
Le sujet est clos n'empeche que c'est pas tres sympa de la part de tod. Je fais partager mon code source et voilà ce qu'on a en retour. Dommage....

Encore merci à Kirua pour son bon sens :)
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 oct. 2004 à 17:57
C'est un reste de l'ancienne version.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
1 oct. 2004 à 17:46
à ce sujet brunews, y a un léger bug avec le site. on peut poster un commentaire sans cocher la case "J'approuve la charte de bonne conduite que je viens de lire ci-dessus.", ce qui est un peu bizarre n'est-ce pas? ;)
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 oct. 2004 à 14:10
Salut,

on va considerer ce debat de propriete comme CLOS !!!

Courtoisie et politesse TOUJOURS, svp.

BruNews, Admin CS, MVP VC++
BeNBiBiFoKe Messages postés 12 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 6 octobre 2004
1 oct. 2004 à 13:38
à todd43 :

Je ne me fous pas de vous. J'ai écrit et commenté ce code en anglais, par soucis de lisabilité. Bon si t'es un con de la france profonde qui jure que par sa langue, je peux rien faire pour toi...

Merci kirua pour la défense.

De plus, j'étais OBLIGER d'écrire les commentaires en anglias, c'était requis par les professeurs.

Donc je n'ai pas tort de me l'approprier vu que c MOI qui l'aie ecrit !!!!

Trouve le meme code autre part sur le net et alors on en reparlera. J'ai aussi ecrit ce code en 3 phases. La c'est la 3em phase que j'ai postée, les 2 precedentes etant moins evoluées. Si tu ne me crois pas, je te les envoie...

Si j'étais un modo en tout cas, tu ferais pas long feu dans la liste des inscrits.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
27 sept. 2004 à 00:38
"Voilà, le code est propre, commenté (en anglais)."

je t'ai répondu sèchement parce que ta remarque était infondée.

coder en anglais, c'est pratique à bien des égards, et principalement pour cette raison: les noms des fonctions/variables ne contiendront naturellement pas d'accents, faut pas commencer à ruser pour avoir des mots en français sans accents, parce que qd on les vire, ben ça rend la lecture plus difficile.

qt aux commentaires, c'est évident il me semble: si tu commentes en anglais, ton code touche un plus large public, c'est plus utile, en gros: tu aides plus de gens. ça me paraît clair. si les japs commentaient en japonais, on n'aurait pas l'air cons!
todd43 Messages postés 3 Date d'inscription dimanche 26 septembre 2004 Statut Membre Dernière intervention 6 octobre 2004
26 sept. 2004 à 19:46
t'inquiete pas pour moi je suis presque bilingue. et je vois pas pourquoi tu m'agresse tu doit avoir un probleme.
et si tu réfléchissait un peu tu trouverait ca bizard de mettre des commentaires en anglais pour un francophone.c valable que pour qqun.
si ce gars a trouvé son code ailleurs je lui en veut pas. c qd meme cool d'avoir ajouté un programme. mais il a tort de se l'aproprier.
voilà je t'ai répondu correctement a ton agression sans m'énerver tu devrait prendre exemple.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
26 sept. 2004 à 17:43
tout le monde n'est pas monoglote todd, ... y a des gens qui s'ouvrent un peu.
todd43 Messages postés 3 Date d'inscription dimanche 26 septembre 2004 Statut Membre Dernière intervention 6 octobre 2004
26 sept. 2004 à 16:45
tu te fout de nous qd tu dit que c ton programme. t'a laissé des commentaires en anglais ;-)
BeNBiBiFoKe Messages postés 12 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 6 octobre 2004
20 juin 2004 à 19:55
A ousta : C'est pour un cours donc la librairie et les fonctions étaient imposées !
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
15 juin 2004 à 23:51
Juste un détail, le vrai nom c'est Xlib et non libx...
cs_ousta Messages postés 95 Date d'inscription mardi 15 juin 2004 Statut Membre Dernière intervention 2 juin 2007
15 juin 2004 à 20:13
T un warrior tu t'est fait un pacman en termcap :D, ca aurait ete plus fun en opengl ou en libx.
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
13 juin 2004 à 17:12
Effectivement, ça compile ( :) ).
J'avais commencé à renommer tous les fichiers en *.cpp et à compiler avec g++ qd j'ai vu ton msg (d'ailleurs, en C++ ça passe pas, vu tous les casts que tu sautes, notamment avec les malloc()s...j'ai pas eu le temps de tout corriger).

Donc, je me retrouve avec les mêmes erreurs que toi mais vu que je ne connais ni NCurses ni ton prog, je te laisse déboguer...bonne chance lol
BeNBiBiFoKe Messages postés 12 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 6 octobre 2004
13 juin 2004 à 16:57
:)
Les erreurs viennet du fait que t'a pas préciser au compilateur que j'utilise le C99 (les boolean par exemple)
Il faut preciser avec l'option --stc=c99

Donc pour cygwin :

gcc --std=c99 PacMan.c PacManInputCurses.c PacManOutputCurses.c PacManOutputCursesCore.c PacManScene.c -o PacMan.exe -lncurses.dll -lpthread


Et ca compile ! Sauf quil parle dun link stdsrc je sais pas koi !
Et quand je lance PacMan.exe, la fonction PmoOpen fait une Fatal Error.
Donc ca veut dire qu'une des fonctions que lancent le mode Curses
foire ds cette fonction :
int pmoOpen() {
return (initscr() &&
cbreak() == OK &&
noecho() == OK &&
nonl() == OK &&
keypad(stdscr, true) == OK &&
leaveok(stdscr, true) == OK &&
curs_set(0) != ERR ) ? 0 : 1;
}

snif....
Je v chercher !!!
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
13 juin 2004 à 16:35
Eurêka !
En fait, Cygwin renomme bcp de librairies statiques (genre libxxx.a) en libxxx.dll.a ; c'est entre-autres le cas de la Xlib et de NCurses.
Mais j'ai pas encore réussi à compiler; avec la ligne de commande :

gcc PacMan.c PacManInputCurses.c PacManOutputCurses.c PacManOutputCursesCore.c PacManScene.c -o PacMan.exe -lncurses.dll -lpthread

j'obtiens les erreurs :

PacMan.c: In function `moveDragons':
PacMan.c:435: error: `for' loop initial declaration used outside C99 mode
PacMan.c: In function `moveGhosts':
PacMan.c:572: error: `for' loop initial declaration used outside C99 mode
PacManOutputCurses.c: In function `pmoWriteString':
PacManOutputCurses.c:75: error: `for' loop initial declaration used outside C99
mode
PacManScene.c: In function `allocateRow':
PacManScene.c:70: error: `for' loop initial declaration used outside C99 mode
PacManScene.c: In function `pmsDeleteScene':
PacManScene.c:112: error: `for' loop initial declaration used outside C99 mode

ce qui est déjà mieux mais c'est pas encore ça...
Je continue encore un peu ma recherche et je poste si je trouve.
BeNBiBiFoKe Messages postés 12 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 6 octobre 2004
13 juin 2004 à 13:43
Oui c'est exact, il connait le fichier curses.h mais pas les fonctions qui s'y rapportent, il faudrait que je me documente


J'ai eu la meme chose en voulant compiler mais comme dit precedemment je n'ai pas le temps de regarder ça pour le moment !!


Merci bien
:)
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
13 juin 2004 à 10:29
Je viens de tester avec la toute dernière version de Cygwin et j'obtiens des erreurs du genre (j'ai pas pu tout copier) :
PacManOutputCursesCore.o(.text+0x17):/cygdrive/f/Downloads2/CPPFRANCE/PACMAN C C
URSES (BeNBiBiFoKe)/PacManOutputCursesCore.c:15: undefined reference to `_cbreak
'
PacManOutputCursesCore.o(.text+0x20):/cygdrive/f/Downloads2/CPPFRANCE/PACMAN C C
URSES (BeNBiBiFoKe)/PacManOutputCursesCore.c:15: undefined reference to `_noecho
'
PacManOutputCursesCore.o(.text+0x29):/cygdrive/f/Downloads2/CPPFRANCE/PACMAN C C
URSES (BeNBiBiFoKe)/PacManOutputCursesCore.c:15: undefined reference to `_nonl'
PacManOutputCursesCore.o(.text+0x3a):/cygdrive/f/Downloads2/CPPFRANCE/PACMAN C C
URSES (BeNBiBiFoKe)/PacManOutputCursesCore.c:15: undefined reference to `_stdscr
'
PacManOutputCursesCore.o(.text+0x42):/cygdrive/f/Downloads2/CPPFRANCE/PACMAN C C
URSES (BeNBiBiFoKe)/PacManOutputCursesCore.c:15: undefined reference to `_keypad
'
PacManOutputCursesCore.o(.text+0x53):/cygdrive/f/Downloads2/CPPFRANCE/PACMAN C C
URSES (BeNBiBiFoKe)/PacManOutputCursesCore.c:15: undefined reference to `_stdscr
'
PacManOutputCursesCore.o(.text+0x5b):/cygdrive/f/Downloads2/CPPFRANCE/PACMAN C C
URSES (BeNBiBiFoKe)/PacManOutputCursesCore.c:15: undefined reference to `_leaveo
k'
PacManOutputCursesCore.o(.text+0x6b):/cygdrive/f/Downloads2/CPPFRANCE/PACMAN C C
URSES (BeNBiBiFoKe)/PacManOutputCursesCore.c:15: undefined reference to `_curs_s
et'

et j'ai fait pour compiler un "make -f Makefile"
et vu le nom des fonctions qui sont "undefined reference" apparemment ce sont des fonctions de NCurses :(
BeNBiBiFoKe Messages postés 12 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 6 octobre 2004
12 juin 2004 à 15:15
J'ai pas réussi à le compiler sur cygwin mais les librairies curses existent...Je n'ai aps réussi car je n'ai pas le temps de chipoter avec ca pour le moment. mais ç'a ma l'air fort possible.

des que jpeux jmetrai l'executable win32
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
12 juin 2004 à 13:18
c pas de la mauvaise volonté, j'ai pas linux moi :/ dsl
BeNBiBiFoKe Messages postés 12 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 6 octobre 2004
12 juin 2004 à 13:16
Alors personne n'a testé ?
C'est bien dommage, aucune note...
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
11 juin 2004 à 20:50
Kirua >> ben oui c'est possible Linux sans gcc qd tu fais une installation catastrophe sur 700 Mo...Pour la version Win32 en fait si c'était possible ce ne le serait qu'avec CygWin vu que Curses (et NCurses) c'est spécifique à Unix (et CygWin) comme l'a dit BeNBiBiFoKe.
Mais bon, vu que mon CygWin est vieux peut-être qu'avec une version actuelle ça compilerait?

BeNBiBiFoKe >> je vais tester tout à l'heure (faudra rebooter sous Nux...flemme là :p
BeNBiBiFoKe Messages postés 12 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 6 octobre 2004
10 juin 2004 à 22:23
voilà, mise à jour effectuée !
BeNBiBiFoKe Messages postés 12 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 6 octobre 2004
10 juin 2004 à 18:35
Bah je regarderais pour win32 mais les curses sons specifiques à Unix.
Néanmoins, le noyau de mon pacman est independant de cette librairie donc c'est facilement adaptable.

Il faudra que je me renseigne. De toute manière, je ne saurais pas faire de màj avant fin de la semaine prochaine a cauze des examens.

Je mettrai l'executable Unix dans le zip quand je serais rentré chez moi.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
10 juin 2004 à 15:30
et si tu pouvais la compiler pr win32 aussi :p ou au moins un screen, pr voir à quoi ça ressemble ;-)
Funto, ça existe Linux sans gcc?? O_o
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
9 juin 2004 à 22:20
J'ai pas pu compiler sous CygWin, et ma distrib Linux est super minimale (même pas GCC) donc pour tester me faudrait un exe, si jamais tu veux le rajouter je te dirai ce que j'en pense ;)
Rejoignez-nous