Seuls les membres ayant 30 points peuvent parler sur le chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Tamagotchi ou la gestion du temps en C
Shadow15510En ligneAdministrateurPoints: 3834 Défis: 15 Message

Tamagotchi ou la gestion du temps en C

Posté le 17/08/2018 14:37

Bonjour à tous !!
Oui oui je sais je ferais mieux d'arrêter les conneries et de terminer mes anciens projets... Mais je le avance petit à petit dans l'ombre et le silence (mais si c'est vrai !)
Désireux de progresser en C j'ai eu l'idée de me familiariser avec le système de tics inclus dans la calto et qui permet de mesurer le temps (comme vous en savez plus que moi sur le sujet je demanderais sans doute un peu d'aide ) oui oui c'est bon : j'ai déjà vu, lu signé et approuvé le tuto qui en parle.
Passons au cœur du projet : vous connaissez tous les Tamagotchi : ces petites consoles vendu au Japon vers la moitié des années 90 (1996 au Japon et 97 en Europe pour être précis). Le but et de chouchouter, pouponner et nourrir un petit animal virtuel dans le but de le faire... vivre... oui oui c'est ça le but ultime par le tuer en un minimum de temps... je vois votre déception d'ici.
Bon pour mon premier jet je vais essayer de faire un truc le plus basique possible (mais je le fait en C) J'ai déjà mis sur pied mon systèmes de points et tout je fais mes sprites prochaines étape : le code.

J'ai hiérarchisé mes idées en plusieurs catégories :
les Actions
On fait des actions grâce au touche F1~F5
F1 : lui donner à manger
F2 : aller au Wc (j'invente rien c'est dans le jeu original...)
F3 : le laver
F4 : jouer
F5 : le faire dormir
Voila pour les Actions disponibles

les Points
Je les ai subdivisé en 5 catégories :
-Pts d'équilibre (eq) correspond à l'équilibre de son alimentation
-Pts d'énergie (en) rien d'extraordinaire vous savez à quoi ça sert l'énergie...
-Pts de faim (f) correspond à la satiété : plus on a de Pts de faim moins il a faim...
-Pts d'humeur (hu) Si il en a beaucoup il est sympa sinon il te fait la gueule
-Pts d'hygiène (hy) Comprenez la propreté.

gestion du temps
Avec les temps les points évolue.
Les points :
-d'énergie
-de faim
-d'humeur
-d'hygiène
perdent 2 par heures

Le temps intervient également dans les envies du moment attention : ces envies relèvent non pas des besoins de l'animal mais de sa "volonté" ainsi il aura envie :
-de manger toutes les heures
-de jouer toutes les deux heures
-d'aller au Wc toutes les 2h30
-de se laver toutes les 4 heures
-et de dormir toutes les 5 heures

les Stats
Elles seront composées de jauges aves un petit logo devant qui indiques quel points la jauge représente.
Un petit éclair pour l'énergie, un savon avec des bulles pour l'hygiène, une fourchette pour la faim, et une balance pour l'équilibre.
Les stats pourrons être appelées via [OPTN]

Manger
Cette action m'étant fort sympathique j'ai décider d'étayer les choix...
Le joueur pourra choisir entre plusieurs mets ayant chacun leurs bon et les mauvais points...
-Le bol de riz : eq+2 / en+80 / f+100 / hu-5 / hy-30
-le burger : eq-10 / en+80 / f+80 / hu+10 / hy-30
-le gâteau : eq-5 / en+50 / f+100 / hu+10 / hy-30
-la soupe : eq+10 / en+50 / f+80 / hu-5 / hy-30
-le lait : eq+5 / en+20 / f+20 / hu+5 / hy-30
-le soda : eq-2 / en+10 / f+10 / hu+5 / hy-30
Voila
Lorsque la touche F1 est pressée, le bord droit de l'image se décale vers la gauche ménageant ainsi un espace dans lequel vous aurez deux flèches de part et d'autre du logo de la nourriture place au milieu. En dessous le nom de la nourriture apparaitra et en haut un indication : "[F1]⇒Ok [F6]⇒Non"


les autre Actions et les Points
Toutes action interagissent avec les points :
-manger (déjà fait)
-aller au Wc : en-5 / hy+20
-jouer : eq+5 / en-20 / f-20 / hu+20 / hy-20
-dormir : en au max / f-80 / hu+60 / hy-60
-le laver : en-20 / f-20 / hu+20 / hy+80

les Jeux
Le menu des jeux se présente de la même manière que celui pour manger sauf que le logo est celui du jeu en question et le nom de la nourriture est remplacer par une règle succincte du jeu.
Exemple : le logo est une balle qui tombe et la règle est "Attrapez les balles".
Les points pourrait varier d'un jeu à l'autre mais je n'en suis pas là.
J'ajouterais surement "faire une balade" et "caresser" et pis après je m'en remet à vous

Dans les améliorations à venir noter que j'ai l'intention de mettre sur pied un système qui permet de faire communiquer les Tamagotchi entre eux comme les vrais...

Je pense que j'ai fait le tour de l'état du projet théorique actuel.



Etat du projet...
...en ruines

Le code de compatibilité SH4 doit être nettoyé
la créations de fonctions pour l'affichages des animations fait !
utilisation des matrices Inutile


Fichier joint


Pages : Précédente1 ... , 5, 6, 7, 8, 9, 10, 11Suivante
Shadow15510En ligneAdministrateurPoints: 3834 Défis: 15 Message

Citer : Posté le 24/08/2018 11:39 | #


C'est cela : je suis sur le SDK Et si le syscall RTC_GetDateTime existe : ici
"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

Moral
   95%
LephenixnoirEn ligneAdministrateurPoints: 15799 Défis: 136 Message

Citer : Posté le 24/08/2018 11:45 | #


Ça c'est un syscall Prizm/Graph 90 tu sais ! La Graph 85 n'a pas de tel syscall documenté : https://bible.planet-casio.com/simlo/chm/v20/fx_legacy_RTC.htm

Il existe sans doute, mais il faudrait encore le trouver. Peut-être pas si dur d'ailleurs !
Shadow15510En ligneAdministrateurPoints: 3834 Défis: 15 Message

Citer : Posté le 24/08/2018 11:48 | #


Ah oui d'accord... ça me complique sérieusement la tache... bon ben il n'y a plus qu'a chercher alors... J'ai trouvéunc autre programme qui a pour but de donner la date et l'heure : omgclock : je l'ai actuellement sur ma calto je vais fouiller les sources il doit bien y avoir un syscall
"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

Moral
   95%
Shadow15510En ligneAdministrateurPoints: 3834 Défis: 15 Message

Citer : Posté le 24/08/2018 12:11 | # | Fichier joint


Je crois que j'ai trouvé un truc...
je vous met les sources de omgclock en PJ ce sera plus simple
"lib" "rtc" "src" "getdate.c" Ça pourrait être ça non ?
"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

Moral
   95%
LephenixnoirEn ligneAdministrateurPoints: 15799 Défis: 136 Message

Citer : Posté le 24/08/2018 12:22 | #


Ah mais ouiii, c'est un truc de Cake. Récupère toute la lib ici : https://www.planet-casio.com/Fr/forums/lecture_sujet.php?id=14366&page=last
Breizh_craftEn ligneModérateurPoints: 981 Défis: 7 Message

Citer : Posté le 24/08/2018 12:37 | #


RIP la librtc, Cake l'a visiblement pas mise ailleurs avant que sa forge plante. Sur notre Gitlab, peut-être ?

EDIT : c'est sur notre Gitlab, il a juste pas màj le message principal

Re-EDIT : c'est le contraire, il l'a visiblement supprimée du Gitlab…

Re-re-EDIT : à priori, on peut l'avoir ici : https://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=3146 (la lib est dans le zip)
Informagicien professionnel, prestidigitateur système. Tout est possible.
Shadow15510En ligneAdministrateurPoints: 3834 Défis: 15 Message

Citer : Posté le 24/08/2018 13:01 | #


J'ai réussi à récupérer la version 0.3 via les commentaires de cake
Je n'ai pas tous compris : comment on s'en sert de la fonction RTC_GetDate ?
"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

Moral
   95%
LephenixnoirEn ligneAdministrateurPoints: 15799 Défis: 136 Message

Citer : Posté le 24/08/2018 13:45 | #


C'est comme dans le tuto de Cake. Il t'explique qu'il y a une « structure » (un type de variables qui contient en fait d'autres variables...) nommée rtc_date_t (le _t veut dire « type », c'est une convention) et qui contient des éléments hz64, month, etc.

Donc, pour avoir la date, c'est une ligne :

rtc_date_t date = rtc_getdate();

Ensuite le mois c'est date.month, le nombre de minutes c'est date.min, etc. Tous les éléments de la structure sont des variables donc tu peux écrire date.month = 3 * date.min - 4, même si ça n'a aucun sens.

Ajouté le 24/08/2018 à 13:49 :
Il ne tient pas compte du carry le gros malin, ça valait le coup de faire une lib bien propre pour que la méthode se plante facilement xD
Shadow15510En ligneAdministrateurPoints: 3834 Défis: 15 Message

Citer : Posté le 24/08/2018 14:01 | #


Donc il faut que j'inclue la bibliothèque et après je rentre juste cette ligne en stockant le résultat dans une variable et hop, c'est bon ??
"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

Moral
   95%
LephenixnoirEn ligneAdministrateurPoints: 15799 Défis: 136 Message

Citer : Posté le 24/08/2018 14:04 | #


Voilà, mais pour inclure il faut mettre tous les fichiers dans tes sources et les headers dans ton dossier... pour le coup je ne sais pas trop jusqu'à quel point il a prévu l'utilisation dans le SDK.
Shadow15510En ligneAdministrateurPoints: 3834 Défis: 15 Message

Citer : Posté le 24/08/2018 14:06 | #


Je ne sais pas non plus d'autant plus que je ne sais pas trop si le fichier que j'ai récupère corresponds bien au source et aux headers...
"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

Moral
   95%
Breizh_craftEn ligneModérateurPoints: 981 Défis: 7 Message

Citer : Posté le 24/08/2018 14:06 | #


À priori, il l'a pas du tout prévu, de ce qu'il dit, donc… surprise
Informagicien professionnel, prestidigitateur système. Tout est possible.
Shadow15510En ligneAdministrateurPoints: 3834 Défis: 15 Message

Citer : Posté le 24/08/2018 14:09 | #


Le fichier que j'ai trouvé est... vide donc il n'y a pas de sources, aucun .h ou .c bref... je sent que je vais rester avec mon syscall tout pourri peut être mais au moins ça marche à peu près...
"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

Moral
   95%
LephenixnoirEn ligneAdministrateurPoints: 15799 Défis: 136 Message

Citer : Posté le 24/08/2018 14:28 | #


Tu n'as qu'à dire que tu commences avec ton syscall (si temps < 0 alors tu rajoutes 24 heures) et tu verras un peu plus tard, c'est sûr qu'on peut le faire mais ça demande un peu de « travail »...
Shadow15510En ligneAdministrateurPoints: 3834 Défis: 15 Message

Citer : Posté le 24/08/2018 14:30 | #


J'y ai pensé à rajouter 24 heures mais si on le laisse pendant deux jours ??? Enfin bon j vais faire comme ça et pis on verra comment on se dermerde après : cette version est déjà jouable
"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

Moral
   95%
LephenixnoirEn ligneAdministrateurPoints: 15799 Défis: 136 Message

Citer : Posté le 24/08/2018 14:32 | #


Oui bien sûr si on le laisse deux jours il ne s'en rendra pas compte, c'est le coût de cette solution simpliste.
Breizh_craftEn ligneModérateurPoints: 981 Défis: 7 Message

Citer : Posté le 24/08/2018 14:34 | #


Je pense qu'il y a moyen de faire mieux, Fourmizzz y arrive bien

Informagicien professionnel, prestidigitateur système. Tout est possible.
Shadow15510En ligneAdministrateurPoints: 3834 Défis: 15 Message

Citer : Posté le 24/08/2018 14:35 | #


J'en suis convaincu également mais comment...?
"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

Moral
   95%
MassenaHors ligneRédacteurPoints: 865 Défis: 3 Message

Citer : Posté le 26/08/2018 18:26 | #


Je peux proposer des jeux ?
- Un flappy bird
- Un morpion
- Un snake
- Les classiques, quoi...
Now, Luke. A true gentleman suscribe to Planet Casio. This reminds me of a puzzle...
Shadow15510En ligneAdministrateurPoints: 3834 Défis: 15 Message

Citer : Posté le 26/08/2018 18:28 | #


Ok merci pour les idées
"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

Moral
   95%
DrakHors ligneRédacteurPoints: 1925 Défis: 38 Message

Citer : Posté le 28/08/2018 12:33 | #


Un tetris, avec ton Chat qui fait la gueule dès que tu joues mal.

Ou alors un jeu de casino (machine à sou), qui existait vraiment sur les vrais tamagotchis.
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !
Un RPG unique et immense t'attend ! Joue dès maintenant à Aventura, le Royaume Poudingue !
Vous aussi, soyez swag et rejoignez Planète Casio !
Pages : Précédente1 ... , 5, 6, 7, 8, 9, 10, 11Suivante

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2019 | Il y a 123 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