Seuls les membres ayant 30 points peuvent parler sur le chat.
Gestion du compte
Calculatrices
Graph 35 à 100 (CFX)
Graph 25/25+ (Pro) (fx-7400)
Graph 35+USB/75/85/95 (SD)
Graph 100/100+ (AFX)
ClassPad 300/330
Fx-CG 10/20
Fx-CP 400
Graph 90+E

Retour aux miniatures
Tri avancé
Liste des programmes
Nom Date
SNKEmini
Endless
Cave Fight
JEUMAT2
Auto Conv Depas
AlphaRun
Race
Pixel
Suite et lim
Faster !
Dream penalty
Aviator
Osu Mania
RADIOAC
Epic Story
Zelda botn
ETTSTIDD
2nd degre compl
Micro Battle
Parachute
Pages: 1,2,3,4 >>

¤ Transférer un programme sur
sa calculatrice

¤ Vous cherchez une fonction ?
Jeux >> Graphs 75/85/95 (SD) >> Action/Sport >> SNKEmini
SNKEmini
Version : v4 Taille : 198 octets Ajouté le : 2019-08-22 04:57 Modifié le : 2019-08-24 10:18
Auteur et posteur :
RedcmdHors ligneMembrePoints: 134 Défis: 2 Message
Planète Casio - Jeu Casio action ou sport - SNKEmini - RedCMD - Calculatrices
Nombre de visites sur cette page : 521
Score au progrank : 18
Pas encore de note !

Vous devez être inscrit(e) et avoir 20 points ou plus pour noter.
50 téléchargements | Soumettre un test


Description :

C'est SNKEmini!
La taille de ce jeu est super petite. 255 198 octets!
Il est suffisamment petit pour tenir en mode RUN•MAT!
Il n'est pas nécessaire de créer un programme en mode PRGM pour le lancer.

Essayez de voir si vous pouvez réduire cette taille (sans supprimer aucune fonctionnalité)

