begin process at 2010 03 20 03:34:34
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > AUTOMATE CELLULAIRE EN ASSEMBLEUR ( JEU DE LA VIE )

AUTOMATE CELLULAIRE EN ASSEMBLEUR ( JEU DE LA VIE )


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Jeux Classé sous :automate, cellulaire, jeu, vie, comparatif Niveau :Débutant Date de création :19/06/2008 Date de mise à jour :19/06/2008 18:39:53 Vu / téléchargé :5 719 / 218

Auteur : ratala

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Le but de ce source est de faire un comparatif de vitesse d'exécution entre le VB et l'assembleur.

Tout d'abord, ce source a été compilé à l'aide de FASM, que je vous invite tous à télécharger car c'est le meilleur compilateur que je connaisse, de plus il est gratuit.
http://flatassembler.net/

Ce source est un automate cellulaire qui reproduit le mouvement de cellules ( voir définition de wikipedia : http://fr.wikipedia.org/wiki/Jeu_de_la_vie )

En ce qui concerne la vitesse d'exécution, j'obtiens plus de 2000 images par seconde en ASM avec une grille de 100*100 tandis qu'en VB je stagne à 6 images par seconde...
Bien que mes programmes ne soit pas forcement optimisé a 100% on obtient quand même une différence de 33 000%...
Bon évidemment le programme en VB je l'ai codé en 2 heures alors que celui en assembleur j'ai mis au moins une 15aine d'heure car niveau calcul avec les division euclidiennes ça a été assez difficile ( si quelqun a un tuto sur l'utilisation des fpu, je suis preneur :) ) donc on pourrai s'interroger sur la rentabilité niveau vitesse d'exécution/vitesse d'écriture du code.

Pour ceux qui s'intéressent au fonctionnement du programme vu que la compréhension du code en assembleur est difficile je vais expliquer un peu.

2 variables sont utilisés pour stoker les adresses des tableaux qui contiendront la grille des cellules :
Cases dd addrtbl1
Cases2 dd addrtbl2

La variable Cases indique l'adresse du tableau en cours d'utilisation, la fonction de calcul marche de la manière suivante :
on lit dans Cases[]
on regarde combien de cases sont activent autour, puis on en déduit si une case doit être active, ou non au quel cas on l'écris dans Cases2[]
une fois que toutes les cases ont étés calculées, on inverse les 2 pointeurs c'est a dire Cases devient Cases2 et vice versa

Au niveau de la conversion Str-Hexa et Hexa-Str, n'ayant pas trouvé de fonction déjà faites, je les ait donc refaites en asm, mais si vous avez une petite api sous la main qui le fait, ça m'arrangerai.

Et si quelqun aurait des conseils sur une quelconque manière d'optimiser mon programme, je suis preneur.

Source

  • J'ajoute le lien vers le code en VB : http://www.vbfrance.com/codes/AUTOMATE-CELLULAIRE-JEU-VIE_47062.aspx
J'ajoute le lien vers le code en VB : http://www.vbfrance.com/codes/AUTOMATE-CELLULAIRE-JEU-VIE_47062.aspx

 Conclusion

J'aime ces deux langages pour leur particularités :
le VB pour sa rapidité d'écriture du code et l'assembleur pour sa rapidité d'exécution, je ne dirais donc pas qu'un langage est mieux qu'un autre mais qu'il faut savoir choisir l'un ou l'autre à bon escient.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

19 juin 2008 18:39:53 :
Ajout du lien vers le code en VB

 Sources de la même categorie

Source avec Zip TEXTURE AVEC DIRECTX9 par quoi
Source avec Zip Source avec une capture MES MODIFICATIONS SUR LE JEU DE SNAKE DE ASMGGES par ChaperonNoir
Source avec Zip LE JEU DES 24 BOÎTES DE L'HOMME MYSTÉRIEUX [MASM] par grandvizir
Source avec Zip SCREENMATE BOULINATOR par jjeeaanncchhrriisstt
Source avec Zip Source avec une capture SOLITAIRE EN MASM32 POUR WINDOWS par BLUEBIBUBBLE

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture MES MODIFICATIONS SUR LE JEU DE SNAKE DE ASMGGES par ChaperonNoir
Source avec Zip LE JEU DES 24 BOÎTES DE L'HOMME MYSTÉRIEUX [MASM] par grandvizir
Source avec Zip BOOT PONG par barbichette
Source avec Zip JEU DU PING par neoplayer1
LE JEU DE L'OIE par mouradinio10

Commentaires et avis

Commentaire de patatalo le 22/06/2008 15:32:48 administrateur CS

pourquoi FASM est-il le meilleur assembleur ? sur quoi appuie tu ton affirmation ?

déjà, il ne permet pas de faire des objets OMF. Ca commence mal pour etre le meilleur, il est limité...

Donc, qu'apporte-t-il de plus que les autres sinon toute une floppée de macros inutiles et réalisables égalements par tous les autres assembleurs ?


@++

Commentaire de ratala le 22/06/2008 18:13:02

J'ai pas dit que c'était le meilleur, j'ai dit que c'était le meilleur que je connaisse :)
MASM a l'air pas mal non plus c'est vrai mais il ne permet pas de modifier les sections comme bon de semble comme le fait fasm.

Commentaire de Nasman le 23/06/2008 08:26:31

Nasm permet les formats suivants:
- OMF
- COFF
- Win32
- ELF (Linux)
- binaire pur (.COM, .SYS)
- 16, 32 et 64 bits
+ d'autres que j'oublie
C'est un assembleur multi plateformes.

Commentaire de patatalo le 24/06/2008 09:08:05 administrateur CS

autant pour moi, c'est vrai que cela fait toute la différence.
@++

Commentaire de mustaha le 09/05/2009 18:02:16 9/10

c'est un merveilleux exemple, sauf que il ya des erreru : lorsqu'on appuie sur démarrer c'est bien, mais arreter puis redémarrer des problèmes se présentent.
en plus il ya des faute de génération (exemple : qq fois une cellule seule survie !)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

algo pour jeu de shoot en asm [ par cable ] Bonjourje suis un jeune débutant en programmation en assembleur et je cherche l'algo (voir le code source) d'un jeu de shoot 'em up en scroling horizo Kel µC ? [ par none77 ] Bonjour,J'ai une sorte de petit automate qui communique en RS232.Pour communiquer avec, j'aimerai utiliser un afficheur (il me faut 5 chiffres) et un modification de programme [ par GMib ] Bonjour, j'ai telecharger un jeu et je voudrai le modifier pour qu'il se lance en 640*480 o lieu de 800*600mon ecran ne suporte pas le 800*600 je ne p Jeu du morpion [ par Prodigy2020 ] Bonjour, je me présente je suis en 3e année de licence info et j'ai un problème:j'ai à rendre pour dans 2semaines un projet en as Bot pour jeu sur le net [ par vincent2795 ] Bonjour, je souhaite créer un bot pour faire des procédure récursive sur un jeu. mon but et de me connecter au jeu, et faire des actions, j' ai des ca


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales