Page 2 sur 10

Re: Le Temple

Message non luPosté: 11 Mai 2018, 10:47
de puppy65
@LeJKational

Ton jeu sera compatible TI-83 Premium CE/84 Plus CE, et TI-84 Plus CSE.

Pour les chaines c'est effectivement possible mais assez difficile pour un débutant :(

Re: Le Temple

Message non luPosté: 11 Mai 2018, 11:44
de Ti64CLi++
Ce n'est pas très compliqué de mettre plusieurs noms dans une chaine, et de les récupérer comme tu veux. ;)
Il suffit de tous les séparer par un même caractère, par exemple /, et avec la fonction inString(Chaine principale, sous-chaine à rechercher[, position de départ]) tu peux récupérer la position d'un ou plusieurs caractère dans la chaine.
Donc en faisant inString(Str1,"/")->A tu trouveras la première occurrence du caractère '/' dans la chaine Str1, et avec inString(Str1,"/",A+1)->B tu trouveras la suivante. Et ainsi de suite. ;)
Ensuite, avec la fonction sub(chaine principale, position de départ, nombre de caractère) tu peux extraire une partie de la chaine, et avec les bon paramètres, par exemple sub(Str1,A+1,B-A-1), ça prend le premier nom ;)

Re: Le Temple

Message non luPosté: 11 Mai 2018, 12:00
de FjFk
ok, merci, je vais essayer.
et merci aussi puppy65

Re: Le Temple

Message non luPosté: 11 Mai 2018, 22:42
de loupiot
Voilà le code que j'ai proposé à leJKnational pour son système de classement :
On a Chn1 qui vaut par défaut "NOPSEUDONOPSEUDONOPSEUDONOPSEUDONOPSEUDONOPSEUDONOPSEUDONOPSEUDONOPSEUDONOPSEUDO"
On a ⌊J1, qui stocke la longueur de chaque pseudos de Chn1. On a donc à l'origine {8,8,8,8,8,8,8,8,8,8,}

Si par exemple on a Chn1="loupiotBisamleJKnational", alors on aura ⌊J1={7,6,12}

On limite l'entrée des pseudos à 20 caractères
Le classement est noté S. Le but va être de coupé Chn1 en 2, une partie qui est les éléments de Chn1 entre 1 et S-1, une autre entre S et 9. On inclut entre ces deux chaînes le pseudo rentré. On fait de même avec la liste. Son intérêt est l'affichage des pseudos dans un tableau.

L'affichage des pseudos (sans les scores car j'ai pas le nom de la liste des scores:
Code: Tout sélectionner
1→A
For(N,1,9
⌊J1(N→B
Output(N,1,sousch(Chn1,A,B
"rajoute le score ici
B+A→A
End
Output(10,1,sousch(Chn1,A,⌊J1(10


Le découpage des chaînes. J'ai des doutes sur son efficacité, j'ai des problèmes avec des cas particuliers (si S est maximal ou minimal).
Code: Tout sélectionner
""→Chn0
repeat longueur(Chn0)<21 et longueur(Ch0)>0
Input "PSEUDO : ",Chn0
End
longueur(Chn0→X
⌊J1(S→P
1→B
"decoupage de la liste
For(A,1,S-1
B+⌊J1(A→B
If A=1
Then
{⌊J1(1→⌊PIV1
Else
augmenter(⌊PIV1,{⌊J1(A→⌊PIV1
End
End
"B c'est la position du premier caractère du pseudo dans la chaîne
For(A,S,9
If A=S
Then
{⌊J1(S→⌊PIV2
Else
augmenter(⌊PIV2,{⌊J1(A→⌊PIV2
End
End
"decoupage de la chaîne
If S=1
Then
Chn0+sousch(Chn1,1,longueur(Chn1)-⌊J1(10→Chn1
augmenter({X},⌊PIV2→⌊J1
End
If S=10
Then
augmenter(⌊PIV1,{X→⌊J1
sousch(Chn1,1,longueur(Chn1)-⌊J1(10))+Chn0→Chn1
End
If S≠1 et S≠10
Then
sousch(Chn1,1,B-1)+Chn0+sousch(Chn1,B,longueur(Chn1)+1-B-⌊J1(10→Chn1
augmenter(augmenter(⌊PIV1,{X}),⌊PIV2→⌊J1
End


Si quelqu'un voit comment économiser de la mémoire, car ce script sera à priori utilisé 5 fois ...

Re: Le Temple

Message non luPosté: 11 Mai 2018, 23:43
de Bisam
Ton idée est inutilement compliquée.
Premièrement, il est inutile de définir des pseudos au départ... Il suffit de les ajouter au fur et à mesure.
Deuxièmement, il n'est pas utile non plus d'insérer les pseudos au milieu de la chaîne : les nouveaux pseudos seront rajoutés à la fin.
Il faut juste se rappeler à quelle position se situe le pseudo.
Ensuite, partout où on en a besoin, on peut se servir de cette position comme identifiant du joueur (par exemple dans la liste des scores) et on ne va chercher le pseudo dans la chaîne que lors d'un affichage.

A vrai dire, je n'ai pas bien compris à quoi servait ton deuxième bout de code, loupiot.

Re: Le Temple

Message non luPosté: 12 Mai 2018, 09:16
de FjFk
si c'est pas bon, je fait comment car je suis vraiment embêtée car mon jeu est en état de pause pour son dév.
a moi qu'en attendant, je fait les scores et je mettrais dans un second tps les pseudos ?
j'ai ajouté un sondage

Re: Le Temple

Message non luPosté: 12 Mai 2018, 09:59
de Bisam
Ce qu'il faut sans doute que tu comprennes, c'est qu'un programme quel qu'il soit ne s'écrit que très rarement d'une seule traite, comme ça, en mettant des tout bout à bout.

En général, il faut y avoir bien réfléchi auparavant, avoir dégagé les différentes structures, compris comment les relier pour ensuite mettre en place le code qui va faire ce qu'on veut.

Toi, pour l'instant, tu sembles rédiger ton programme "au kilomètre", c'est-à-dire au fur et à mesure qu'il te vient des idées, mais sans avoir les connaissances ni avoir réfléchi à ce que tu veux faire ou comment le faire.
Alors, certes, nous pouvons t'aider à faire tel ou tel petit bout de code... mais si tu ne sais pas comment le mettre dans ton tout parce que tu n'as pas suffisamment de recul, ça ne marchera pas.

Faire des copier-coller mis côte-à-côte fera peut-être un programme fonctionnel, mais un programme qui ne reflètera en rien ce que tu as pensé (puisque ce sont les autres qui ont pensé pour toi) et qui sera quasiment impossible à maintenir pour toi... puisque tu n'en connaîtras même pas la structure.

Un programme, ça commence par un cahier des charges (que va-t-il y avoir dedans ? comment les différentes choses vont interagir entre elles ? interagir avec l'utilisateur ?) puis on s'occupe de réfléchir à la manière de le mettre en oeuvre (comment enregistrer et manipuler les différents paramètres dont je vais avoir besoin ?) et enfin, on rédige.
Le plus difficile, dans un programme pour TI, c'est que tu vas à la fin devoir tout taper en perdant en quelque sorte la structure car il n'est pas évident de séparer physiquement les différents morceaux de programme...

Bref, je ne veux pas te décourager, mais au contraire t'inciter à rentrer beaucoup plus en profondeur dans ce que tu veux faire. Tu n'y arriveras pas si tu ne fais que survoler. Commence donc par connaître mieux les possibilités offertes par ta calculette et par mieux structurer ce que tu veux faire... et quand tu auras des idées plus précises, on pourra t'aider bien plus efficacement.

Re: Le Temple

Message non luPosté: 12 Mai 2018, 10:13
de FjFk
alors,
oui
et non, pas de copier collé car je fait tout manuellement sur chaque petites touches de la calculatrice.
je le sais, no pg est un vrais bazar mais ça fonctionne, je le développe en fonction de mes envie et des connaissances que j'ai pas. je le sais, un jours, il y auras un gros bug dans le pg et il y auras plus d'évolution car j'ai pas envie de le refaire.
mais en attendant, je me débrouille comme je peux et je le publierais.

Re: Le Temple

Message non luPosté: 12 Mai 2018, 10:56
de loupiot
mon script marche, il est juste pas génial. Le problème défaire un tableau des scores où on rajoute des pseudos un à un, c'est qu'on a très vite dépasser les 10 pseudos, et alors l'affichage sera compliqué.
Si j'ai ce tableau de scores
Image
et qu NOUVEAUPSEUDO fait la 5ème meilleur performance, voilà ce qui arrive
Image
tous les pseudos entre la 5ème et 9ème place sont descendus d'un cran, le dernier pseudo a disparu

edit : faire un classement sans pseudo est en effet beaucoup plus simple, il suffit de faire une liste contenant les records, de lui supprimer son dernier élément et ajouter le score qui vient d'être fait. T'as plus qu'à arranger la liste dans l'ordre croissant (une fonction est disponible pour ça)

Re: Le Temple

Message non luPosté: 12 Mai 2018, 12:10
de FjFk
mais t'est génial,
c'est pile ce que je veux et qu'il n'y ai que 10 scores donc, merci.
ce que je vais faire, c'est 5 scores avec pseudo et pts en dessous.
merci beaucoup loupiot !!!