Autorisation : Membre
Nb de messages : 132
Inscrit le : Mer 03 Déc 2014, 14:13
Posté le : Jeu 02 Avr 2015, 20:33
bonjour a tous je revient aujourd'hui avec un nouveau programme que je posterais plus tard (extrêmement long)je vous explique le principe : vous êtes vous (ça commence bien )et plusieurs chois s'offre a vous: construire (outil, arme, utilitaire(maison)) voir votre état de santé (vie, énergie) récolter (bois, pierre, fer)en "sortant" vous avez une probabilité de se faire attaquer (ours ou loup)très important tout est en mode texte! ils y a deux menus principaux : le menu en intérieur qui permet de se reposer (plus d’énergie) de construire et d'échapper aux bestioles et le menu d’extérieur qui permet quand a lui de récolter des matériaux ou de chercher des objet... voila les points faible que j'aimerais que vous m'aidiez a améliorer:
-pas de nom
-gros problème d'objet en effet j'utilise des variable si elle valent 1 vous avez l'objet si elle valent 0 vous ne l'avez pas et je commence a manquer de variable
-j'ai déjà fais 2000 octet et j'en suis pas à la moitié du boulot...
-pas de but (genre un boss je sais pas?)
-pas plus de problème pour vous...
si vous voulez que je publie des bouts de code avant la version finale je le ferait bien sur
avancement (50%) menu principale, de construction, l'inventaire et la barre de vie et de santée
voila voila merci d'avance pour vos réponses
---------------------- futur analyste programmeur possesseur d'une TI 82 Plus toute neuve
Autorisation : Membre
Nb de messages : 504
Inscrit le : Ven 07 Déc 2012, 20:09
Posté le : Jeu 02 Avr 2015, 20:46
Bonsoir leo_85
Là tu ne vas plus avoir le choix, avec des labels seulment tu ne peux pas finir ce projet
Pour la gestion des objets, je te conseille une grosse liste.
Code
{1,2,3,18,53,0,-1}->L1 //on stocke les valeurs dans une liste
If L1(x)=3 //on teste la x ème valeur de la liste
Les liste peuvent aussi te servir à stocker des données, des scores, etc...
Selon la quantité de données que tu utilises, et même pour faire une map, une matrice peut être utile. C'est le même principe, mais en deux dimensions
Code
[[1,2,3][4,18,53]]->[A]
[A](1,2) //donnée en 1e ligne et 2e colonne
[A] dans 2nd+x^-1
Pour le nom : ce jeu me fait penser à The Forest, donc je l'aurais appelé comme ça (nom de programme en FOREST)
Sinon, SURVIVAL reste une bonne option.
Si ton jeu est en menus, il va être difficile d'avoir un but. Si il est sur l'écran graphique, un ennemi peut être ajouté je pense, si tu te débrouilles bien
Autorisation : Membre
Nb de messages : 132
Inscrit le : Mer 03 Déc 2014, 14:13
Posté le : Ven 03 Avr 2015, 17:19
merci!
(pourquoi je ne pourrait pas finir mon projet?)
donc les listes c'est la vie! c'est génial!(juste comment ont modifie la xème valeur d'une liste ?)
oui j'ai exabusé des labels et des "whiles"
il y a deux ennemis la variable "P" qui celons sa valeur (une entrée aléatoire) est un loup ou un ours
merci pour le nom survival est pas mal sinon qu'est ce que vous pensez de "adventure" ?
que penser vous d'un boss comme objectif?
peut être un système d'armure? pour plus de vie pour affronter le boss?
---------------------- futur analyste programmeur possesseur d'une TI 82 Plus toute neuve
Autorisation : Membre
Nb de messages : 504
Inscrit le : Ven 07 Déc 2012, 20:09
Posté le : Ven 03 Avr 2015, 17:54
Le nom "adventure" possède un trop grand nombre de caractères, tu peux essayer. C'est pour ça que je me suis contenté de noms à 8 lettres maxi
Difficile de terminer un programme interactif avec simplement des labels. Ton code sera juste illisible et très difficile à comprendre et recopier. Les boucles (dont While) permettent une plus grande interactivité. Je devrait donc dire que "les boucles c'est la vie"
Je te conseille les tests booléens. Ca fait peur comme ça mais c'est très simple. C'est une variable qui ne peut prendre que deux valers, VRAI ou FAUX, respectivement symbolisés par 1 et 0. Tu peux donc changer les valeurs de tes listes par des tests sur des listes (compare terme à terme et retourne une liste). Tu as donc accès à des interrupteurs dans tes listes, très faciles à manier !
Les opérateurs booléens (dans 2nd-math) :
1° =, différent, <, >, sup ou égal, inf ou égal : Tu les connais, ce sont des tests
2° and : teste si deux des valeurs sont vraies. 1 and 1=1, 1 and 0=0
3° or : teste si l'une au moins des valeurs est vraie. 1 or 0=1, 0 or 0=0
4° xor : teste si une seule des deux valeurs est vraie. 1 xor 0=1, 1 xor 1=0
5° not() : inverse la valeur du booléen. not(1)=0, not(0)=1
Ces tests s'appliquent à des conditions ternaires (voir Astuces de Programmation dans ma signature).
Changer un seul interrupteur de ta liste peut donc se faire avec ce genre d'opérateurs :
Autorisation : Membre
Nb de messages : 132
Inscrit le : Mer 03 Déc 2014, 14:13
Posté le : Ven 03 Avr 2015, 19:26
peut t on savoir si toutes les valeurs d'une liste sont vérifié? peut on choisir une valeur dans la liste la modifier et la réinjecter a ça place? sinon je garde survie pour le nom ^^
---------------------- futur analyste programmeur possesseur d'une TI 82 Plus toute neuve
Autorisation : Membre
Nb de messages : 504
Inscrit le : Ven 07 Déc 2012, 20:09
Posté le : Ven 03 Avr 2015, 23:14
Par exemple, le test entre une liste et un nombre se fait terme à terme selon la logique booléenne : {1,2,1,4}=1 renvoie {1,0,1,0}. Pour modifier le Xe terme d'une liste L1 et l'utiliser comme n'importe quelle variable nombre, il suffit de faire (comme dans mes deux codes précédents) L1(X)
Autorisation : Membre
Nb de messages : 19
Inscrit le : Mer 29 Oct 2014, 10:12
Posté le : Mer 08 Avr 2015, 14:41
Ou alors tu met un nom au hasard pour le titre du code et tu fais un screen de présentation du jeu pour mettre ton adventure genre :
Code
EffDessin
Texte(30,30,Adventure
Pause
EffDessin
---------------------- La lumière va plus vite que le son , c'est pourquoi on trouve beaucoup de gens brillants avant de s'apercevoir qu'ils sont cons😄
Autorisation : Membre
Nb de messages : 132
Inscrit le : Mer 03 Déc 2014, 14:13
Posté le : Lun 27 Avr 2015, 15:19
j'ai pris pas mal de retard (les vacances, le lycée, la vie, tout ça,...) j'ai besoin d'aide pour l'affichage de barre de vie un peu plus opti que la merde que j'ai fais
Code
EffEcr
Disp"Vie:",x,"Energie","x
Output(1,5,L
Output(3,9,E
If L[supérieur ou égal]2:Output(2,2,"x
If L[supérieur ou égal]3:Output(2,3,"x
If L[supérieur ou égal]4:Output(2,4,"x
// etc... et pareil pour "E"
If E[supérieur ou égal]2:Output(4,2,"x
Autorisation : Membre
Nb de messages : 19
Inscrit le : Mer 29 Oct 2014, 10:12
Posté le : Lun 27 Avr 2015, 18:54
T'inquiète pour les listes tu peux aller jusqu'à 999 termes
L'idéal c'est quand même autour de 30/40 après ca devient lourd niveau mémoire
La avec 35 termes 380 octets ce serait bon
---------------------- La lumière va plus vite que le son , c'est pourquoi on trouve beaucoup de gens brillants avant de s'apercevoir qu'ils sont cons😄
Autorisation : Membre
Nb de messages : 504
Inscrit le : Ven 07 Déc 2012, 20:09
Posté le : Lun 27 Avr 2015, 19:20
Si tes termes ont une particularité commune (par exemple tous les ennemis sont un multiple de 10), tu peux aussi utiliser habilement une matrice, qui est grossièrement une liste en deux dimensions qui te permet donc de stocker plus et d'accéder plus facilment à ces termes.
Autorisation : Membre
Nb de messages : 132
Inscrit le : Mer 03 Déc 2014, 14:13
Posté le : Mar 28 Avr 2015, 16:46
merci... mais pour ça?
Code
ClrHome
Disp "VIE:","X","ENERGIE:","X
Output(1,5,L
Output(3,9,E
If L>=2:Output(2,2,"X
If L>=3:Output(2,3,"X
If L>=4:Output(2,4,"X
If L>=5:Output(2,5,"X
If L>=6:Output(2,6,"X
If L>=7:Output(2,7,"X
If L>=8:Output(2,8,"X
If L>=9:Output(2,9,"X
If L>=10:Output(2,10,"X
If L>=11:Output(2,11,"X
If L>=12:Output(2,12,"X
If L>=13:Output(2,13,"X
If L>=14:Output(2,14,"X
If L>=15:Output(2,15,"X
If L>=16:Output(2,16,"X
If E>=2:Output(4,2,"X
If E>=3:Output(4,3,"X
If E>=4:Output(4,4,"X
If E>=5:Output(4,5,"X
If E>=6:Output(4,6,"X
If E>=7:Output(4,7,"X
If E>=8:Output(4,8,"X
If E>=9:Output(4,9,"X
If E>=10:Output(4,10,"X
If E>=11:Output(4,11,"X
If E>=12:Output(4,12,"X
If E>=13:Output(4,13,"X
If E>=14:Output(4,14,"X
If E>=15:Output(4,15,"X
If E>=16:Output(4,16,"X
EffVar K
While K!=1
Disp "RETOUR TAPEZ 1
Input "ACTION=",K
End
If K=1
Then
prgmBETATEST
!= veut dire "différent de" et c'est en anglais alors que ma calto est en français car j'utilise ca:http://www.cemetech.net/sc/
---------------------- futur analyste programmeur possesseur d'une TI 82 Plus toute neuve
Autorisation : Membre
Nb de messages : 132
Inscrit le : Mer 03 Déc 2014, 14:13
Posté le : Mar 28 Avr 2015, 19:05
merci super efficace par contre petite erreur de recopiage:
Code
ClrHome
Disp "VIE:","X","ENERGIE:","X
Output(1,5,L
Output(3,9,E
For(I,2,16
If L>=I:Output(2,I,"X //ici pour les deux "output("
If E>=I:Output(4,I,"X
End
EffVar KRepeat K=1
Disp "RETOUR TAPEZ 1
Input "ACTION=",K
End
prgmBETATEST
et sinon juste pour le fun y'a moyen d'avoir une version graphique?
---------------------- futur analyste programmeur possesseur d'une TI 82 Plus toute neuve
Autorisation : Membre
Nb de messages : 504
Inscrit le : Ven 07 Déc 2012, 20:09
Posté le : Mar 28 Avr 2015, 19:39
Oh oui en effet, une habitude du C ça .
C'est vrai que chez TI ça marche que pour les chiffres. Bon ba ton code correctif alors, mais du coup ça va être très lent... Enfin, on vient d'économiser peut être 150 octets donc on va pas se plaindre ^^
En graphique c'est très simple. J'imagine que tu es dans un boucle pour ce programme, donc tu traces tout simplement une ligne au départ. On retracera des lignes par dessus, ce qui en plus donnera cet effet de remplissage/vidage de la vie, pour des grandes quantités de vie perdues. C'est pas mal car tu peux avoir sur une ligne maxi 95 points de vie, ce qui laisse de la marge, notamment pour un survival. Un réglage de fenêtre classique, et je place la barre de vie en haut de l'éran :
Code
Horizontal 63
//On a perdu X points de vie en fin de boucle :
Line(63,95,63,X,1 //l'argument 1 efface la ligne
//On a gagné X points de vie en fin de boucle :
Line(63,[Y de l'extrémité de la ligne],63,X
Tu peux évidemment superposer plusieurs lignes et effectuer ces mêmes opérations à chaque tour sur chacune afin d'avoir une barre de vie épaisse. Pour plus d'infos sur Line(), c'est par ici.
Autorisation : Membre
Nb de messages : 504
Inscrit le : Ven 07 Déc 2012, 20:09
Posté le : Mar 28 Avr 2015, 19:58
Non, je code pour moi, du C et du C++, pas mal d'arduino, du Java, et du leekscript ( ) ; mais je n'exclus pas d'avoir affaire à l'informatique plus tard, je vais déjà commencer mes études en ingé l'année prochaine
On trace une ligne en haut de l'écran pour la barre de vie. Quand je pers X points de vie, je trace par dessus cette ligne, en partant de son extrémité, une ligne blanche d'une longueur X. De même, quand je gagne X points de vie, je trace à partir de l'extrémité de la barre un ligne noire de longueur X.
Je parle d'une boucle parce que je suppose que ton programme continue "tant que" la vie est positive.