Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.
Menu
Calculatrices
Graph 35 à 100
Graph 25+Pro/25+E/25+E II
Graph 35+USB/75(+E)/85/95 SD
Graph 100(+)
Classpad 300/330(+)
fx-CG 10/20 (Prizm)
Classpad 400(+E)
Graph 90+E
fx-92+ SC
Liens
¤ Transférer un programme sur
sa calculatrice

¤ Vous cherchez une fonction ?
Jeux >> Graph 35 à 100 >> Projet >> Snake 2007
Snake 2007
Version : Apha 1.3 Taille : 3500 octets Ajouté le : 2007-04-07 17:17 Modifié le : 2007-05-18 14:07
Auteur et posteur :
PhixmeHors ligneMembrePoints: 136 Défis: 0 Message
Aucune image disponible
Nombre de visites sur cette page : 9829
Score au progrank : 27
Pas encore de note !
Vous devez être connecté(e) pour noter (inscription).
1490 téléchargements | Soumettre un test


Description :

Snake en mode graphique

Evolution du Projet:
- Menu: 100%
- Enregistrement d'un reccord: 0%
- Graphisme du Snake: 40%
* G?rer des "billes": 0%
* G?rer la "queue du Snake": 60%

Langues: Fran?aise / Anglaise

Pour plus de descriptions t?l?charger le fichier zip et contactez-moi.


Commentaires :

Pages: Précédente | 1, 2, 3, 4, 5 | Suivante

ChoumssHors ligneMembrePoints: 44 Défis: 0 Message
Posté le 26-11-2008 à 13:15 | #
Salut je suis nouveau ici, je programme un peu sur ma 65 à mes heures perdues!
J'ai souvent essayé de faire un snake mais je n'ai jamais reussi !
Bon le snake en lui meme la direction dans laquelle il va c'est plutot simple mais ça toujours été cette queue mon probleme!

il faudrait la reperer tout le temps pour pouvoir l'effacer et son reperage est plutot complexe ! (du moins il me semble..)

Enfin si quelqu'un pouvait m'éclairer ce serai sympa !
merci
PierrotllHors ligneAncien administrateurPoints: 5488 Défis: 41 Message
Posté le 26-11-2008 à 14:08 | #
Elle est souvent posée cette question, faudrait faire un tuto

Alors, le plus simple pour gérer un snake, c'est d'utiliser 2 matrices. Une matrice pour la "map" qui a les dimensions de l'espace ou se déplace le snake (par exemple 21*7 si tu utilise le Locate)
Cette matrice sert a savoir quelle case sont libres et quelles cases sont occupées (par une pomme, un morceau du serpent, ou un mur)

La seconde matrice sert a enregistrer les emplacements de chaque morceaux du serpent.
Cette matrice doit donc avoir 2 lignes (pour les coordonnées de chaque point, abscisse et ordonnée) et autant de colonne que le serpent a d'anneau. Donc pour un serpent de longueur 5, on utilise une matrice de 5*2. Dans la première ligne on stocke l'abscisse, dans la seconde on stocke l'ordonnée.

Quand le snake avance, seuls 2 points changent, la tête et la queue, donc inutile de bouger tous les nombres dans la matrice, on va simplement inscrire les nouvelles coordonnées de la tête là où étaient stockées les coordonnées de la queue (maintenant effacée)

Exemple, un snake de 5 de long qui avance sur la première ligne de l'écran, la matrice va faire :
[1,2,3,4,5]
[1,1,1,1,1]

[6,2,3,4,5]
[1,1,1,1,1]

[6,7,3,4,5]
[1,1,1,1,1]

[6,7,8,4,5]
[1,1,1,1,1]

Tu comprend?
Il faut donc mémoriser l'emplacement de la tête dans cette matrice, et quand la tête arrive au bout de cette matrice, elle revient au début.

De cette manière, on peut effacer la queue car on a mémoriser ses coordonnées, et stocker les coordonnées de la tête a ce même emplacement.

Avec ça tu devrait pouvoir faire un bon snake. Si tu as un peu de mal a visualiser, regarde le code de celui ci, il t'aidera a comprendre.
ChoumssHors ligneMembrePoints: 44 Défis: 0 Message
Posté le 26-11-2008 à 15:08 | #
Merci beaucoup pour la reponse eclair !
je commence à comprendre...et après pour l'agrandissement du serpent tu rajoute genre 1 colonne à la fin de la matrice si j'ai bien compris?

En tout cas merci beaucoup !

je posterai bientot un pti jeu que chui en train de finir
@+ tard
PierrotllHors ligneAncien administrateurPoints: 5488 Défis: 41 Message
Posté le 27-11-2008 à 00:19 | #
Exactement, et pour rajouter une colonne a la matrice, il existe la fonction Augment qui s'utilise comme ça :

Augment(Mat A,[[0],[0]]->Mat A
Et voila une colonne rajoutée
SpiderHors ligneMembrePoints: 398 Défis: 4 Message
Posté le 16-05-2009 à 13:51 | #
Ce qui me fait marrer dans un snake c'est qu'on peut modifier la vitesse très simplement:

Dans tous les snakes normalement on va tout mettre dans une grande boucle infinie,et ben tu met un petit bout de code au bon endroit,je cite:
For 1->[Variable X] To [Plus ce nombre est grand,plus le jeu serra lent]
Next

J'ai fait ça avec mon snake (en construction) parce que mon père trouvait ça trop rapide !!! lol
Mais quand tu t'amuses à mettre 2000...
AdbookHors ligneMembrePoints: 1050 Défis: 39 Message
Posté le 31-01-2011 à 18:37 | #
Le problème avec cette commande, c'est que ça ralentit aussi la sensibilité des touches et offre un jeu moins esthétique. (Je cherche un moyen de passer outre mais j'y arrive pas... )
Light_spiritHors ligneMembrePoints: 2099 Défis: 38 Message
Posté le 03-02-2011 à 17:39 | #
Pourquoi utiliser 2 matrices alors qu'on peut tout mettre dans une seule
DafpHors ligneMembrePoints: 5141 Défis: 191 Message
Posté le 03-02-2011 à 19:10 | #
On peut toujours tout mettre dans une seul, mais c'est pas forcement lisible.
Faut toujours trouver un compromis entre simplicité et rapidité.
Light_spiritHors ligneMembrePoints: 2099 Défis: 38 Message
Posté le 03-02-2011 à 23:22 | #
Lisible
TotoyoHors ligneMembre d'honneurPoints: 16103 Défis: 102 Message
Posté le 03-02-2011 à 23:34 | #
Pour mieux optimiser après ?

Pages: Précédente | 1, 2, 3, 4, 5 | Suivante

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 124 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