Cliquez pour afficher le code
Cliquer pour enrouler
ClrText
4 -> Q~Y
{7, 21 -> Dim Mat A
Mat A -> Mat B
Do
    If X = Q(Y = R :Then
        Do
            RanInt#(1, 7 -> R
            RanInt#(1, 21 -> Q
        LpWhile Mat A[R, Q
        Locate Q, R, "●"
    Else
        Mat A[W, V
        0 -> Mat A[W, V
        Locate V, W, " "
        Mat B[W, V -> W
        Ans -> V
    IfEnd
    U
    GetKey => 6 - 2MOD(GetKey, 4
    U > 3 Xor Ans > 3 => Ans -> U
    X
    Y -> T
    U > 3 => 1 + MOD(Y - U + 4, 7 -> Y
    U < 3 => 1 + MOD(X - U, 21 -> X
    Locate X, Y, "O
    X -> Mat A[T, Ans
    Y -> Mat B[T, Ans
LpWhile 0 = Mat A[Y, X

Cette version est plus grande car elle a plus de fonctionnalités
La taille est de 241 octets
Enveloppe d'écran
La 'pomme' ne se pose jamais sur le serpent
Les O sont utilisés pour le corps et la pomme est un ●
Vous ne pouvez pas vous tuer en reculant

Essayez de le rendre le plus petit possible, tout en le rendant jouable!
Cliquez pour afficher le code
Cliquer pour enrouler
ClrText
3 -> Q~Y
{7, 21 -> Dim Mat A
Mat A -> Mat B
Do
    If X = Q(Y = R :Then
        RanInt#(1, 7 -> R
        RanInt#(1, 21 -> Q
    Else
        Mat A[W, V
        0 -> Mat A[W, V
        Locate V, W, " "
        Mat B[W, V -> W
        Ans -> V
    IfEnd
    Locate Q, R, 8
    GetKey => 2MOD(GetKey, 4 -> U
    X
    Y -> T
    U < 3 => Y + U - 1 -> Y
    U > 3 => X + U - 5 -> X
    Locate X, Y, 0
    X -> Mat A[T, Ans
    Y -> Mat B[T, Ans
LpWhile 0 = Mat A[Y, X

Cette version a été faite pour être aussi petite que possible (tout en restant jouable)
La taille est 198 octets
Frapper le bord de l'écran va vous tuer
Revenir sur vous-même vous tuera
Courir en toi va te tuer
Le corps est composé de 0 et la pomme est un 8


Commentaires :

Pages: 1, 2 | Suivante

MassenaHors ligneRédacteurPoints: 843 Défis: 3 Message
Posté le 22-08-2019 à 10:10 | #
Wow ! Il est vraiment tout petit !
LephenixnoirEn ligneAdministrateurPoints: 15530 Défis: 136 Message
Posté le 22-08-2019 à 10:15 | #
Je sais pas trop comment gérer le Else, mais j'ai une piste ici :

     If X = Q And Y = R :Then
        RanInt#(1, 7 -> R
        RanInt#(1, 21 -> Q

Tu peux l'écrire comme ceci :

Q+(X=Q)RanInt#(1,21→Q
R+(Y=R)RanInt#(1,7→R

Edit : Non totalement pas, ça ne marche pas. My bad. x)

Si j'ai bien compris, pour chaque O du serpent, tu notes dans la matrice la direction du O suivant pour tout chaîner ? C'est intelligent.

Je ne savais même pas qu'on pouvait écrire des programmes dans RUN/MAT... xD
MactulHors ligneMembrePoints: 640 Défis: 0 Message
Posté le 22-08-2019 à 11:40 | #
moi non plus, je ne savais pas que l'on pouvait écrire des prog dans run-mat, tu fais ça comment ?
MilangHors ligneMembrePoints: 304 Défis: 0 Message
Posté le 22-08-2019 à 11:42 | #
Super jeu que le snake !
C'est bizarre, j'ai eu quelques bugs au niveau de la ligne Mat A[W, V
Sinon, je trouve ça bien fluide !
J'en ai codé un à la minute, mais le mien n'est pas aussi petit par contre il gère les bords et affiche le score pour 356 octets (titre compris)

MilangHors ligneMembrePoints: 304 Défis: 0 Message
Posté le 22-08-2019 à 11:45 | #
est-ce que ta technique quand tu chaines les 0 fait ralentir le serpent ou pas
EDIT je suis con, bien sur que non
RedcmdHors ligneMembrePoints: 134 Défis: 2 Message
Posté le 22-08-2019 à 12:01 | #
Yea I used every single technique I could think of to make it as small as possible
I used Ans instead of variables (as much as possible)

If X != 0 : Then
is the same as
If X : Then

I was going to save the directions as 1,2,3,4 but instead did 0,1,2,3 because it saved 2 bytes of space

When I first made Snake, I tried making it as fast as possible
I did what other people did: which was save the locations (or direction) of the head to 2 lists, but it was too slow to scroll the list up every time
So I saved the direction to a matrix A which ended up being much faster and took less space
LephenixnoirEn ligneAdministrateurPoints: 15530 Défis: 136 Message
Posté le 22-08-2019 à 12:25 | #
Alright, might as well try something else. About this section:

    Ans = 28 => U => 2 -> U
    Ans = 37 => U != 2 => 0 -> U
    Ans = 27 => U != 1 => 3 -> U
    Ans = 38 => U != 3 => 1 -> U

For a different direction assignment you can just do:

MOD(Ans,4
U ≠ MOD(Ans+2,4 ⇒ Ans→U

I don't know how you would need to adapt the code below though.
MilangHors ligneMembrePoints: 304 Défis: 0 Message
Posté le 22-08-2019 à 12:27 | #
in my program i used 2 lists, but this is not the list we scroll, but the place were coords are written
it is fast too, but because of that the list are much bigger
KikoodxHors ligneMembrePoints: 1325 Défis: 7 Message
Posté le 22-08-2019 à 12:54 | #
Just passing by, two small optimisations you can do :
1. Replacing the "O" string by the number 0 in the corresponding Locate (1 octet)
Locate X, Y, "O
Locate X, Y, 0

2. Replacing the "●" special character by another number (let's say 8) so you can save three octets (the ● weight is two octets).
Locate X, Y, "●"
Locate X, Y, 8


And, of course, the clean optimisation of Lephenixnoir up bellow will lower the total program size even more
MistercybHors ligneMembrePoints: 58 Défis: 0 Message
Posté le 22-08-2019 à 14:19 | #
255 octets
Bien joué en tout cas

Pages: 1, 2 | Suivante

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2019 | Il y a 115 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd