SNAKE2

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 21 août 2005 à 22:51
Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010 - 23 août 2005 à 20:57
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/33371-snake2

Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010
23 août 2005 à 20:57
lol
Vous avez tout à fait raison ; cela dit, ce qui me serait venu le premier à l'esprit serait d'utiliser des boucles, pas redim, parce que ce n'est pas son objectif principal de vider des tableaux......

Galain, si tu pouvais ajouter aussi le changement de vitesse en début de partie... là on doit appuyer sur F3 à chaque début de partie, un peu répétitif
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
23 août 2005 à 20:41
tout le monde s'en fout, mais je rejoins Liquide. il n'est pas "naturel" de donner des efforts inutiles à faire, juste sous prétexte que le processeur en est capable. (sans méchanceté...)
celà dit, je n'ai pas regardé le code^^
PCPT
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
23 août 2005 à 20:24
Saros , c'est vrai que j'y suis allé un peu fort, mais ce n'est pas du détail, une boucle est faite a 30*50 et une a 1500 fois casi instantanément l'une apres l'autre, vb n'est deja pas un gage de rapidité, autant le faire dès le départ.
Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010
23 août 2005 à 14:33
Liquide > tu avais écrit "deux boucles l'une à la suite de l'autre", et j'avais pas regardé le code pour vérifier ^^ et c'est pas une histoire d'exposant, ça fait en tout 30*80=2400 boucles, qui est encore une fois relativement peu par rapport aux fréquences des processeurs actuels, surtout si c'est exécuté qu'une seule fois en début de partie
Mais bon c'est du détail.....
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
23 août 2005 à 14:17
Salut à tous !
Je viens de mettre à jour The Snake, alors allez y jetter un coup d'oeil !
La mise à jour comprend : amélioration graphique (on peut choisir les couleurs du snake, de sa tête, de la piste et du morceau de snake).
Il y a une aide plus détaillée, un high score, les variables sont renommées et déclarées, on peut enlever le son, la sélection de la vitesse est améliorée (avec une progressbar pour être plus ésthétique).
Et pour finir, les couleurs, la (dés)activation du son et le high score sont sauvegardés sur le PC !
Dîtes moi ce que vous en pensez !
J'ai aussi corrigé le bug mis en avant par Galain, que je remercie, et j'ai tenu compte de vos remarques sur les tableaux dynamiques !
@+
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
22 août 2005 à 22:26
Saros, les boucles imbriqué c'est plus 80 fois que ca gere mais c'est une question d'exposant apres
Profil bloqué
22 août 2005 à 22:24
salut à tous
Mea culpa : je me suis trompé : le redim fonctionne très bien mais il ne faut pas déclarer le tableau par un dim matrice%(0 to 50,0 to 0) mais par private matrice%() sans le dimensionner
Même après plus de 25 ans de Basic on fait des bétises
Pour Saros je vais regarder pour le bug concernant l'appui des touches

Merci et a+

Galain
Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010
22 août 2005 à 22:23
Sur les processeurs actuels 80 boucles c'est relativement peu de choses....
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
22 août 2005 à 22:21
2 boucles l'une a la suite de l'autre (50 et 30, faire le calcul de nombre a initialiser)!!!! je doute qu'il n'y pas un gain

Concernant le redim, 1 seuls fois suffit, il suffit juste de ne pas lui avoir attribué une valeur a la déclaration de la varaible mais lui affecté par justement un redim, par la suite.
Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010
22 août 2005 à 22:18
Fais pas des boucles If indépendantes pour le traitement de KEY, utilise ElseIf
Mieux, passe par un tableau indiquant l'état des touches, et traite le une fois par tour
Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010
22 août 2005 à 22:16
Il y a un bug, on peut repartir directement dans la direction inverse du serpent en appuyant très vite sur bas-gauche ou haut-gauche (si on va vers la droite)
Tu devrais t'arranger pour n'autoriser qu'un seul appui sur une touche à la fois
Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010
22 août 2005 à 22:14
On peut faire :
Redim matrice%(0 to 0)
matrice%(0) = 0
Redim matrice%(0 to 40)
Toutes les valeurs sont à 0 ;)
Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010
22 août 2005 à 22:12
Si c'est pour une initialisation vaut mieux utiliser une boucle for. La valeur qui est stockée dans les tableaux avec le Redim est 0 car c'est la valeur par défaut d'un Integer, mais c'est forcément la valeur que l'on veut au départ.... Et puis on y gagne peu de chose
Profil bloqué
22 août 2005 à 22:09
salut Liquide
tu ne peux faire un redim 2 fois de suite pour le même tableau avec les mêmes dimensions ou alors je me trompe

