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 » Tamagotchi ou la gestion du temps en C
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 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


1, 2, 3, 4 ··· 9, 10, 11 Suivante
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 17/08/2018 15:35 | #


Sympa, ça m'étonne que les tamagochi n'aient jamais été portées sur calto d'ailleurs !
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 17/08/2018 18:30 | #


Il y en a qui ont essayé en BASIC mais tous ont abandonné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

Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 17/08/2018 18:40 | #


Faux. Pour une bonne gestion du temps en Basic, y'a Starcraft de Totoyo : https://www.planet-casio.com/Fr/forums/topic9371-1-Starcraft-2-alpha-1-%5BGraph-35+USB-75-85-95---Basic%5D.html

Après pour le temps exact calculatrice éteinte, c'est mort
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 17/08/2018 18:41 | #


On parlait de l'abandon de Tamagotchi pas de la gestion du temps réel
"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

Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 17/08/2018 18:46 | #


Au temps pour moi

Concernant la communication, en C ça se fait très bien avec le 3 pins, en basic faut passer par un système de codes à se faire passer à l'oral, par sms, etc.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 17/08/2018 18:48 | #


Je vais essayé de tout faire en C pour la comm j'y suis pas encore mais j'espère y arriver !
"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

Massena Hors ligne Ancien rédacteur Points: 2244 Défis: 11 Message

Citer : Posté le 17/08/2018 20:39 | #


Pour la gestion du temps il y a l'add-in Clicker SF qui continue en arrière-plan.
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 17/08/2018 20:44 | #


Si je me trompe pas, Fourmizz aussi est en temps réel : https://www.planet-casio.com/Fr/programmes/programme2607-1-fourmizzz-TheProg-add-in.html

L'avantage, c'est que les sources sont dispo
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir Hors ligne Administrateur Points: 24563 Défis: 170 Message

Citer : Posté le 17/08/2018 22:02 | #


Massena a écrit :
Pour la gestion du temps il y a l'add-in Clicker SF qui continue en arrière-plan.

C'est involontaire à vrai dire. En tous cas je peux énoncer au moins 3 ou 4 contraintes techniques qui font qu'il est très difficile, pour ne pas dire impossible, de réaliser ce genre de jeux.
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 17/08/2018 22:04 | #


Lephenixnoir a écrit :
Massena a écrit :
Pour la gestion du temps il y a l'add-in Clicker SF qui continue en arrière-plan.

C'est involontaire à vrai dire. En tous cas je peux énoncer au moins 3 ou 4 contraintes techniques qui font qu'il est très difficile, pour ne pas dire impossible, de réaliser ce genre de jeux.


Boarf, c'est juste un calcul du temps qui est passé multiplié par la production à la seconde.

Le seul soucis, c'est quand l'heure est reset, ou autre truc du genre
Breizh.pm – Un adminsys qui aime les galettes.
Lephenixnoir Hors ligne Administrateur Points: 24563 Défis: 170 Message

Citer : Posté le 17/08/2018 22:11 | #


Non, le timer reste vraiment actif. Le code de l'add-in continue de s'exécuter pendant qu'on est dans le menu.

Que la config' de la RTC puisse être changée par n'importe quel add-in est effectivement un chouille gênant pour les gens qui souhaiteraient obtenir une mesure fiable du temps écoulé depuis la dernière exécution. Malheureusement, ça ne marche pas (bien).
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 17/08/2018 22:13 | #


Ah ok pour le clicker.

La mesure est fiable, tant que les piles marchent et que personne change l'heure. C'est une RTC tout à fait fonctionnelle. Ça vaut aussi sur les PC après tout.
Breizh.pm – Un adminsys qui aime les galettes.
Lephenixnoir Hors ligne Administrateur Points: 24563 Défis: 170 Message

Citer : Posté le 17/08/2018 22:15 | #


Ah oui l'heure est précise. Mais n'importe qui peut le changer...

Le bouton RESET réinitialise aussi l'horloge d'ailleurs. À une date relativement aléatoire...
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Massena Hors ligne Ancien rédacteur Points: 2244 Défis: 11 Message

Citer : Posté le 17/08/2018 22:26 | #


Mais du coup un Tamagotchi fonctionne aussi en arrière plan. Tu vas pas rester dessus pendant 3 heures en attendant qu'il veuille manger
Lephenixnoir Hors ligne Administrateur Points: 24563 Défis: 170 Message

Citer : Posté le 17/08/2018 22:32 | #


Le problème c'est que tu peux pas « tourner en arrière-plan » de façon fiable.
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 18/08/2018 13:03 | #


Tant pis si on peut modifier l'heure via un add-in il me faut juste un moyen de chronométrer des durées...
D'autre add-ins y parviennent et je compte bien y arriver aussi mais j'ai besoin de votre aide. Si on ne peut pas faire un truc comme :
Naissance=RTC_jesaisplusquoiTicks

et après RTC_jem'ensouvienstoujourspasTicks-Naissance
Comment faudrait-il que je m'y prenne ?

"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: 24563 Défis: 170 Message

Citer : Posté le 18/08/2018 13:25 | #


En deux mots : tu ne peux pas mesurer le temps qui s'est écoulé dans le monde réel entre le jour où ton Tamagotchi a été créé et celui où il est mort.

Par contre tu peux facilement mesurer le temps pendant lequel ton add-in s'est exécuté entre le jour où ton Tamagotchi a été créé et celui où il est mort.

De la même façon, tu ne peux pas faire « avancer le temps du Tamagotchi » de façon fiable quand l'add-in ne tourne pas. Par contre, quand il tourne, c'est très facile.
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 18/08/2018 13:26 | #


Va pour mesurer le temps lorsque l'addition-in tourne : comment s'y prendre ?
"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: 24563 Défis: 170 Message

Citer : Posté le 18/08/2018 13:27 | #


Il suffit de consulter la RTC, mais pas le nombre de ticks : tu consultes la date et l'heure.

Darks a dit qu'il l'expliquerait dans son tuto, je te propose de le poker sur le topic associé.
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 18/08/2018 13:28 | #


je fait cela de suite

Ajouté le 18/08/2018 à 14:12 :
J'ai trouvé cette fonction :
"void RTC_GetTime (uint *hours, uint *mins, uint *secs, uint *msecs);"
Je ne sais pas m'en servir je pense qu'il va falloir que je créer un dossier externe puis que je stocke toutes les variables qui ont rapport à l'heur dedans comme l'a suggérer Ninestars... (ça je ne sais pas le faire... )
Ensuite j'appelle cette fonction lors de la naissance de l'animal et je met les valeurs dans des variable ans le même dossier externe...
lorsque que je désire savoir l'heure je fait la différence entre les valeurs de la naissance et les valeurs actuelles...
C'est cela ?
"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

1, 2, 3, 4 ··· 9, 10, 11 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 97 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