Discuss Scratch

SBissay
Scratcher
500+ posts

CHAT EN LIGNE - Scripts

Boh, ça va encore…

Imaginons donc qu'on stoke un score par variable cloud, donc les 10 meilleurs scores, et que chaque variable doive contenir à la fois le nom du Scratcher et son score. Et pour faire ça bien, imaginons qu'on utilise la technique des noms de costumes pour reconnaître les majuscules des minuscules.

Ainsi, chaque lettre peut être quelque-chose entre a et z, A et Z, - et _. Soit 54 caractères possibles. Si on les numérote a = 1, … z = 26, A = 27, … Z = 52, - = 53, _ = 54, c'est stockable sur 2 chiffres (et il faut impérativement stocker “01” au lieu de “1” pour utiliser 2 chiffres même pour les valeurs inférieures à 10).

Maintenant, il faut trouver un moyen de séparer le codage du nom et le score (qui lui peut être stocké tel quel, c'est déjà un nombre).
Là, plusieurs méthodes :
  1. On stocke la longueur du pseudo au départ. Prend 2 chiffres (la limite des pseudos Scratch est de 20 caractères (je viens de vérifier))
  2. On utilise une valeur jamais utilisée dans le codage pour marquer la fin du pseudo (exemple : “00”, ou “55”, ou “99”, …), prend encore une fois 2 chiffres.

Mais on peut faire mieux que ça et n'utiliser qu'un seul chiffre !
En effet, si on code les caractères du pseudo en base 9 (*), on va jusqu'à 60 (= 54 en base 10), donc on n'utilise toujours que 2 chiffres par lettre, mais le chiffre 9 n'est jamais utilisé, et peut donc servir de délimiteur.

Ainsi on code le pseudo sur 40 chiffres maximum (2 par caractère, 20 caractères max), puis 1 chiffre de délimitation. Soit un score qui peut s'étendre sur 128 - 41 chiffres : 87 chiffres !
Bref, il y a de la marge…

Du coup, on peut même imaginer stocker plusieurs scores par variable, mais ça demande encore quelques astuces de délimitation…


(*) : notre écriture des nombres est basée sur le système décimal. Chaque chiffre correspond à un multiplicateur d'une puissance de 10.
Par exemple, 124 = 4 * 10^0 + 2 * 10^1 + 1 * 10^2 = 4 * 1 + 2 * 10 + 1 * 100.
On peut en fait créer une infinité d'autres systèmes numériques, basés sur tous les entiers supérieurs (strictement) à 1.
Le binaire est bien connu car utilisé pour le stockage de données numériques :
1101 = 1 * 2^0 + 0 * 2^1 +1 * 2^2 + 1 * 2^3 = 1* 1 + 0 * 2 + 1 * 4 + 1* 8 = 13.
L'hexadécimal est pas mal utilisé aussi, c'est un système en base 16, avec A = 10, B = 11, … F = 15 :
B5 = 5 * 16^0 + (B = 11) * 16^1 = 5 * 1 + 11 * 16 = 181.
Du coup, on peut utiliser un système en base 9 sur le même principe :
1234 = 4 * 9^0 + 3 * 9^1 + 2 * 9^2 + 1 * 9^3 = 4 * 1 + 3 * 9 + 2 * 81 + 1 * 729 = 922.

Donc convertir de la base 9 vers la base 10 (notre système habituel) est simple :
définir base 9 vers base 10 (n)
mettre [i v] à (longueur de (n))
mettre [mult v] à [1]
mettre [résultat v] à [0]
répéter (longueur de (n)) fois
ajouter à [résultat v] ((mult) * (lettre (i) de (n)))
ajouter à [i v] (-1)
mettre [mult v] à ((9) * (mult))
end

Dans l'autre sens, ça se fait de manière un tout petit peu plus complexe :
définir base 10 vers base 9 (n)
mettre [temp v] à (n)
mettre [résultat v] à []
répéter jusqu’à <(temp) = [0]>
mettre [résultat v] à (regroupe ((temp) modulo (9)) (résultat))
mettre [temp v] à ([plancher v] de ((temp) / (9)) :: operators)
end

Last edited by SBissay (Nov. 14, 2018 09:25:05)


Generative art :              Pivot  :               Sudoku :
morlante
Scratcher
100+ posts

CHAT EN LIGNE - Scripts

intéressants tous ça! mais vous avez dit que les chats cloud sont interdit, ok mais il n'y a qu'a tapé “chat cloud” pour se rendre compte que il y en a beaucoup, et beaucoup qui sont fonctionnel et ou des gens se rendent souvent… donc je ne sais pas trop au final…

if <<tu aime mes conseils> and <tu veux voir se que je fais>> then
viens voir mon profil et mes projets !
end
moi
Medericoder
Scratcher
100+ posts

CHAT EN LIGNE - Scripts

link-potter wrote:

Faut juste espérer qu'il ne fasse pas un score de 30 mètres long^^
THE PLATFORMER :
CONGARTULATIONS, YOUR SCORE IS :
((999999999999999999999999999999999999999999999999999999999999999999999):: variables)
YOUR USERNAME IS :
([LeSuperBGdu93pikathebest1206delacitésamèreC++Pro]:: variables)
YOUR RANK IS :
((1):: variables)

Last edited by Medericoder (Nov. 14, 2018 15:59:24)


○•-••○••-•••○•••-••••○••••MY BEST PROJECTS••••○••••-•••○•••-••○••-•○

- - - -Mii Maker 2- - - - -Find the Odd One Out- - -Messages Windows- - -Selection Square- - - - - - -Master Mind - - - -
○•-••○••-•••○•••-••••○••••-•••••○•••••-•-•-•••••○•••••-••••○••••-•••○•••-••○••-•○

link-potter
Scratcher
500+ posts

CHAT EN LIGNE - Scripts

2005200439 wrote:

link-potter wrote:

Faut juste espérer qu'il ne fasse pas un score de 30 mètres long^^
THE PLATFORMER :
CONGARTULATIONS, YOUR SCORE IS :
((999999999999999999999999999999999999999999999999999999999999999999999):: variables)
YOUR USERNAME IS :
([LeSuperBGdu93pikathebest1206delacitésamèreC++Pro]:: variables)
YOUR RANK IS :
((1):: variables)
Ça ne marche pas car comme l'a dit SBissay le pseudo ne peut pas faire plus de 20 caractères._.
bidulule
Scratcher
1000+ posts

CHAT EN LIGNE - Scripts

morlante wrote:

intéressants tous ça! mais vous avez dit que les chats cloud sont interdit, ok mais il n'y a qu'a tapé “chat cloud” pour se rendre compte que il y en a beaucoup, et beaucoup qui sont fonctionnel et ou des gens se rendent souvent… donc je ne sais pas trop au final…
Ce sont probablement d'anciens projets qui ne fonctionnent plus (et qui utilisaient une whitelist)

Try5t4n
Scratcher
100+ posts

CHAT EN LIGNE - Scripts

mdr
mettre [☁ chat v] à (réponse)

point towards ((3d::#999)+(100% pen::#125)+(games::#148)+(tests::#589)::custom)::hat pen
create::list

MATHEMATHICS




















NilsTheBest
Scratcher
1000+ posts

CHAT EN LIGNE - Scripts

Try5t4n wrote:

mdr
mettre [☁ chat v] à (réponse)
hum oui et non

NilsTheChair | 5 years on Scratch | 4000+ posts | former wiki editor | 332nd FPC | CoR founder
Medericoder
Scratcher
100+ posts

CHAT EN LIGNE - Scripts

Try5t4n wrote:

mdr
mettre [☁ chat v] à (réponse)
Juste pour information, les Variables Cloud ne peuvent pas contenir de lettres, donc ta technique va avoir (un peu) de mal à fonctionner…

○•-••○••-•••○•••-••••○••••MY BEST PROJECTS••••○••••-•••○•••-••○••-•○

- - - -Mii Maker 2- - - - -Find the Odd One Out- - -Messages Windows- - -Selection Square- - - - - - -Master Mind - - - -
○•-••○••-•••○•••-••••○••••-•••••○•••••-•-•-•••••○•••••-••••○••••-•••○•••-••○••-•○

morlante
Scratcher
100+ posts

CHAT EN LIGNE - Scripts

bidulule wrote:

morlante wrote:

intéressants tous ça! mais vous avez dit que les chats cloud sont interdit, ok mais il n'y a qu'a tapé “chat cloud” pour se rendre compte que il y en a beaucoup, et beaucoup qui sont fonctionnel et ou des gens se rendent souvent… donc je ne sais pas trop au final…
Ce sont probablement d'anciens projets qui ne fonctionnent plus (et qui utilisaient une whitelist)
non tu peut aller voir, il n'y a vraiment pas de whitelist, mais c'est vraie que s sont des vieu…

if <<tu aime mes conseils> and <tu veux voir se que je fais>> then
viens voir mon profil et mes projets !
end
moi
yvesmartin
Scratcher
1 post

CHAT EN LIGNE - Scripts

vous pouvez tous jouez a pente cool

en plus ses cool
Debility_Kheops
Scratcher
1000+ posts

CHAT EN LIGNE - Scripts

yvesmartin wrote:

vous pouvez tous jouez a pente cool

en plus ses cool
Bonjour et bienvenue sur le forum francophone de scratch. Tu viens de remonter un topic datant d'il y a 2 ans, et c'est interdit ici ^^

En plus de cela, tu viens de faire de la pub ; il y a un topic pour ça (fais un tour sur l'acueil, tout en haut de la page)

Need help? I'm here
Emeric74
New to Scratch
4 posts

CHAT EN LIGNE - Scripts

bonjour!
j'aimerais que un de mes sprite reste a un endroit sur mon arriere plan (qui est un sprite) mais il me suis.
Comment faire pour arranger ça???
Emeric74
New to Scratch
4 posts

CHAT EN LIGNE - Scripts

je suis désespéré

Last edited by Emeric74 (Sept. 30, 2023 18:29:17)

wilhelm43
Scratcher
1000+ posts

CHAT EN LIGNE - Scripts

Emeric74 wrote:

bonjour!
j'aimerais que un de mes sprite reste a un endroit sur mon arriere plan (qui est un sprite) mais il me suis.
Comment faire pour arranger ça???
Salut ! Si tu pouvais partager ton projet et me donner son lien, en plus de m'expliquer de manière détaillée ce que tu veux, ça serait parfait ^^


~ Wiki FR ~ Wiki EN ~

Besoin d'aide ? Des questions sur le forum francophone ou ses règles ? N'hésitez pas à demander !
Greetings, I'm wilhelm43, a French Scratcher.

Powered by DjangoBB