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: 5504 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 En ligne Administrateur Points: 24676 Défis: 170 Message

Citer : Posté le 09/02/2019 17:22 | #


Ça touche à de l'analyse numérique. Voici l'idée.

Tu as les valeurs à l'instant t : A(t), B(t), etc. Tu calcules les dérivées A'(t), B'(t)... dont tu connais les formules.

Ensuite tu dis « je simule pour un pas de temps dt » et tu poses A(t + dt) = A(t) + dt * A'(t) en espérant que la dérivée ne change pas trop pendant cette durée. Si dt est assez petit, c'est précis.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5504 Défis: 18 Message

Citer : Posté le 09/02/2019 17:24 | #


J'ai trouvé une alternative excuse-moi...
J'utilise en fait une suite avec des coefficients c'est plus simple et les résultats sont aussi bien !

J'ai fini les images et j'ai débuté le code
"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 En ligne Administrateur Points: 24676 Défis: 170 Message

Citer : Posté le 09/02/2019 17:26 | #


Tant que ça approxime l'équation différentielle on s'en fout je suppose...
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5504 Défis: 18 Message

Citer : Posté le 09/02/2019 17:35 | #


Oui j'ai trouvé :
S = S_av - S.c
I = I_av + S_av. c - I_av.gu - I_av.m
G = G_av + I_av.gu
M = M_av + I_av.m



S = Nbr de personne saine le jour J
I = Nbr de personnes infectées le jour J
M = Nbr de personnes mortes le jour J
G = Nbr de personnes guéries le jour J

S_av, I_av, M_av et G_av représentent les sains, les infectés, les morts et les guéris au jour J-1
c = taux de contagion
m = taux de mortalité
gu = probabilité de guérir et d'être immunisé de la maladie


"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 En ligne Administrateur Points: 24676 Défis: 170 Message

Citer : Posté le 09/02/2019 17:44 | #


C'est exactement l'idée, mais tu as peut-être envie de multiplier tes incréments par un dt pour contrôler la vitesse de la simulation et la précision de l'approximation.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5504 Défis: 18 Message

Citer : Posté le 09/02/2019 17:45 | #


Ben je fait une suite quoi... donc chaque jour, je re-calcul tout ça
"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 En ligne Administrateur Points: 24676 Défis: 170 Message

Citer : Posté le 09/02/2019 17:49 | #


Vois-le comme ça : tu as peut-être envie de le calculer toutes les 12 heures à la place (si tu calcules à des instants trop éloignés ça peut diverger violemment).

D'ailleurs :
S = S_av - S.c

Tu veux dire S = S_av - S_av.c ou S = S_av / (1 + c) ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5504 Défis: 18 Message

Citer : Posté le 09/02/2019 17:51 | # | Fichier joint


Je veut dire S = S_av - S-ac.c
Pour le calcul, le jeu intégrera une gestion du temps : toutes les 30 secondes (ou toutes les minutes) le jeu avance d'un jour virtuel et tous les calculs sont refait

Deux choses :

J'aurais besoin de votre avis sur un point purement du gameplay et de l'ergonomie : le temps d'une journée !
En effet mon code comportera une grande boucle while qui tournera tant que la journée n'est pas finie : au programme durant les journées, gestion des touches, et des déplacements des avions, ainsi que le calcul du temps pour savoir où on en est
Dès que la journée est finie : calcul des morts, sains, infectés,... etc
Le problème est que d'un point de vue pratique, une journée ce serait bien qu'elle dure : 30 secondes ou 1 minute ? Dans le cas de 30 secondes un mois durerait environ 15 minutes et un an, 3 heures. Alors qu'avec une minutes on arrivé à des mois d'une demi-heure et des années de 6 heures... Je ne sais pas trop quel est le meilleur choix donc je me tourne vers vous !

La seconde chose est que mon programme démo BASIC comportait jusqu'alors une licence, du fait que je ne travaille plus dessus, je ne vois plus l'interêt de "privatiser" ce programme, j'enlève donc la licence, permettant ainsi à n'importe qui de s'approprier le travail et le code effectués.



Je suis encore coincé mais cette fois-ci il s'agit d'une erreur qui me dit quelque chose... mais je ne sais plus comment la résoudre... Voici : Lorsque je lance l'émulateur du SDK, l'execution s'arrête brusquement, la fenêtre d'édition de MonochomeLib.c passe au premier plan. Lorsque je veux relancer l'excution, un pop up gris et jaune ma graisse... euh non, m'agresse et me dit :
PopUpÀLaCon a écrit :
Execution has stopped due to an error!
Noexisting memory by data read access at FFFFFFE4


