salut,
honnêtement, je suis assez impressionné par la vitesse des réponses, c'est un concept marrant, sur lequel je vais me pencher, mais je risque d'en avoir pour au moins une semaine ^^...
juste une question, la cellule en diagonale est considérées comme voisine ?
salut,
bon, finalement, j'ai fait un truc qui semble marcher, par contre, j'ai un petit souci, tous mes "organismes" meurent ou s'arrêtent d'évoluer.
Du coup pour la vie, c'est pas terrible...
main :
#include <stdlib.h>
#include <stdio.h>
#include <SDL.h>
#include "constantes.h"
#include "fonctions.h"
int main ( int argc, char** argv )
{
(void)argc;
(void)argv;
/* initialisation SDL video */
if ( SDL_Init( SDL_INIT_VIDEO ) < 0 )
{/*gestion de l'echec*/
printf( "Err / main init SDL: %s\n", SDL_GetError() );
exit(EXIT_FAILURE);
}
else /*init SDL OK*/
atexit(SDL_Quit);
/* creation de la fenêtre*/
SDL_Surface* ecran = SDL_SetVideoMode(LARG_TAB*TAILLE_BLOCK, HAUT_TAB*TAILLE_BLOCK, 16,
SDL_HWSURFACE|SDL_DOUBLEBUF);
if ( !ecran )
{
printf("Err création de la fenêtre 640x480 video: %s\n", SDL_GetError());
exit(EXIT_FAILURE);
}
ETAT tab[2][LARG_TAB][HAUT_TAB];
init_table(tab);
BOOL fin=FALSE,
pause=TRUE,
index=FALSE;
while (!fin)
{
SDL_Event event;
while (SDL_PollEvent(&event))
{
switch (event.type)
{
case SDL_QUIT:/*croix quitter*/
fin = TRUE;
break;
case SDL_KEYDOWN:/*touches*/
{
if (event.key.keysym.sym == SDLK_SPACE)
pause=TRUE;
break;
}
} /* fin de switch*/
} /*fin d'acquisition*/
if (pause)
{/*pause et edition*/
SDL_Flip(ecran);
if (!fill_surface(ecran,tab,index))
fin=TRUE;
pause=FALSE;
}
index=maj_tableau(ecran, tab, index);
SDL_Delay(100);
SDL_Flip(ecran);
} /* fin de boucle principale*/
return (EXIT_SUCCESS);
}
Ahhh c'est pas mal ça!
Par contre il y a le bug habituel qui fait que si je clique et que je me déplace assez vite bah ça ne me met qu'un point tout deux kilomètres...
Une cellule/un pixel jtrouve ça parfait!
Mais on devrait pouvoir zoomer pour voir vraiment ce qu'on fait.
Typiquement, là, j'aurais pas pu essayer de faire un U comme m'a dit yoch...
Mais bon jtrouve ça déjà excellent et ça me fait mal de dire d'un projet sans fonction :S
Par contre P pour faire Pause ça craint un peu, faut le chercher le P alors que la barre espace est beaucoup mieux pour ça j'pense, mais bon c'est un détail.
OMG comment c'est classe de faire une ligne droite!!!
Par contre il y a le bug habituel qui fait que si je clique et que je me déplace assez vite bah ça ne me met qu'un point tout deux kilomètres...
C'est dû au fait que l'event "déplacement souris" n'est pas forcément envoyé à chaque pixel de déplacement, lors d'un déplacement rapide. S'il faut gérer ça, suffit de tracer des traits à chaque fois (je serais d'ailleurs curieux de voir si la SDL peut rater un tracé de courbe ultra rapide dans ces conditions).
Oui voilà exactement, il faut le drawline (premier exercice graphique qu'on fait à mon école ^^)
Dans notre cas, il faut garder en mémoire la position du dernier point et tracer la droite entre les deux.
Mais il est vrai que c'est un peu plus dur, mais ça rendra clairement mieux!
Et la SDL ne peux pas rater un trait car tu auras toujours les coordonnées du point d'avant (il faut un cas particulier pour le premier clique).
Utilisation :
P : mettre en Pause/Relancer
ESPACE : Prendre un screen
0 : Effacer l’écran (Uniquement en mode Pause)
1 : Remplir Tout l’écran avec des cellules vivantes (Uniquement en mode Pause)
2 : Remplir l'écran aléatoirement (Uniquement en mode Pause)
La mollette de la souris : accélérée/ralentir (Uniquement en Mode Play)
s : Sauvegarder dans un fichier .gl (par default save.gl)
l : Lire un fichier .gl (par default load.gl)
Pour la fonction Load : je dois la modifier pour qu'elle soit utilisable pour une grille de n'importe quelle taille.
La grille est rempli aléatoirement au lancement du programme.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Bonhomme !! | Jeu de plateforme : Prototype.
Bonhomme !! | Jeu de plateforme : Prototype.
Python c'est bon, mangez-en.