Galain
Profil bloqué
22 août 2005 à 22:06
Salut à tous
Pour revenir au Redim dans la version Snake2 le gain de temps est plus que minime car ce tableau n'est vidé qu'une sele fois en début de partiece qui n'est pas le cas dans le snake de Violent_Ken

Galain
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
22 août 2005 à 22:04
parce que faire 1500 bouclage est plus rapide que faire un redim 2 fois par exemple ?

pour le preserve, on avait compris, je ne sais pas si tu avais remarqué !!!!!
Profil bloqué
22 août 2005 à 22:01
Salut à tous
Redim ne fonctionne pas dans notre cas car le tableau matrice(x,y) est déjà dimensionné par un Dim
Le Redim ne fonctionne que si l'on change une ou plusieurs dimensions d'un tableau déjà dimensionné.
Preserve permet de garder les valeurs du tableau pendant un redimensionnement

exemple :
dim matrice%(0 to 30)
for x% =0 to 30
matrice%(x%)= x%
next x%
redim preserve matrice(0 to 40) --> les valeurs des indices 0 à 30 sont conservées et les valeurs d'indice 31 à 40 sont mises à 0

galain
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
22 août 2005 à 21:51
oui t'a raison c'est moi qui avait mal lu désolé.
Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010
22 août 2005 à 21:48
Redim Preserve pour garder la mémoire
Redim tout court pour la vider

C'est bien ce que j'ai écrit avant
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
22 août 2005 à 21:46
Ah !!!! alors il doit y avoir un probleme, le preserve est sensé garder les valeurs en mémoire et non la vider !!!, juste le redim, vide toute la mémoire attribué, avec une reaffectation de la taille bien sûr. Ou alors je n'ai pas saisis le principe du redim, ce qui est possible.
Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010
22 août 2005 à 21:43
Redim à la base c'est pour les redimensionner, mais on peut l'utiliser sans le mot clé Preserve pour vider la mémoire. On doit y gagner côté vitesse...
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
22 août 2005 à 21:40
Pour les screens il exite ScreenRip gratuit et "nickel".

J'en reviens au 1er snake, il y a quand meme mieux pour vider des tableaux plutot que d'utiliser des boucle "for next", je crois que le "redim" doit etre plus approprié, me trompe je ?
Profil bloqué
22 août 2005 à 21:20
Salut
Merci à tous pour les infos pour les captures d'écran
A+ les gars

Galain
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
22 août 2005 à 19:48
clair. j'en ai même déjà vu un qui laissait sa pub sur le screen.
version démo ou période trial sans doute...
(de pire en pire!!)

pas contre Galain, il doit y en avoir des gratuits ici (et en open bien sûr)
de mémoire, ScSami en a fait un, en OCX qui est nikel, mais je ne sais plus si bmp ou jpg....
PCPT
Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010
22 août 2005 à 17:52
Utilitaire payant pour faires des screens.... arnaque powaa..
Profil bloqué
21 août 2005 à 23:39
Salut PCPT
Merci pour l'info

Galain
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
21 août 2005 à 23:32
il y a plein d'utilitaires gratuits ou payants, mais perso, j'en suis encore au bon vieux MSPaint.
ta fenêtre en premier plan, tu appuies sur la touche [Impr écran Syst] (au dessus des flèches directionnelles), puis tu ouvres Paint, édition/coller. et si tu as XP, tu peux l'enregistrer au format .jpg, elle sera conpressée.
sinon, .bmp puis compressée avec ACDSEE ou n'importe quelle appli de ce genre.

PCPT
Profil bloqué
21 août 2005 à 23:28
Salut PCPT
Merci de ta traduction .
Le mot "embellir" est peut-être un peu fort vu ce que j'ai fait
La pomme est rouge au lieu d'être de la même couleur que le serpent( vert) et j'ai rajouté la visualisation du score .
Le gros travail a été de comprendre l'algorithme du jeu pour trouver le bug dont parlait Violent_Ken que je tiens à remercier encore une fois .
Avec quoi fait-on une capture d'écran sur un jeu qui tourne ? Si tu peux me répondre cela m'intéresse

Galain
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
21 août 2005 à 23:20
pardon.
une capture d'écran s'il te plaît. si tu as "embelli" un jeu existant, çà pourrait être pratique...
PCPT
Profil bloqué
21 août 2005 à 23:11
Salut PCPT
tu peux traduire ton Screen svp...

Galain
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
21 août 2005 à 22:51
screen svp...
PCPT
Rejoignez-nous