Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Plague Inc !
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Plague Inc !

Posté le 24/05/2018 18:17

Le projet est terminé !

Vous pouvez trouver la dernière version stable du jeu sur cette page

Une version compilée est également sur la branche dev du Gitea du projet. Attention il s'agit de la dernière version instable.

Si vous avez des remarques d'améliorations, je suis preneur !

Fichier joint


Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9 Suivante
Lephenixnoir Hors ligne Administrateur Points: 24510 Défis: 170 Message

Citer : Posté le 19/02/2019 18:49 | #


Il suffit de prendre la première ligne de la fonction suivie d'un point-virgule. Par exemple pour :

int sum(int x, int y)
{
    return x + y;
}

Un prototype possible est :

int sum(int x, int y);

Tu n'es pas obligé de mettre les noms des arguments mais c'est très conseillé. Tu n'es pas obligé de leur donner le même nom que dans le code, mais c'est plus pratique...

En plus de ça on documente en général les prototypes, par exemple comme ceci (le style des commentaires est à ta préférence) :

/* sum(): Add two integers (like +)
   x: Left operand
   y: Right operand
   Returns x + y. */
int sum(int x, int y);

Tout ça doit être en haut de ton fichier, et en fait ultimement il faut les mettre dans les headers. Mais tu pourras voir plus tard pour les headers.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 19/02/2019 19:18 | #


Merci beaucoup !!
Bon, alors toutes mes fonctions sont prototypées et les void sont mis
Demain, j'essayerai de rajouter des fonctions... Mais je ne sais pas quoi mettre dedans... (je te l'accorde je suis pas très doué en C... ) Je fais quoi comme fonction du coup, et qu'est-ce que je met dedans ?

"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 24510 Défis: 170 Message

Citer : Posté le 19/02/2019 19:20 | #


Tu prends le code qui existe déjà dans les très grosses fonctions et tu coupes en morceaux. Par exemple le code qui dessine ton écran de jeu... mets-le dans une fonction à part.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 19/02/2019 19:23 | #


Ah oky je ferais cela demain alors
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 20/02/2019 14:55 | # | Fichier joint


J'ai rajouté des fonctions et je voudrait savoir si c'est comme cela que tu envisageait la chose (les nouvelles sources sont en PJ )

Ajouté le 20/02/2019 à 16:11 :
Pour Plague, j'aimerai utiliser une police d'écriture que je dessinerai... J'ai cru comprendre que c'est possible grâce à Better Front, mais j'aimerai savoir comment... Merci d'avance
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 24510 Défis: 170 Message

Citer : Posté le 20/02/2019 16:12 | #


Voilà c'est bien ! N'oublie pas de mettre une description de ce que la fonction fait en commentaire au-dessus, comme je l'ai indiqué

Lorsque tu t'attaqueras aux variables globales tu utiliseras beaucoup plus les paramètres des fonctions donc ce sera important d'avoir une idée claire de ce à quoi ils servent.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 20/02/2019 16:18 | #


Oky

Alors ? ces structures ? Comment ça marche ?
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 20/02/2019 18:31 | # | Fichier joint


J'ai réussi à diminuer le nombre de variable globale et j'ai augmenter le nombre de fonctions mais il reste encore du travail...
Les dernières sources en PJ
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 24510 Défis: 170 Message

Citer : Posté le 20/02/2019 19:06 | #


C'est bien ! Essaie de te débarrasser de toutes les variables globals sur la position des avions et la répartition de ta population.

Si tu as des constantes dans le paquet, marque-les bien avec const.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 20/02/2019 19:08 | #


Je n'ai aucune constantes le problème est que je n'ai pas compris comment déclarer mes variables en local pour qu'elles ne soient déclarées qu'une seule fois...
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 24510 Défis: 170 Message

Citer : Posté le 20/02/2019 23:14 | #


Il suffit de les déclarer dans une fonction qui n'est appelée qu'une seul fois, comme AddIn_main().

De façon générale, voilà comment faire.

1. Demande-toi combien de temps la variable vit.
2. Déclare la variable dans la fonction qui a la bonne durée de vie.
3. Si une sous-fonction a besoin de la variable, passe-la en paramètre.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 21/02/2019 08:17 | #


Ah okay !! Donc je déclare tous mes tableaux de coordonnées dans mon main Puis je les envoies en paramètres. J'ai compris... Le problème que j'ai ce je ne sais pas faire passer le tableau et non une copie de lui-même Ensuite pour le modifier il faudra utilisé des pointeurs c'est cela ?
Je ne suis pas très familier des pointeurs...

Je crois me souvenir qu'un pointeur sur une variable c'est *variable mais du coup j'ai un doute : si j'ai déclaré variable dans mon main et que j'envoie variable comme paramètre pour modifier variable dans ma_fonction j'ai besoin d'un pointeur jusque là c'est bon...