Merci d'avance !

Je met les sources en PJ
Le SDK me met direct sur la fonction ML_bmp_or() tous mes sprites sont en const unsigned char et sont appelés soit par ML_bmp_or() soit ML_bmp_xor()
please... heelp...
"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 En ligne Administrateur Points: 24676 Défis: 170 Message

Citer : Posté le 12/02/2019 07:51 | #


Urh, ce code. T'as vérifié la valeur des pointeurs au moment où tu fais le dessin ?

Les flottants pour compter par pas de 0.1 ça ne marche pas ; c'est bien connu.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5504 Défis: 18 Message

Citer : Posté le 12/02/2019 08:13 | #


Le problème doit effectivement venir des flottants... Existe-t-il un autre type plus précis ? Ou alors stocker des infos dans la partie décimale c'est vraiment dégeulasse ?
"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 En ligne Administrateur Points: 24676 Défis: 170 Message

Citer : Posté le 13/02/2019 07:41 | #


Stocker les infos dans la partie décimale c'est vraiment dégueulasse. Fais deux entiers !

Le jour où tu as des problèmes de place, tu reviens me voir et on pourra parler de solutions élégantes.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5504 Défis: 18 Message

Citer : Posté le 15/02/2019 20:34 | #


Bon, je re-verrais le système alors
J'ai également refait le logo Plague >_<' ça m'a pris 2 heures mais le résultat est... bluffant

Ajouté le 17/02/2019 à 19:13 :
Comme promis voici les écrans titres :






Si vous avez une préférence merci de m'en faire part : cet écran ouvrira le jeu
Je suis également ouvert aux idées d'amélioration des écrans-titre
"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

Redeyes Hors ligne Membre Points: 634 Défis: 7 Message

Citer : Posté le 17/02/2019 19:42 | #


J'aime beaucoup le deuxième écran personnellement.
Lephenixnoir En ligne Administrateur Points: 24676 Défis: 170 Message

Citer : Posté le 17/02/2019 20:05 | #


Wow, excellent ! Je serais plutôt pour le second, même si la suprématie du logo est un peu triste.

Excellent design et très très beau rendu, je suis impressionné.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5504 Défis: 18 Message

Citer : Posté le 17/02/2019 20:15 | #


Merci beaucoup de vos retours !
J'ai une préférence pour le second aussi
Le problème du logo est que si je le met en plus petit, le logo perd en rendu et devient moins joli... mais le rendu final donne quand même un style sombre...

Plague inc étant un jeu très graphique (le gameplay et les dessins sont magnifiques) je met le paquet la dessus aussi pour pouvoir dire que c'est une adaptation correcte mais ça prend du temps... beaucoup de temps
Je pensais enlever les fioritures sur le "PLAGUE" pour plus de lisibilité faudra que j'essaye
"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 En ligne Administrateur Points: 24676 Défis: 170 Message

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


Est-ce que ça t'intéresse si j'essaie de faire le logo en un peu plus petit, par exemple 48 pixels de haut ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Lephenixnoir En ligne Administrateur Points: 24676 Défis: 170 Message

Citer : Posté le 17/02/2019 20:25 | # | Fichier joint


Finalement j'ai essayé, ça allait plus vite.


Décent, pas décent ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5504 Défis: 18 Message

Citer : Posté le 18/02/2019 08:09 | #


Ah ouais la classe je pensais pas que cela serait aussi beau je met le tien dans le second écran titre des que possible

Ajouté le 18/02/2019 à 14:10 :
J'ai refait le second et j'ai eu l'idée (et la patience ) d'en faire un troisième :





Voila si il y en a un que vous préférez...
"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 En ligne Administrateur Points: 24676 Défis: 170 Message

Citer : Posté le 18/02/2019 14:42 | #


Le troisième est sympa je trouve !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5504 Défis: 18 Message

Citer : Posté le 18/02/2019 14:45 | #


Moi aussi : il est plus clair et sobre, moins chargé
"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 En ligne Administrateur Points: 24676 Défis: 170 Message

Citer : Posté le 18/02/2019 14:51 | #


Quelques suggestions :

* Un peu moins de background autour de la phrase "Can you infect the world" pour aligner un peu plus ?
* Arrondir un peu les O (par exemple éliminer le pixel en bas à droite) ?
* Ajouter un point d'interrogation à la fin de la phrase ?
* Améliorer la résolution du logo ? Je pense que tu peux garder cet aspect « carré » sans faire du 2x2.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
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 103 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