Demineur 4k

Soyez le premier à donner votre avis sur cette source.

Vue 609 fois - Téléchargée 106 fois

Description

Nouvelle version du démineur pour très grands écrans (C# VS2017), avec 2 vies.

But : faire un démineur gérant un grand nombre de cases

Génèse : La surcharge d'un contrôle pour gérer de nombreuse cases de jeu est trop lente.
Une première version donnait un résultat super au niveau rendu mais même en aidant le garbage colector, il y avait des fuites de mémoire.
J'ai donc modifié totalement le rendu, libéré chaque objet lié au graphisme en passant par des imagettes redimentionnées à la demande et stockées, souple, rendu rapide, pas de bug et 20 000 cases sans problème (avec 3500 mines).
Problème : avec des PointF, les bitmap passent par un traitement et c'est flou, du coup, obligé de repasser par un entier juste avant le rendu, dommage.

Finalement : le programme est très léger et gère vraiment beaucoup de cases de jeu, si vous avez un écran 4k, testez (d'où le nom de la source).

Aller plus loin ? une grille 40*80 (3200 cases, 599 mines) permet d'y passer 25 minutes, c'est bien pour du casual.

Dans le code :
_ recours à une structure pour sa légèreté.
_ gestion des dimensions en SizeF
_ récupération d'un clic de souris transformé en ligne et colonne du jeu
_ sauvegarde de la position de la fenêtre
_ gestion en internes de bitmaps redimentionnées quand nécessaire.
_ rendu graphique incrémentiel et global pour la légèreté.

Maj : activation du full screen et redessin de la grille mieux géré.
Maj : grille sur 3 graphismes montrant au passage quand se font les refresh.
Maj : 2 vies, fonction "Voir" qui color en orange les cases non déminée, bien utile sur les grandes grilles.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Commenter la réponse de pascal16m

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.