[Jeu] Pixuzzle

Soyez le premier à donner votre avis sur cette source.

Vue 6 862 fois - Téléchargée 3 204 fois

Description

Salut à tous !

Je vais vous présenter un jeu: Pixuzzle.

Pixuzzle est un jeu de réflexion/réflexe où le but est de faire le plus haut score. Pour ça il faut "exploser" des carrés de différentes couleurs:

Rouge
Vert
Bleu
Violet
Blanc
Bleu clair
Rouge clair
Vert clair
Bleu foncé


A chaque fois que vous appuyez sur un carré, celui-ci détruit tous les carrés de même couleur le touchant. De ce fait, il faut les empêcher de s'empiler, car une fois qu'un seul des carrés touche le haut de l'écran, vous avez perdu la partie.
Si vous cliquez sur un carré qui n'a pas sa couleur similaire autours de lui, alors des carrés vont tomber en plus grande quantité, de même si vous cliquez sur du noir.

Il y a 3 difficultés:

Easy (facile)
Normal (normale)
Hard (difficile)


Et un magasin où il s'y trouve de nouveaux blocs spéciaux à acheté grâçe à l'argent. L'argent s'obtient en faisant le plus de temps dans les parties.
Le meilleur score est enregistré, est le but est d?essayer de toujours faire mieux !

Une vidéo: http://pixelcodeteam.fr/wordpress/wp-content/uploads/2014/01/pixuzzle_2_trailer.mp4
(Désolé pour la qualité)

Quelques touches:
[F] - Permet de switcher entre le mode fullscreene et windowed
[FLECHES DIRECTIONELLES] - Permet de changer de difficulté
[ENTRER] - Confirmer

Vous pouvez télécharger la dernière version ici: http://www.pixelcodeteam.fr/documents/pixuzzle.zip

Enjoy !

Voilà je vous remercies de m'avoir lu, j?espère que le jeu va vous plaire et surtout n'hésitez pas à me faire des retours (bugs, suggestions...) !

Au revoir et merci d'avoir lu.

Dernières versions: v005:

Fullscreen ! Le fullscreen sert à permettre aux gens ayant un écran plus petit de 720px de jouer
Les blocs spéciaux sont plus rares
La difficulté augment plus le jeu dur
Optimisation du code
La couleur verte clair est ... plus foncée
Correction des crash
Correction du score qui s'affichait mal
Correction du splashscreen qui durait 9 secondes au lieu de 3... Oublie d'un trailer
La sauvegarde n'est plus over-cheat

v004

Ajout d'un magasin
Ajout d'argent
4 nouveaux pixels
Toujours de l'optimisation

v003

Correction d'un bug qui faisait planter la partie
Optimisation du jeu
Amélioration du compteur (bon, opti de 10^10-3 secondes mais là c'est juste)
Correction de l'image du menu où il manquait quelques pixels sur le Y

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
11
Date d'inscription
lundi 24 octobre 2011
Statut
Membre
Dernière intervention
6 novembre 2017

Eh bien, je ne savais pas. C'est vrai que ça peut vraiment être pratique ! Merci des astuces, ça peut toujours être pratique.
Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
122
J'utilise le C11 (Visual Studio 2013).
C'est une très bonne chose ! (Pas sur que VS le gère entièrement, néanmoins. Le meilleur support est du côté de gcc, voir mieux clang).
Dans ce cas, il y a des constructions plus "lourdes" qu'elles ne devraient l'être. Par exemple, à partir du C99 et supérieur, tu peux remplacer ceci:
int i;
for (i = 0; i < MAX; ++i)
{
}

Par cela:
for (int i = 0; i < MAX; ++i)
{
}


Tu peux déclarer des variables où tu veux. Plusieurs intérêts:
- Plus concis/propre.
- Limite la portée de la variable au scope courant (Ici, la variable i n'existera pas en dehors de la boucle, dans le deuxième exemple).
- Permet de déclarer des variables "const", grâce aux résultats précédents.
Ex:
int i = 0;
// Du code.
a = a * 2;
const int tmp = i + a;


Je t'invite aussi à abuser des "assert" (gratuit en terme de perfs car disparaissent en release).

Pour le readme, je ne vois pas de quoi tu parles.
Désolé, c'est de ma faute. Je viens de m'apercevoir qu'en téléchargeant ta source, c'est un fichier automatiquement ajouté par ce site.
Messages postés
11
Date d'inscription
lundi 24 octobre 2011
Statut
Membre
Dernière intervention
6 novembre 2017

Bonjour, je te remercie beaucoup pour ton commentaire, ça me fais très plaisir !

Pour répondre à tes questions/conseils:
J'utilise le C11 (Visual Studio 2013).

Pour les #pragma once, c'est vrai que maintenant c'est un réflexe de faire ça (mauvais d'ailleurs), j'y changerai !

Les commentaires, il est vrai que j'en utilise pas (ou trop peux), et je me rend bien compte que dès fois c'est handicapant pour le lecteur/programmeur de bien comprendre quel est le but du code.

Pour le readme, je ne vois pas de quoi tu parles.

Pour l'optimisation, je suis totalement d'accord ! Il manque encore pas mal d'endroit à optimiser, notamment les sauvegardes. Je pense refaire le système et faire à coup de read, write, ect.

Merci d'avoir pris le temps de rédiger un commentaire :)
Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
122
Bonjour.

Le jeu est fluide, bien fait, et original. On sent qu'il y a eu un vrai travail de finition dessus. Il y a aussi un bel effort de présentation (la vidéo est bien pratique pour avoir un aperçu du jeu sans le compiler).
Au niveau du code, c'est plutôt propre. Il n'y a pas grand chose à dire. Le code est bien segmenté, il n'y a pas de fonctions monolithiques dégueux, pas de variable globales, et c'est globalement bien pensé.
C'est assez rare sur ce site, d'avoir un travail de cette qualité, et je t'en félicite.
Il y a aussi une utilisation des "bits fields", ce qui est assez rare, et en fait donc un très bon exemple.

Histoire d'être constructif, je vais pinailler un peu, et relever quelques points vraiment mineurs d'améliorations:
- Préfère utiliser une vraie garde (#ifndef + #define + #endif) plutôt qu'une extension non-standard (#pragma once). Il y a quelques petits désavantages à utiliser "#pragam once", voir: https://stackoverflow.com/questions/787533/is-pragma-once-a-safe-include-guard
- De même, c'est dommage d'utiliser une bibliothèque portable (la SDL) pour derrière y mettre quelque chose de non compatible avec tous les compilateurs (je pense aux #pragma lib).
- Ça manque un peu de commentaires. Des commentaires en en-tête des fonctions avec du doxygen serait un petit plus appréciable.
- Pourrais-tu préciser la version du C que tu utilises ? (Au vu des //, ça n'est pas du C89, mais au vu des variables déclarés en début de bloc, il ne semble pas que ce soit du C99).
- Si tu fais un readme.txt, met du texte dedans et non du html (ou appelle le readme.html).
- Si tu veux comparer des doubles, tu peux utiliser la macro EPSILON (dans limits.h). a < b s'écrira alors: abs(a - b) < EPSILON
- On peut surement optimiser très légèrement certains fprintf en faisant un seul printf, au lieu de plusieurs à la suite (mais c'est anecdotique).

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.