Problème pour cacher un sous programme
Posté le 18/12/2016 20:08
Bonjour les amis, je suis un grand fan de prog. Je réalise en ce moment même une v5 d'un lourd, très lourd programme. Celui-ci est seulement un programme reliant différents hubs permettant d'accéder à un jeu. Seulement voila, le programme en lui même regroupe une 20 aines de jeux que j ai entièrement coder tout seul. Cela passe par un mlg snake à un rp. J'utilise la syntaxe suivante: prog "nom" pour pouvoir utiliser des lbl (car j ai utiliser casi toutes les lettres ainsi que les chiffres) en créant donc un programme qui est relié au principal seulement, pour que l ensemble sois esthétique, j essaye de cacher le deuxième programme afin que l'utilisateur n en aperçois q'un. Seulement, pour le moment, je n ais que la solution de stocker la mémoire fonctions puis de supprimer le programme (optn, f6 f6 f3 f1). Seulement en faisant sa, le prog "nom" ne fonctionne pas car le programme selon lui est supprimer. N'y aurais t il pas un moyen de récupérer la mémoire fonction d un prog via une syntaxe faisant donc un envoi direct à tel où tel programme ???
bien cordialement Choka271 (ps deso pour les fautes d'orthographes)
Citer : Posté le 18/12/2016 20:13 | #
Bonjour, outre les détails chauds du Basic (je laisse les experts te répondre après moi), il n'y a pas moyen de cacher un programme. Tu peux toujours mettre en valeur les programmes principaux xor les programmes auxiliaires (en les préfixant par un symbole type theta ou ").
Mon blog ⋅ Mes autres projets
Citer : Posté le 18/12/2016 20:20 | #
Aille caramba, mal partis alors, car la v5 du programme consiste à optimiser le plus possible le prog, en cachant la deuxième partis tout en via un prog "nom" le rendre accessible. Seulement vu que j'utilise actuellement cette syntaxe, même en donnant le nom "z" au second programme, celui-ci sera totalement visible, et sachant que la plus part de ma classe ne savent pas ce qu'est un programme, il n'en ont aucun dans leurs répertoire donc il s'affichera quand même en seconde place
Citer : Posté le 18/12/2016 20:42 | #
Sinon tu pourrais copier/coller les programmes, par exemple :
If A=1 Then
//code du prog 1
Else If A=2 Then
//code du prog 2
IfEnd
Alors bien sûr il faut que la variable ne soit pas utilisée, mais tu pourrais soit utiliser Ans, soit une variable de récurrence ([a-c][0-2]).
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 18/12/2016 21:05 | #
Salut, oui mais le problème n est pas la car j ai utiliser tout les lbls possibles, et mes deux programmes, utilisent des fois les mêmes labels donc je ne peux pas les assembler car même si je fais un choix comme tu as fais (car dans mon menu, j'utilise les getkeys qui via des goto permettent d'aller à un endroit sans utiliser les "?") le programme lira tout les labels, et par exemple si j ai:
"menu"
"1= prog1"
"2= prog2"
?->a
If a=1
Then goto a
else goto b
Lbl a
continu du prog1
....
Then Goto e
Else "ameno"
Lbl e continu du premier prog
...
Lbl b
...
Then goto e
Else ...
Lbl e
....
Ici c est la version fast pour illustrer le pb. Je ne peux plus utiliser les labels car je les ai tous déjà uttiliser, donc j'utlise un sous prog (dans cette exemple, le programme va lire les deux lbls e et va automatiquement aller au premier lbl e meme si tu es dans le deuxième programme) . Raison de l utilisation de prog"nom" me permettant d avoir de nouveaux lbl. Sauf que je cherche une solution pour cacher le programme du menu des progs sauf que faut que celui ci reste détectable par la calcu si je fais prog"nom" et sa je ne sais pas si on peut.
Ajouté le 18/12/2016 à 21:07 :
J ai essayer d expliquer simplement. Je crois que c est raté.
Citer : Posté le 18/12/2016 22:05 | #
D'où l'intérêt de programmer sans labels…
Blague à part, tu peux organiser les programmes en les préfixant : mettre une espace en début de nom le fait remonter, un tiret le fait descendre. Donc tu peux mettre tes sous-programmes dans la forme "-NOMPROG" et le programme principal "MON_PROG".
Citer : Posté le 18/12/2016 22:52 | #
Yo Dark storm,
Ouais mais au final, cala revient à la même idée que Cakeisalie5. Or le programme sera partagé pour tout le monde de ma classe, et les 3/4 n'ont pas un seul programme. Du coup, ils le verront toujours dans la liste des progs. Sauf que je veux absolument qu'il y en ai que le principal de visible. Voir le second qui ne s'affiche pas dans cette liste. Mais que la commande : Prog"nom" dans le premier programme renvoie bien au second. Je ne sais pas si cela est réalisable si le second ne figure pas dans la programlist
Ajouté le 18/12/2016 à 22:54 :
8) déso déso avec mes questions complexes, dites vous que je fais d'autant plus ch*** mes profs avec mes questions xDDDD
Petite touche d'humour qui ne fait pas de mal.
Édit Dark Storm : j'ai corrigé une grosse dizaine de fautes vraiment immondes, ça serai cool de faire un peu plus attention la prochaine fois…
Citer : Posté le 18/12/2016 23:15 | #
En retouchant ton code, tu peux tout faire rentrer dans un seul programme :
// Code
A->1
Goto A
// Code
A->2
Goto A
Lbl A
If A=1 Then
// ...
If A=2 Then
// ...
Citer : Posté le 18/12/2016 23:18 | #
bravo
serais-tu un deuxième compte de Zezombye
il l'a déjà dit quelque chose similaire.
Citer : Posté le 18/12/2016 23:52 | #
Euhh sa reste complexe car j'utilise des lbl en chiffres donc en gros a aura la valeur de 1 mais du coup le prog ce dira que lbl 1 egal à lbl a si je ne me trompe pas
Citer : Posté le 18/12/2016 23:53 | #
Si, tu te trompes, ça va parfaitement fonctionner.
Citer : Posté le 18/12/2016 23:56 | #
Sinon Et7f3,
Tu dis cela pour moi où Xavier59 car j ai pas compris xD peut être car il est tard xD.... Je finirais mon paint version casio coute que coûte. (sa parait ê rien ce type de prog mais si tu inclus des formes géométriques styles rectangle où autre sa devien complexe) bon j'arrête de me dissiper.
Ajouté le 18/12/2016 à 23:58 :
Okok Xavier, je vais test du coup. Sinon on ne peut donc pas cacher des programmes de la liste des progs mais que la commande prog"nom" fonctionne ??? Sinon merci bcp bcp de ton aide
Citer : Posté le 19/12/2016 09:20 | #
Choka271, sache que le Goto ne substitue pas les variables. Tu ne peux donc pas sauteur à un label 0-9 en entrant cette valeur dans la variable A et en exécutant Goto A (aucun risque).
Et, honnêtement, pour répondre à ta question... non, c'est impossible. En tous cas, pas avec les moyens donnés par la calculatrice ! Je t'invite à essayer de nommer tes programmes avec FA-124 (lorsqu'on édite un programme avec FA-124, il apparaît une ligne nommée « PROGNAME: » à l'aide de laquelle on peut modifier le nom du programme et y faire apparaître des caractères normalement interdits, notamment des lettres minuscules). Peut-être pourras-tu tomber sur un caractère suffisamment exotique pour que le menu PRGM ne l'affiche plus mais que la commande marche quand même. Cela dit j'ai des doutes !
Tous les gros jeux ont ce défaut, ce n'est pas grave au fond. Cependant si tu nommes tes sous-programmes de manière à ce qu'ils se retrouvent en fin de liste, tes utilisateurs ne seront pas gênés car leurs autres programmes seront toujours bien visibles
Citer : Posté le 19/12/2016 13:25 | #
Salut salut Lephenixnoir, dommage du coup. J'essaye avec FA-124 du coup en mettant un caractère qui peut ne pas ê identifié. Mais je suis tout autant optimiste que toi sur cette question. En tout cas je te fais pars du résultat. Je vais d'ailleurs utiliser des variables avec valeurs de a pour rassembler les progs. Je vous tiens au courant du résultat. Merci bcp
Citer : Posté le 19/12/2016 13:28 | #
Attention à cette technique de rassemblement de programmes : un programme de 10'000 octets de long ne peut non seulement pas être parcouru rapidement (il faut utiliser des recherches tout le temps), mais il est également long à exécuter. S'il faut sauter 5'000 octets pour atteindre un IfEnd parce que la condition du If n'est pas validée (notamment pour switcher entre tes différents programmes), c'est parti pour prendre une bonne seconde.
Citer : Posté le 19/12/2016 18:02 | #
J'ai testé plein de trucs, et apparemment c'est impossible :/
J'ai testé la plupart des caractères et le programme s'affiche toujours, même si dans certains cas le lancer provoque un bug... mais on ne peut même pas le lancer à partir d'un sous programme :/ Par exemple mettre un disp (◢) fera le bug mais mettre Prog "TEST◢" fera une erreur syntaxe. Pareil pour ':' qui fait aussi buger. On peut aussi faire ce bug en modifiant l'octet 0x54, mais la commande Prog ne trouvera pas le programme (même si le nom n'a aucun caractère spécial).
Du coup il faut passer par l'édition du programme en lui même, j'avais réussi à faire que l'application stats ne m'affiche pas bien une liste en faisant des tests dessus.
- Changer la taille de la sous-partie : mettre moins fait que le programme est tronqué, plus fait une erreur "mémoire pleine".
- Changer l'ID de la partie (PROGRAM) ne fait rien.
- Changer le dossier (system) fait qu'on ne peut tout simplement pas le trouver.
- Changer le type de programme fait la même chose.
Je vois pas d'autre truc qu'on pourrait changer sans que l'appli memory refuse la transmission. :/
Une solution à ton problème serait de rediriger le joueur vers le hub s'il lance un des sous programmes. Par exemple :
//Hub
"Numero du prog"?
If Ans=1 Then
53231:Prog "Prog1"
If Ans=2 Then
53121:Prog "Prog2"
//Prog 1
Ans!=53231=>Prog "HUB"
//reste du prog
À part ça la seule solution reste de programmer ça en C
(mais c'est dommage, je me souviens que j'avais réussi à éditer un programme de telle sorte que le seul moyen de le lancer était de passer par la commande Prog...)
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 21/12/2016 22:03 | #
Salut behh merci bcp... En tout cas je ne peux pas faire le résultat que je voulais. De plus mon prof si tu veux savoir est extrêmement compacte le problème c'est que je vais lui rajouter des nouvelles choses. Il va ê trop lourd... Bon pas grave. Je laisse tomber du coup. Ce serait quand même cool si on aurait la possibilités de le faire.