Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
Menu
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
Liens
¤ Vous cherchez une fonction ?
Jeux >> Graph 90+E >> Réflexion >> TETRIS CPC
TETRIS CPC
Version : 2.0 Taille : 4000 octets Ajouté le : 2021-05-22 16:40 Modifié le : 2021-06-29 08:55
Auteur et posteur :
WsedcftHors ligneMembrePoints: 104 Défis: 0 Message
Aucune image disponible
Nombre de visites sur cette page : 739
Score au progrank : 19
Note actuelle : 6.75/10 noté 2 fois
Vous devez être connecté(e) pour noter (inscription).
121 téléchargements | Voir les Tests (1)

Ce programme est sous licence Creative Commons 2.0 BY-NC



Ce programme a participé à l'édition n°27 des Casio Programming Contest.
Pour plus d'informations sur cet événement, cliquez ici.
Description :

Ce jeu était a l'origine un tetris assez basique avec une particularité :
les blocs vides qui d'habitude empêche de vider les lignes deviennent ici des blocs du jeu de la vie qui peuvent dévorer les lignes.

Je me suis inspiré du programme tetris de neuronix.

Controles : Shift pour tourner et croix directionnel pour bouger. (Les controles sont modifiables dans Option -> Controles)

Installation : les fichiers .g3p vont dans le dossier "Pict" situé a la racine de la calculette en usb.(respectez les majuscules et minuscules de "Pict" s'il n'existe pas déjà)
Le fichier .g3m va dans le dossier program qui est lui même dans @main_mem (toujours en mode clef usb)


Note sur 10 Commentaire Date de notation
6.5Voir le testLe 06.06.2021 à 11:17
7Une variation originale, et qui pour une fois oblige à réfléchir au lieu de placer mécaniquement les blocs.Le 06.06.2021 à 16:09

Commentaires :

Pages: Précédente | 1, 2, 3

FlamingKiteHors ligneMembrePoints: 484 Défis: 9 Message
Posté le 06-06-2021 à 10:11 | #
Les 2 lignes deviennent une seule, c'est pour ça que je ne comprends pas x)
WsedcftHors ligneMembrePoints: 104 Défis: 0 Message
Posté le 06-06-2021 à 10:25 | #
Il est normal que les blocs "creux" classiques du tetris fusionnent avec les blocs bleus pleins mais si les blocs normaux fusionnent... moi non plus je ne comprends pas trop.
Je viens de tester et tout fonctionne chez moi.
Peut-être devrais-je mettre des screens en description pour expliquer un peu mieux le jeu ?
LephenixnoirHors ligneAdministrateurPoints: 21017 Défis: 143 Message
Posté le 06-06-2021 à 16:11 | #
Nice, le jeu n'a plus rien à voir avec la version du CPC ! Les images marchent sans problème, l'affichage est clair, et du coup on peut stratégiser sur le placement des blocs sans problème !

Il n'y a vraiment qu'un problème : c'est super lent ! J'ai joué avec overclock sans difficultés, mais c'est vrai qu'on n'est pas trop « dans l'action ». Si tu veux un coup de main sur les algos (à condition de bien expliquer) je serai ravi d'aider
WsedcftHors ligneMembrePoints: 104 Défis: 0 Message
Posté le 06-06-2021 à 22:53 | #
Les parties qui posent problème sont :
-les calculs liés au jeu de la vie qui sont un empilement de quatres For fois deux passages (calcul de la survie de la "vie" et de l'apparition de nouvelle vie)
Cette partie n'est probablement pas optimisée à 100% mais il sera difficile de faire beaucoup plus rapide.

-les calculs de génération initiale de la "vie" sur lesquels j'ai déjà des idées je pense arriver à rendre ce temps inférieur à deux secondes.

Je poste le bout de code qui concerne ça commenté dans la soirée de demain.
Peut-être essayer de rendre compatible avec c.basic ?
Merci pour vos retours super sympa sur le jeu.
WsedcftHors ligneMembrePoints: 104 Défis: 0 Message
Posté le 07-06-2021 à 21:06 | #
{N, M} -> Dim Mat B 'initialise la matrice b comme la A
    For 1 -> E To N  'boucle For qui balaie en hauteur
        For 1 -> F To M  'boucle For qui balaie en largeur
            If Mat A[E, F] = 2 :Then  'vérification de la survie de la "vie"
                0 -> L 'initialise L
                For 1 -> X To 3 'Balaie en 3*3 la zone
                    For 1 -> Y To 3
                        (N >= E + X - 2) * (1 <= E + X - 2) * (F - 2 + Y >= 1) * (F - 2 + Y <= M) => Mat A[E - 2 + X, F - 2 + Y] = 2 => Isz L 'la première partie sert a éviter les erreur de matrice
                    Next
                Next
                (L = 3) + (L = 4) => 2 -> Mat B[E, F]'la cellule reste
                (L < 3) + (L > 4) => 0 -> Mat B[E, F] 'la cellule est suprimmée
            Else
                
                0 -> L
                For 1 -> X To 3 'même principe pour l'apparition d'une cellule
                    For 1 -> Y To 3
                        (N >= E + X - 2) * (1 <= E + X - 2) * (F - 2 + Y >= 1) * (F - 2 + Y <= M) => Mat A[E - 2 + X, F - 2 + Y] = 2 => Isz L
                    Next
                Next
                If L = 3 :Then
                    2 -> Mat B[E, F]
                    50 + S -> S 'augmente le score
                Else
                    Mat A[E, F] -> Mat B[E, F] 'laisse la cellule intacte
                IfEnd
            IfEnd
        Next
    Next
    Green Text 65, 270, "Ok"
    Mat B -> Mat A 'retransfère la B dans la A
    ClrMat B
    Green Text 85, 270, "Ok"


Voila la partie la plus lente du code.

Pages: Précédente | 1, 2, 3

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2021 | Il y a 39 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