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 :
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 :
Dans l'autre sens, ça se fait de manière un tout petit peu plus complexe :
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 :
- 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))
- 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)
- 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>> thenmoi
viens voir mon profil et mes projets !
end
- Medericoder
- Scratcher
100+ posts
CHAT EN LIGNE - Scripts
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)
- link-potter
- Scratcher
500+ posts
CHAT EN LIGNE - Scripts
Ça ne marche pas car comme l'a dit SBissay le pseudo ne peut pas faire plus de 20 caractères._.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)
- bidulule
- Scratcher
1000+ posts
CHAT EN LIGNE - Scripts
Ce sont probablement d'anciens projets qui ne fonctionnent plus (et qui utilisaient une whitelist) 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…
- 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
hum oui et non mdrmettre [☁ chat v] à (réponse)
NilsTheChair | 5 years on Scratch | 4000+ posts | former wiki editor | 332nd FPC | CoR founder
- Medericoder
- Scratcher
100+ posts
CHAT EN LIGNE - Scripts
Juste pour information, les Variables Cloud ne peuvent pas contenir de lettres, donc ta technique va avoir (un peu) de mal à fonctionner… mdrmettre [☁ chat v] à (réponse)
- morlante
- Scratcher
100+ posts
CHAT EN LIGNE - Scripts
non tu peut aller voir, il n'y a vraiment pas de whitelist, mais c'est vraie que s sont des vieu…Ce sont probablement d'anciens projets qui ne fonctionnent plus (et qui utilisaient une whitelist) 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>> thenmoi
viens voir mon profil et mes projets !
end
- yvesmartin
- Scratcher
1 post
CHAT EN LIGNE - Scripts
vous pouvez tous jouez a pente cool
en plus ses cool
en plus ses cool
- Debility_Kheops
- Scratcher
1000+ posts
CHAT EN LIGNE - Scripts
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 ^^ vous pouvez tous jouez a pente cool
en plus ses cool
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???
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
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 ^^ 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???
~ Wiki FR ~ Wiki EN ~
Besoin d'aide ? Des questions sur le forum francophone ou ses règles ? N'hésitez pas à demander !