Attention ! J'ai dit "dans l'idéal" mais la plupart du temps il y en a, ne serait-ce que des variables de boucle ("i", "j" ...). Il faut qu'il y en ait le moins possible, c'est plutôt ça.
Version imprimable
mais alors on tape tout dans des unités, il reste quoi ds le main ?
ça me fait penser au langage C (j'avais potassé un tuto en Janvier)
Dans le cas de ton jeu, je suppose que dans le prg principal il y a l'appel de toutes les procédures et fonctions globales, dans le bon ordre selon les différentes phases de jeu, ça fait déjà pas mal, normalement.
Ce qui fait que, par exemple, si tu veux modifier ton décor ou tes personnages, ce n'est pas une affaire d'état : tu modifies essentiellement une unité (et peut-être quelques dépendances mais c'est même pas sûr).
En fait le prg principal doit être vu comme le pivot central de toute l'application qui reçoit et échange des informations avec toutes les unités.
En effet, c'est comme un programme en C bien écrit ([TROLL=On] mais en plus c'est lisible [TROLL=Off] :dehors: )
:mrgreen:
Merci mes amis, j'ai de quoi plancher pour organiser tout ça, demain j'aurai peu de temps mais vendredi je vais m'y atteler sérieusement, je vous transmettrai ma copie alors, bien sûr j'aurai sûrement des question pdt cette révolution
allez zou, en avant les Unités !! :lefou:
preparez la camisole au cas où je disjoncterai :bug:
encore un exemple :
Code:
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 <Main> (interfaçage, lancement, sauvegarde, chargement...) | +-> <RPGEngine> (gestion du jeu principale, game loop) | +-> <RPGCommon> (types, constantes, outils) +-> <RPGConfig> (configuration du jeu, règles) +-> <RPGRawPck> (gestion des fichiers du jeux, sauvegardes...) +-> <RPGDebug> (fonction de deboggage) | +-> <RPGActions> (gestion des actions) | | | +-> <RPGQuests> (gestion des quetes) | +-> <RPGChars> (classes personnages) +-> <RPGItems> (classes objets du jeu, potions, armes, armures) +-> <RPGSkills> (classes sorts et compètences) | +-> <RPGShower> (gestion de l'affichage) | +-> <RPGShwVCL> (pour la VCL : delphi) +-> <RPGShwDos> (pour le mode DOS : turbo pascal/TPW) +-> <RPGShwShell> (pour le mode console : Win32) +-> <RPGShwGDI> (pour le mode GDI : delphi) +-> <RPGShwOGL> (pour le mode OpenGL : delphi) +-> <RPGShwDX2D> (pour le mode Direct2D : delphi)
bon j'ai à peu réussi à créer 2 unités, mais effectivement j'aurai du le faire dès le début, car là c'est pas évident de tout séparer car j'ai un peu tout mélanger :oops:
mais bon c'est mon premier programme en pascal qd même :aie:
Du coup je préfère lacher TPW pour basculer sur un EDI moderne, bref je suis encore vos conseils, je prèfère souffrir un peu pour apprendre à l'utiliser et bosser directement le RPG dans cet outil.
Delphi6 est fabuleux, surtout avec le cours de Mr Beaulieu, mais impossible de le réinstaller (le numéro de série du tuto est refusé par borland) du coup je préfère carrément me mettre à Lazarus, qui lui ressemble comme 2 gouttes d'eau.
allez zou, je zappe
dois je continuer à papoter ici ?
je suppose qu'il faut que je crée un sujet ds le forum ad hoc ?
http://img46.imageshack.us/img46/6651/chevaliers1.jpg
Pour résumer la substantifique moelle de tous vos conseils et de ma pratique:
pour faire un JDR (RPG) en Pascal:
si qqu'un est interessé par mon "truc" qu'il hésite pas, mais je ne sais pas comment l'uploaderCitation:
1- tout concevoir sur papier: règles, scénario, combats, etc...
2- choisir un EDI performant (compilateur FreePascal)
3- concevoir des modules spécialisés (unités)
4- savoir créer des fichiers sur le disque dur: monstres, armes, objets, héros, ...
5- bien séparer les données, leur traitement, l'affichage
6- si possible utiliser la POO pour les monstres et personnages
7- avoir une bonne cafetière et de l'aspirine
8- et SURTOUT ! : être inscrit ds les forums de Developpez.com :mrgreen:
voila tu as tout compris!
Alors pour le choix de lazarus, trés bien. attention, il n'est pas aussi stable que Delphi peut l'être.
mais j'ai bon espoir que la version 2.4.0 de FPC et la prochaine version 1.0 de lazarus viendront regler tout ça.
tu l'as constater par toi même, un mauvais choix dans la méthode de programmation dés le départ, entraine 10 fois plus de travail quand on recfact le tout.
le meilleur moyen, considérer son vieux code comme un exercice de style en mode "not do that" (ne pas faire cela).
ne t'inquiete pas, les meilleurs d'entre nous on généré des Tera-octets de code source en mode NDT!
mon disque dur en est remplis et j'imagine bien que le disque des autres le son autant.
tout recommencer dés le début, refaire le code clairement au propre.
comme tu l'as dis, bien mettre au propre, sur papier la guide-line du programme.
c'est elle qui vas t'indiquer ce qu'il faut faire en premier et ainsi de suite.
tu ne peux pas faire les gestion de combats avant d'avoir ta classe personnage, arme, armure, monstre.
tu ne peux pas faire la gestion des dégats avant d'avoir ta classe de sorts et compétences et armes etc.
l'affichage, viens en dernier! le game loop viens avant dans la classe du jeu qu'on pourrait nommer TRPGame qui posséderas toute les actions etc.
un exemple de ce qu'il pourrait donner dans le main :
Code:
1
2
3
4
5
6
7
8
9
10 var RPG : TRPGame; begin RPG := TRPGame.Create; try RPG.Start; finally RPG.Free; end; end;
et un dernier truc, avec lazarus/FPC, tu vas pouvoir surcharger les operateurs!
ça se déclare comme une fonction :
Code:
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 operator := (const A: integer): string; begin result := IntToStr(A); end; operator := (const A: string): integer; begin result := StrToInt(A); end; // ce qui permet de faire : var S : string; L : Longint; begin S := 1024; // = chaine '1024' L := S; // = nombre 1024 issue de la chaine S end; //c'est pratique pour par exemple, traiter les types structuré (record) avec des operateur simple. //exemple : type TPoint = record X, Y : integer; end; operator = (const A, B: TPoint): boolean; begin result := (A.X = B.X) and (A.Y = B.Y); end; operator >= (const A, B: TPoint): boolean; begin result := (A.X >= B.X) or (A.Y >= B.Y); end;
Pour la POO, c'est vrai qu'il vaut quand même mieux avoir bien compris les bases du langage en procédural avant de coder des objets (je sais que certains disent exactement le contraire, mais je pense que la POO introduit un niveau d'abstraction supplémentaire dans la façon de penser le développement). En tout cas la compréhension des pointeurs me semble nécessaire.
Cela dit il ne faut pas attendre pendant des mois et des mois (ou des années ) non plus, sinon les habitudes prises sont beaucoup plus difficiles à modifier : je sais de quoi je parle.
Tu as bienfait de laisser tomber TP7 pour pouvoir utiliser les classes de FPC/Lazarus - Delphi sinon c'est l'enfer.
C'est vrai que Lazarus n'est pas tot à fait aussi stable que Delphi (mais qu'est-ce qui est aussi stable que Delphi ?) cependant c'est quand même stable si on n'utilise pas les versions de dév.
oui richard, mais 2 mois sous TPW finalement ça m'a rodé, car vraiment il n'y a que du code et rien d'autre
sinon je viens de déjeuner à coté d'un jeune developpeur, il m'a conseillé de plutôt zapper le pascal pour des produits plus modernes comme visual Basic et surtout il m'a fortement recommandé WinDev Express
arf, j'en peux plus, là, vous en pensez quoi ?
Plus modernes ? J'aurai plutôt pensé à Java ou C#... Quoiqu'il en soit, le pascal n'est pas un vieux tromblon inutilisé, c'est un langage qui date mais qui a su s'adapter, ne serait-ce que pour la programmation Objet par exemple (qui n'était pas présente dans les premières versions), et qui reste encore en vigueur.
Encore faut-il pouvoir définir le terme moderne pour un langage de programmation... Les langages orientés web sont des langages très modernes puisque très en vogue. Mais l'assembleur n'en reste pas moins moderne puisque encore très utilisé pour coder des choses au bit près. Moderne ou pas moderne, il faut plutôt choisir son langage (ou sa plateforme de développement) en fonction du programme qu'on veut créer ;)
c'est quand même difficile pour un noob passionné, on a l'impression d'une guerre de religion dans laquelle chacun prêche pour sa chapelle, moi ce qui m'intéresse ce sont les jeux, comme ce RPG, évidemment pas pour être diffusé mais juste pour le fun
alors je fais quoi je continue à foncer tête baissée ds Lazarus ? ou je me dis j'ai bien appris , j'ai une petite culture procédurale mais je ne cherche pas non plus à devenir un pro, j'en suis bien incapable, et je m'oriente sur un produit plus convivial ?
pour le moment je trouve Delphi/Lazarus super conviviaux et visiblement super balèzes, mais bien sûr je ne connais que ça
maxiNoob, maxiPaumé :aie:
Bonjour,
Par quoi commencer en programmation est un débat récurrent. Je te conseille de prendre le temps de parcourir les différentes discussions sur le forum Langages en général / Débuter.
Par exemple celle-ci : http://www.developpez.net/forums/d76...-fonctionnels/
Cela devrait te permettre de découvrir à peu près tout ce qui existe et d'orienter ton choix, en fonction de tes aspirations et goûts personnels et en fonction des différents conseils donnés sur les débats.
;)
n'importe quel developpeur voudra te vendre son langage de prédilection...
ceux qui bosse en C++ te vendront du C++
ceux qui bosse en VB te vendront du VB
ceux qui bosse en Python te vendront du python
un peu comme pour les OS,
les pro-windows te vendront du win
les pro-linux te vendront du linux
les pro-mac te vendront du mac
etc.
tout les devs ou presque sont des marchands de tapis... :mouarf:
de toute façon, peut importe le langage, les contraintes et concepts reste les mêmes.
tu pourrais également le faire en 4D, en ADA ou en Flash/AS, en SilverLight, en PHP/MySQL, etc etc.
il faudra quand même comprendre les concepts du langage, les concepts communs de la programmation, les exclusivités et les lacunes de la plateforme finale etc.
reste sur Lazarus/FPC ... c'est trés bien.
> merci Alcatiz, j'ai parcouru le sujet sur le langage pour débutant, il ressort que la majorité recommande Ada/Pascal pour les débutants, quitte à zapper ensuite selon les besoins.
> merci Doc, tj fidèle aux appels de détresse, un vrai Doc quoi :mouarf:
c'est le genre de réponse que j'espérais :D
Je me replonge ds Lazarus et le cours de Beaulieu sur Delphi
concernant le JDR, je continue ici ou je crée un sujet ds le forum Lazarus ?
pour l'instant ton sujet à dérivé sur le principe même de la méthodologie à appliquer à cet exercice.
il n'a plus vraiment sa place ici.
dés que tu aura un problème avec lazarus/fpc, poste sur le bon forum.
de toute façon, je pense que l'on à ici, un sujet qui prend fin.
tu as bien fait de venir à un IDE plus recent. cela facilitera l'implémentation de ton code et surtout les possibilités.
Il est plus facile de faire de la route avec une voiture, qu'avec une carriole tirée par des boeufs.
Mais il faut parfois avoir connus la carriole et les boeufs pour apprécié deux fois plus la voiture.
merci les gars, après toutes ces hésitations je vais me réinvestir avec mes bouts de code, je vais qd même pas tout jeter :calim2:
je comprend que sur tPW il fallait concevoir tout en unités selon le plan que le doc m'avais indiqué, mais sous lazarus, tout est classé par fenêtre, aussi c'est completement différent
A très bientôt donc ds "Faire un JDR sous Lazarus "
maxi, noob, mais obstiné 8-)
:mouarf3:
La dernière mise à jour de Visual Basic est la version 6.0, sortie en 1998. Le support étendu Microsoft a pris fin en 2008 !!
Ou alors il parle de VBNet ? Mais confondre les deux, c'est grave, ce sont deux langages qui n'ont quasiment rien à voir, que ce soit au niveau de la syntaxe ou du framework etc.
Sans entrer dans les "guerres de religion" il faut savoir qu'il y a un gros préjugé contre le Pascal qui est malheureusement utilisé par beaucoup d'étudiants en info dans la version TP 7 du coup beaucoup de ces étudiants croient que le Pascal n'a plus évolué depuis ...
Par ailleurs Python est très bien (mais pas compilé), C++ est très puissant (même si je n'ai jamais été fan de la syntaxe), Java est très répandu (mais pseudo compilé), etc. Grosso modo, quand tu grattes, beaucoup de langages se ressemblent finalement. Il vaut mieux maîtriser un langage correct, simple et régulier comme Pascal Objet qu'en survoler une dizaine. Sans compter que par sa rigueur le Pascal te permettra de changer assez finalement si tu le décides par la suite.
T'as vu les prix ? Si tu veux faire des applis client-serveur sans trop savoir programmer, OK. Sinon c'est quand même pas terrible pour le prix. Je ne sais même pas si c'est multiplateforme ...
Change de restau ! :D
oui oui merci richard
Bon il s'agissait qd même d'un jeunot fraichement sorti d'un BTS, aussi j'en prend mais j'en laisse, il m'a p-e parlé de VBNet, j'ai pas tout retenu non plus, l'erreur vient surement de moi. :mrgreen:
pour moi ça n'a guère d'importance car c'est pour m'amuser, mais pour un job je conçois que le choix mérite réflexion
arf j'ai essayé de valider le S/N de delphi6, arf impossible, je dois donc utiliser lazarus avec le cours sur Delphi, mais c'est vraiment son clone, ya pas de procès pour plagia là ?