[djgpp & allegro] matrix

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 551 fois - Téléchargée 39 fois

Contenu du snippet

J'ai déjà laissé un prog du même type fait avec econio.h pour VC++
C'est le même mais pour DJGPP
C'est autrement plus beau

Source / Exemple :


// MATRIX BY GOLDENEYE 
// Compilé avec DJGPP. Linux compatible
// Je vous préviens, c'est très condensé.
// Pour toute question/suggestion: herve.picard@int-evry.fr
#include "allegro.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N1 25 // rez du mode text (lignes)
#define N2 80 // (colonnes)

int main()
{
	BITMAP *doublebuffer;
	int N=1000; // indicateur de la charge de l'écran (voir algorithme)
	int h,k,l,n,rnd;//rnd pour random
	int ecran[N1][N2];// la matrice de l'écran en mode texte
	srand(time(0));//intialisation du randomizer
	allegro_init();
	doublebuffer=create_bitmap(640,480);
                clear(doublebuffer); //efface:on ne sait jamais
	install_keyboard();
	install_timer(); //pour ralentir le prog
	set_gfx_mode(GFX_AUTODETECT,640,480,0,0); // essayer 800*600
	while(key[KEY_ESC]==0) // tant qu'on a pas fait [ESC]
	{// un premier passage à vide
                                rest(75); // se regarde le nombril pendant 75 ms
		for(h=N1-1;h>0;h--) // lignes
		{
			for(l=0;l<N2;l++) //colonnes
			{ // là ça devient rigolo: programmé à la GoldenEye
				while(((rnd=48+rand()%74)<65&&rnd>57)||(rnd>90&&rnd<97)); //tant que c'est pas un chiffre ou une lettre
				ecran[h][l]=(ecran[h-1][l]!=32?rnd:ecran[h][l]); // 32=code ASCII de l'espace
				if(ecran[h][l]!=32&&h==N1-1) //si la colonne est pleine
					for (k=0;k<N1;k++) //efface la colonne
						ecran[k][l]=32; // 32=code de [SPC] pour les neuneus
				textprintf(doublebuffer,font,l*8,h*19,2,"%c",ecran[h][l]);// affiche le caractère ASCII contenu dans la case ecran[h][l]
            }//en effet 640/80=8 et 480/25=19
		}
		for(n=0;n<N2;n++) // première ligne tout en haut
		{
			rnd=rand()%N;
			(!((rnd<48)||(rnd>57&&rnd<65)||(rnd>122)))?(ecran[0][n]=rnd):(ecran[0][n]=32); // si c pas une lettre ou un chiffre,on met un espace
		}
		vsync(); //synchro avec l'écran pour éviter les saloperies à l'écran
		blit(doublebuffer,screen,0,0,0,0,640,480);// et hop, on swappe l'écran réel et l'écran virtuel
    }
    destroy_bitmap(doublebuffer); // pour être propre
    allegro_exit(); //idem
	return 0;
}

Conclusion :


Bug à herve.picard@int-evry.fr

A voir également

Ajouter un commentaire

Commentaires

cs_NeoZ
Messages postés
19
Date d'inscription
mercredi 30 avril 2003
Statut
Membre
Dernière intervention
24 avril 2008

slt, le code c en c ou c++ ? :p merci ;) xD
fred1647
Messages postés
1
Date d'inscription
vendredi 5 mars 2004
Statut
Membre
Dernière intervention
12 mars 2004

salut goldeneye,

je suis en galère sur allegro il tourne pas y a des bug comme #include "internal/alconfig.h" help
cs_GoldenEye
Messages postés
527
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
6 octobre 2008
2
Tu te connais pas allegro, la célèbre librairie graphique de Shawn Hargreaves ???
www.allegro.cc pour la downloader
Mailes moi si tu as un prob
cs_Jackboy
Messages postés
757
Date d'inscription
vendredi 7 septembre 2001
Statut
Membre
Dernière intervention
19 juin 2008

#include "allegro.h" tu fait quoi avec sa ......

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.