Ensuite dans ma_fonction je met le code suivant pour modifier la valeur de variablede façon à ce que la valeur soit changée dans le mainaussi : (j'en arrive au code) *variable = 2; et là même dans mon main, variable est égale à deux ?
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Hackcell Hors ligne Maître du Puzzle Points: 1530 Défis: 11 Message

Citer : Posté le 21/02/2019 08:46 | #


Si j'appelle un tableau tab, alors tab est un pointeur (constant)vers la première case du tableau.

Pour le passer à une fonction tu écris donc juste tab, puis pour modifier tu écris tab[i] = 2, avec i la case que tu veux modifier

Ajouté le 21/02/2019 à 08:56 :
Puis tu confonds encore la déclaration et le reste…

Pour declarer un pointeur, j'écris int *variable, et dans ce cas, variable sera un pointeur de type int, pour accéder au contenu tu devra donc écrire *variable.

En revanche si tu déclare int var, alors var est une variable de type int, et dans ce cas pour obtenir un pointeur vers var on écrit &var.

Sinon tu devrais vraiment lire un cours sur le C en entier avant de continuer, ça ira plus vite pour tout le monde ♥
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 21/02/2019 13:05 | #


Okay merci ! Je confond pas déclaration de pointeurs et variables, je voulais juste être sûr qu'il me fallait des pointeurs. En fait, (j'avais oublié) les tableaus sont des pointeurs vers la case entre crochets donc du coup ça résout tous mes problèmes ! Merci !!

J'ai lu un cours sur OpenClasseroom mais je ne comprends pas...
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 24/02/2019 19:20 | #


Salut Shadow ! Il semblerait que tu ait besoin de savoir en quoi consiste la sévérité, non ?
Alors la sévérité est une stat qui influence notamment la vitesse de recherche ( plus sa valeur est élevée, plus la recherche va vite). La sévérité augmente au fur et à mesure que le joueur achète des symptômes. Tous les symptômes n'augmentent pas la sévérité, tout comme d'autres l'augmentent beaucoup.
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 24/02/2019 19:47 | #


Coucou ! Merci beaucoup !
Donc il faut que je prenne en compte la Sévérité pour le calcul de la priorité de recherche qui fait augmenter la recherche elle-même... Plus cette sévérité est haute, plus haute est la priorité donc la recherche va plus vite... C'est bon ?
Et concernant les points ADN ? y-t-il un lien entre les deux ou pas ?
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 24/02/2019 20:22 | #


Non, il n'y a pas de lien entre les points d'ADN et la sévérité. Sinon tu as bon !
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 27/07/2019 20:27 | #


Cet été, j'ai voulu reprendre mon projet 'Plage inc'… J'ai donc repris mon vieux dossier du SDK Casio, je l'ouvre je fouille parmi la multitude de fichiers aussi nombreux qu'inutiles et je tombe sur… plague.c mon petit projet (le plus vieux : je me traine ce truc depuis 2 ans… ) je l'ouvre et là je manque de défaillir…
Mais qu'est-ce que c'est que cette merde !?

J'ai osé appelé ça un code ? Naan, pas moi ? Sii ? Mon dieu ! Bon je prend mon chiffon et je met le dossier entier à la corbeille… Après ce bref instant de terreur pure, je reprend mes esprit, vais chercher les images qui ont survécut au temps et lance Gitea. Je bataille quelques instant avec ma console… Au bout de quelques minutes, nouveaux dossier propre, projet sur gitea, dépôt cloné et brouillons sur les genoux, j'ouvre le nouveau fichier plague.c décider à arrêter le bullshit une bonne fois pour toute !

Le code compile et marche plutôt bien ! Tous les détails de la doc très prochainement dans un readme avec le nouveau dépôt ici : https://gitea.planet-casio.com/Shadow/Plague

Les images sont déjà rassemblées en tileset et prête à être intégré au projet ! Je reprend tout de A à Z (sauf les brouillons qui sont au point)… Les images sont les mêmes donc rien de nouveau de ce côté.
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 24510 Défis: 170 Message

Citer : Posté le 27/07/2019 20:35 | #


Ha ha, j'ai fait ça souvent aussi... il y a du code (genre mon vieux g1a-wrapper) que j'ai honte de regarder tellement c'est mal écrit

Content de voir que tu prends des bons réflexes (Gitea FTW) et merci d'utiliser le fxSDK !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Breizh_craft Hors ligne Modérateur Points: 1171 Défis: 7 Message

Citer : Posté le 27/07/2019 20:50 | #


https://lesjoiesducode.fr/quand-jouvre-un-de-mes-anciens-devs-2

C'était le message utile de la journée.
Breizh.pm – Un adminsys qui aime les galettes.
Ne0tux Hors ligne Membre d'honneur Points: 3525 Défis: 265 Message

Citer : Posté le 28/07/2019 11:16 | #


https://lesjoiesducode.fr/quand-je-tombe-sur-un-de-mes-tous-premiers-devs

C'est de ta faute Breizh, je savais pas que c'était possible de perdre en productivité à cause d'un site drôle... un Dimanche matin !

A ceux qui trouvent que nos deux messages sont HS, je leur réponds que c'est une épidémie de gifs drôles, donc tout à fait dans le topic
Mes principaux jeux : Ice Slider - CloneLab - Arkenstone

La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 179 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd