Page 1 of 3

programmer un record

Unread postPosted: 30 Mar 2010, 18:14
by jbofcalc
hello a tous je suis un petit nouveau sur le forum
j
e suis possesseur d'une ti83+ et en creant un progamme pierre feuille ciseau je me suis heurté a un probleme :

comment entrer un record non trafiquable ?
trafiquable me direz vous, c'est a dire?

c'est a dire que lorsque l'on allume sa calculette (disons que je veux stocké en R le record) on effectue 0-R puis dans sa calculatrice on programme que a chaque fois que l'on dépasse ce nombre R, il change et prend la valeur du nombre qui l'a dépassé. Mais ce record peut etre changé a tout moment en entrant par exemple dans la calculatrice 1254154-R
j'aimerais pouvoir crée un record qui ne puisse etre trafiqué

merci d'avance de vos reponses éclairés :)

Re: programmer un record

Unread postPosted: 30 Mar 2010, 19:11
by jacques
En ti basic, toutes les variables (y compris les listes et les matrices) non archivées peuvent être facilement changées ; donc il est impossible, en Ti-basic pur, de faire un score non cheatable.

Je te conseillerais peut être de stocker le score dans une matrice (moins utilisées et plus dur à manier que les simples variables) ; ce qui serait moins cheatable, mais plus lourd.

Re: programmer un record

Unread postPosted: 30 Mar 2010, 19:18
by jbofcalc
merci de ta reponse
alors si un record peut etre cheaté pour contourné ce chet
serait il possible de stocké ce record dans un autre programme nommé par exemple A et que a chaque fois que j'active mon programme pierre feuille ciseau il aille chercher le record dans ceT aute programme ?

Re: programmer un record

Unread postPosted: 30 Mar 2010, 19:30
by jacques
Un programme (dans n'importe quel langage) ne peux pas stocker de données dans son code. les donnés seront toujours stocké dans des variables/listes/matrices.

Le "problème" est qu'en Ti Basic, les variables peuvent être utilisées par autre chose que le programme (contrairement à l'assembleur, qui peut se faire ses propres variables non modifiables directement) ; donc on ne peut pas protéger les données enregistrées par un programme en TI-Basic d'être changées.

Re: programmer un record

Unread postPosted: 30 Mar 2010, 19:32
by jbofcalc
ok merci bcp malgrés la non possibilité de progrmmer un record non cheatable^^

Re: programmer un record

Unread postPosted: 30 Mar 2010, 20:12
by jacques
Mais de rien. :):

Et n'hésite pas à partager tes créations sur Ti-bank. :;):

Re: programmer un record

Unread postPosted: 30 Mar 2010, 21:24
by tama
En effet c'est difficile de faire un record qui ne peut pas être "cheaté" comme tu dis en TI-Basic, d'abord parce qu'il est facile de modifier les variables, mais aussi parce que le code est visible (je crois qu'il existe des programmes qui permettent de cacher le code source, faudrait chercher un peu) et on peut donc voir comment et où sont stockées les variables utilisées
Après si tu veux faire quelque chose de moins évident à trouver, il y a plusieurs solutions :

- Utiliser les variables "spéciales"
Ce sont les variables "Finance" par exemple (Apps 1:Finance), le n qu'on trouve dans le catalogue, ou les u,v,w qui sont obtenus en faisant [2nd][7], [2nd][8] ou [2nd][9]. Elles n'apparaissent pas dans la mémoire (à vérifier ?) et sont donc un poil plus compliquées à trouver.
Inconvénient : elles peuvent quand même être utilisées en dehors du programme (calcul de finances ou autres...) donc être modifiées

- Crypter les données
En utilisant par exemple une liste avec une certaine séquence pour crypter les données que t'entres (par exemple pour un record de 12345 pts, tu stockes dans L1 la séquence {2,4,6,8,10} (bien sûr ici c'est facile à deviner, amuses-toi avec d'autres combinaisons mais attention il faudra aussi la partie pour décrypter). Tu peux éventuellement mettre un peu de Random pour rendre les données aléatoires, et faire une vérification des données stockées à chaque fois que tu lances le programme à l'aide d'une clé "secrète", et si ça ne correspond pas remettre tout à 0 (bien fait !), ou mettre ça dans une image, où chaque séquence de 8 pixels correspond à 1 nombre ... enfin les possibilités sont multiples)


Enfin, si tu trouves ça trop compliqué, il doit sûrement exister des programmes assembleurs qui permettent de stocker les données dans des endroits "sûrs" où il faudra un éditeur héxa pour pouvoir aller les modifier.
Voilà voilà :D

Re: programmer un record

Unread postPosted: 30 Mar 2010, 22:27
by Bisam
Il existe une façon de sauvegarder en BASIC le score en le rendant difficilement modifiable, c'est de le sauvegarder dans une image...
En transformant le score en binaire puis en convertissant le tout en pixel, tu peux sauvegarder sous forme d'image... et ce sera quasiment illisible à moins de bien s'y connaître en programmation.

Re: programmer un record

Unread postPosted: 31 Mar 2010, 16:20
by jbofcalc
merci pour vos reponses
je comprend a peu près vos explication mais ne voit pas du tout comment les mettre en pratique sur ma calculatrice
n'etant que novice en la matiere j'aimerais si possible que vous m'éclairiez surtout pour la question du cryptage de donnés evoqué par tama, car la solution de bisam me parait un poil trop compliqué pour moi :)

Re: programmer un record

Unread postPosted: 31 Mar 2010, 16:44
by jacques
Personnellement, je te conseille plutôt d'utiliser les variables "spéciales" (c'est plus simple).

Mais pour ce qui concerne le cryptage du score dans des listes ; ça consiste à modifier le score (ex: multiplication par 2 dans l'exemple de Tama) puis à stocker chaque chiffre du score dans une liste. l'inconvénient de cette méthode est que les listes sont assez souvent utilisées (et il n'y en à que 10 de dispo) : tu risques donc de te faire effacer tes listes de scores, et donc les scores eux -mêmes...