Je débute tout juste en Purebasic (j'ai déjà un peu touché à la programmation donc je connais à peu près tout ce qui est variable, conditions, etc) mais je ne suis malheureusement pas très douée pour apprendre seule...
Je voulais donc savoir si parmi vous, il y aurait des gens intéressés pour suivre mon projet et m'aider en m'expliquant comment réaliser le code de mon programme en fonction de mes attentes.
J'aimerais réaliser un petit animal virtuel (type tamagoshi pour ceux qui ont connus) mais bien plus élaboré pour faire un bot réaliste au maximum.
J'ai déjà fait une base, très sommaire pour l'instant, qui n'attend qu'une (ou plusieurs) bonne(s) âme(s) charitable pour m'aider à continuer son évolution
Voici déjà un bug rencontré :
- Il y a un petit système de temporisation dont le but est d’afficher un message au bout de cinq secondes (idéalement, la durée doit par la suite pouvoir être variable et aléatoire afin de générer des événements aléatoires, comme par exemple l’animal qui va miauler, faire une bêtise, etc)
le message s’affiche bien au bout de cinq secondes, mais revient régulièrement ensuite et de manière assez anarchique selon moi… (c’est l’ami qui m’a fait découvrir purebasic qui me l’a fait, car je voulais pouvoir utiliser une fonction delay() à la base, mais qui ne bloque pas le programme et on ne trouvait pas, alors j’ai cherché à faire un système d’heure afin de m’en servir pour mes événements)
J’espère que mon projet n’est pas trop ambitieux, surtout vu mon niveau super débutant...
Voici déjà mon code tel qu’il est pour l’instant, qui a certainement besoin d'être mis au propre :
Code : Tout sélectionner
Enumeration
#Fenetre
#Bouton_Quitter
#Bouton_Nourrir
#Bouton_Caresser
#Bouton_Frapper
#Bouton_Appeler
#texte_accueil
#Heure
#HeureDemarrage
#Meteo
#Meteo2
#Fichier
#RanResult
#ID_Nouveau
#TestTexte
EndEnumeration
Global X.i=10
Global Y.i=5
Global BienEtre.i = 1
Global Joie.i = 1
Global Colere.i = 1
Global Nourriture.i = 1
Global TotalBouffe.i
Global Texte.s = "Bonjour l'ami, voici... un gentil chaton"
Global TempsMeteo.s
Global Des.i
Global ResultTemps.i
Global HeureDemarrage.i
Global glEvent.i,glGadget.i,glType.i,RanResult.s,RanResultI.i
Procedure.s DateToString(MODE_DATE=0)
Select MODE_DATE
Case 1 ; date
ladate.s = Str(Day(Date()))+"/"+Str(Month(Date()))+"/"+Str(Year(Date()))
Case 2 ; heure
ladate.s = Str(Hour(Date()))+":"+Str(Minute(Date()))+":"+Str(Second(Date()))
Default ; date + heure
ladate.s = Str(Day(Date()))+"/"+Str(Month(Date()))+"/"+Str(Year(Date()))+" - "+Str(Hour(Date()))+":"+Str(Minute(Date()))+":"+Str(Second(Date()))
EndSelect
ProcedureReturn ladate.s
EndProcedure
Procedure AfficheHeure()
SetGadgetText(#Heure, DateToString() )
EndProcedure
Procedure Fenetre()
RanResult = ""
RanResultI = Random(2,1)
RanResult = Str(RanResultI)
If RanresultI = 1
Global Temps.s
EndIf
If RanresultI = 2
Global Temps2.s
EndIf
HeureDemarrage = (Second(Date()))
If OpenWindow(#Fenetre, 0, 0, 500, 500, "CHATON", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
;StringGadget (#Heure, 5, 1, 150, 30, "",#ES_CENTER|#PB_String_ReadOnly)
TextGadget(#Heure, 10,300,200,20,DateToString() )
AddWindowTimer(#Fenetre,10,1000)
BindEvent(#PB_Event_Timer,@AfficheHeure(),0)
TextGadget(#Texte_accueil,10,5,100, 100,Texte)
ResultTemps = Random(2,1)
If ResultTemps = 1 : TempsMeteo = "Il fait un beau soleil" : EndIf
If ResultTemps = 2 : TempsMeteo = "Il fait gris, il va pleuvoir" : EndIf
TextGadget(#Meteo,10,260,200, 20,TempsMeteo)
ButtonGadget(#Bouton_Quitter, 10, 60, 200, 20, "Fermer")
ButtonGadget(#Bouton_Nourrir, 10, 90, 200, 20, "Nourrir")
ButtonGadget(#Bouton_Caresser, 10, 120, 200, 20, "Caresser")
ButtonGadget(#Bouton_Frapper, 10, 150, 200, 20, "Frapper")
ButtonGadget(#Bouton_Appeler, 10, 180, 200, 20, "Appeler")
ButtonGadget(#ID_Nouveau, 10,210,200 ,20,"Jeu")
;TextGadget(#RanResult, 10,240,200,20,""+RanResult)
MessageRequester("Info","La gamelle est vide",64)
If (Hour(Date())) = 19 Or (Hour(Date())) = 12 Or (Hour(Date())) = 9
MessageRequester("Info","Il est l'heure de nourrire le chaton !!!",64)
Else
If (Hour(Date())) = 10 Or (Hour(Date())) = 14 Or (Hour(Date())) = 16 Or (Hour(Date())) = 20
MessageRequester("Info","Le chaton dort...",64)
EndIf
EndIf
EndIf
EndProcedure ;
Procedure Nourrir()
TotalBouffe = TotalBouffe + Nourriture
If TotalBouffe => 4
MessageRequester("Info","La gamelle déborde... inutile d'en mettre tant !",64)
TotalBouffe = 3
Else
MessageRequester("Info","Vous avez mis "+TotalBouffe+" ration(s) de croquettes !",64)
EndIf
EndProcedure
Procedure Caresser()
Joie = Joie + BienEtre
MessageRequester("Info"," "+Joie+"",64)
RanResult = ""
RanResultI = Random(2,1)
RanResult = Str(RanResultI)
If RanresultI = 1
MessageRequester("Info","Le chaton Ronronne",64)
EndIf
If RanresultI = 2
MessageRequester("Info","Le chaton ferme les yeux",64)
EndIf
;If colere > 0 : Joie - colere : EndIf
If Joie = 5
Joie = #True
EndIf
If Joie = #True
MessageRequester("Info"," le chanton est heureux ;)",64)
EndIf
EndProcedure
Procedure Frapper()
RanResult = ""
RanResultI = Random(2,1)
RanResult = Str(RanResultI)
If RanresultI = 1
MessageRequester("Info","Le chaton part en courant",64)
Colere = 1
EndIf
If RanresultI = 2
MessageRequester("Info","Le chaton feule",64)
Colere = 2
EndIf
EndProcedure
Procedure Appeler()
RanResult = ""
RanResultI = Random(3,1)
RanResult = Str(RanResultI)
If RanresultI = 1
MessageRequester("Info","Le chaton ne vous calcule pas",64)
EndIf
If RanresultI = 2
MessageRequester("Info","Le chaton vient en courant",64)
EndIf
If RanresultI = 3
MessageRequester("Info","Le chaton dresse l'oreille",64)
EndIf
EndProcedure
Procedure OpenRAN()
If ReadFile(#Fichier,"carctere.ran")
RanResult = "Nombre : "+ReadString(#Fichier)
SetGadgetText(#RanResult,RanResult)
CloseFile(#Fichier)
EndIf
EndProcedure
Procedure SaveRAN()
If CreateFile(#Fichier,"caractere.ran", 0)
WriteStringN(#Fichier,RanResult)
CloseFile(#Fichier)
EndIf
EndProcedure
Procedure Jeu()
RanResult = ""
RanResultI = Random(2,1)
RanResult = Str(RanResultI)
SaveRAN()
If RanresultI = 1
MessageRequester("Info","Vous lancez une balle. Le chat ne calcule pas la balle",64)
EndIf
If RanresultI = 2
MessageRequester("Info","Vous lancez une balle. Le chat poursuit la balle",64)
EndIf
EndProcedure
;-Procedure au démarrage
Fenetre()
;-Boucle du Programme
Repeat
If Second(Date()) - HeureDemarrage = 5
MessageRequester("Ha Ha","Le chat vient vers vous")
HeureDemarrage = 0
EndIf
Event = WaitWindowEvent()
glGadget= EventGadget()
glType = EventType()
If glEvent = #PB_Event_Gadget
Select glGadget
Case #PB_Event_Gadget
Case #ID_Nouveau : Jeu()
EndSelect
EndIf
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case #Bouton_Nourrir
Nourrir()
Case #Bouton_Quitter
CloseWindow(#Fenetre)
End
Case #Bouton_Caresser
Caresser()
Case #Bouton_Frapper
Frapper()
Case #Bouton_Appeler
Appeler()
Case #ID_Nouveau :
Jeu()
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
End
Merci d'avance à ceux qui liront mon message et bonne journée