encore un petit programme forth (AL)

Tout sur le pou français

Modérateur : Politburo

Répondre
francoisp31
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2002
Enregistré le : 30 mai 2005 09:48
Localisation : Toulouse
Contact :

encore un petit programme forth (AL)

Message par francoisp31 »

Petit projet en cours :

code pour simuler une activite "vivable" au sens strictement minimum ... (reposer/manger/deplacer/mourir)
il y aura plus plus tard comme le fait de pouvoir ou non manger (presence de nouriture sur les lieux)
une deplacement reel (pour trouver la nourriture)
etc...etc...


Code : Tout sélectionner

: agej+ ( compteur d'age en jours )
        agej @ 365 = if
                        agea @ 1+ agea ! ( prendre 1 an )
                        0 agej !
        then
        agej @ 1+ agej !
;

[...............] etc [.......]

: faim+ faim @ 1+ faim ! ;

: mange
        25 0 do
                faim-
        loop
        4 0 do
                fatigue+ ( ca fatigue la digestion )
        loop
        ." Mange "
;
: affiche-stats
        stat @ 1+ stat !
        stat @ 10 > if 
                ( n'afficher les stats que tous les 10 jours ) 
                ( pour faciliter la lisibilite )
                cr ." STATS : " 
                affiche-age
                cr ." Faim : " faim @ . ."  Fatigue : " fatigue @ .
                0 stat !
        then
;
: mort?
        faim @ 150 > if
                1 mort !
                cr cr ." M O R T ! de faim " cr
        then
        fatigue @ 150 > if
                1 mort !
                cr cr ." M O R T ! de fatigue " cr
        then
        agea @ 87 > if 
                ( donner une limite pour eviter que le facteur aleatoire )
                ( ne puisse donner un resultat stupide )
                ( comme 5000 ans par exmeple ) 
                1 mort ! 
                cr cr ." M O R T ! de vieillesse " cr 
        then
;
: simu
        reset ( vider la pile et les variables )
        begin
                mort @ 0 = if
                        sedeplace
                        agej+ ( 1 boucle = 1 jour ) 
                        2 0 do faim+ loop
                        2 0 do fatigue+ loop
                        agej @ 10 > if
                                2 0 do fatigue+ loop
                                2 0 do faim+ loop
                        then
                        agea @ 10 > if 
                        ( affaiblissement de la condition physique )
                        ( selon l'age )
                                5 0 do fatigue+ loop 
                                4 0 do faim+ loop
                                2 0 do sedeplace loop
                        then
                        agea @ 30 > if
                                15 0 do fatigue+ loop
                                6 0 do faim+ loop
                                sedeplace
                        then
                        faim @ 20 > if
                                sedeplace
                                mange
                        then
                        fatigue @ 50 > if
                                sedeplace
                                serepose
                        then
                        affiche-stats
                        mort?  
                               ( est on mort et si oui de quoi )
                then
        mort @ 0 > until
        20 stat ! affiche-stats ( age atteint et autres stats ) 
        reset ( vider la pile )
;
donne un petit resume du genre :

Code : Tout sélectionner

Age : 10 an(s) et 365 jour(s).
Faim : 4  Fatigue : 48 Se deplace Se deplace Se deplace Se deplace Mange Se deplace Se repose Se deplace Se deplace Se deplace Se deplace Mange Se deplace Se repose Se deplace Se deplace Se [......]
Se deplace Se deplace Mange Se deplace Se repose Se deplace Se deplace Se deplace Se deplace Mange Se deplace Se repose
STATS :
Age : 11 an(s) et 11 jour(s).
Faim : 107  Fatigue : 41 Se deplace Se deplace Se deplace Se deplace Mange Se deplace Se repose Se deplace Se deplace Se deplace Se deplace Mange Se deplace Se repose Se deplace Se deplace Se deplace Se deplace Mange Se deplace Se repose Se deplace Se deplace Se deplace Se deplace Mange Se deplace Se repose

M O R T ! de faim

STATS :
Age : 11 an(s) et 15 jour(s).
Faim : 155  Fatigue : 33  ok
C'est a ameliorer bien sur mais le principe est amusant de voir evoluer la faim et la fatigue d'un personnage totalement fictif...

Il faudra ajouter des fonctions supplementaires commes
-le besoin d'excretion,
-la presence coordonnees aleatoire de nourriture
-ne pouvoir manger que si on est a cote de nouriture
-la gestion de la soif

et eventuellemt un virus ? avec son remede si on a de la chance ?

et enfin donner une representation graphique de tout ca...plustot que textuellement....
-----------
ssh debile@stupide.local "docker run -it docker/cowsay \"fortune | cowsay\" "

:ugeek:
Avatar du membre
Fabrice Montupet
Administrateur
Administrateur
Messages : 11082
Enregistré le : 17 mai 2002 11:39
Localisation : Nevers - France

Message par Fabrice Montupet »

Amusant! :)
Désires-tu créer un Tamagoshi ou mieu....un D&D ? :D
Avatar du membre
BubbleBobble
Modérateur
Modérateur
Messages : 2641
Enregistré le : 08 sept. 2004 22:24
Localisation : Toulon

Message par BubbleBobble »

pour le moment ça ressemble à ce pu*ain de Lost in Blue sur DS où cet abruti de gamin meurt de faim à 5cm de la noix de coco ou du champignon :lol:

Pierre
Le frottage de silex, c'est tout sauf une innovation : avant, on attendait simplement que la foudre tombe sur un arbre et qu'elle enflamme une branche, et ça fonctionnait très bien... ©SbM
francoisp31
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2002
Enregistré le : 30 mai 2005 09:48
Localisation : Toulouse
Contact :

Message par francoisp31 »

ca en restera au maximum au stade tamagochi

:lol:
-----------
ssh debile@stupide.local "docker run -it docker/cowsay \"fortune | cowsay\" "

:ugeek:
francoisp31
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2002
Enregistré le : 30 mai 2005 09:48
Localisation : Toulouse
Contact :

Message par francoisp31 »

les sprites :

Code : Tout sélectionner

4 base !
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
decimal 2 8 image black 
le personage style chien:

Code : Tout sélectionner

4 base !
0000 0010
0110 0012
1000 1110
0111 1110
0111 1110
1010 1010
1010 1010
0000 0000
decimal 2 8 image perso 
etc...

faut dessiner un panier (nourriture)
faut dessiner un virus
faut dessiner une fiolle (remede)
-----------
ssh debile@stupide.local "docker run -it docker/cowsay \"fortune | cowsay\" "

:ugeek:
Répondre

Retourner vers « Victor & Hector »