Défi Pascal 2011 - Tetris - Projet de Mick605

Présentation
Le sujet du défi Pascal 2011 est de réaliser un Tetris.

Développé a l'aide du logiciel Delphi 2005. Compatible Windows.
Contient les sources.

Fonctionnalités :
- Plusieurs modes de jeu :
    * Classic : Jeu normal avec les pièces de base. Bonus activés et possibilité de mettre des pièces en réserve.
    * Extended : Jeu sur une grille plus grande, avec plus de pièces. Bonus activés et possibilité de mettre des pièces en réserve.
    * Retro : Jeu avec les pièces de base et le gameplay des premiers Tetris. Bonus et réserve désactivés.
- Bonus
    * Bombes : Lache plusieurs bombes qui peuvent détruire les blocs.
- Affichage des meilleurs scores
- Possibilité de jouer en mode fenetré, en ajoutant "-window" en paramètre.

A venir :
- Ajout des musiques et sons
- Ajout d'un mode Custom permettant de jouer avec ses pièces personnalisées
- Changement de thèmes (fond, bordures, etc.)

Merci de me prévenir quant à l'utilisation externe des images et textures contenues dans ce jeu.
Téléchargement
Compatibilité
Windows
1  0 
Téléchargé 11 fois Voir les 103 commentaires
Détails
Catégories : Autres compilateurs Jeux
Avatar de mick605
Membre chevronné
Voir tous les téléchargements de l'auteur
Licence : Freeware
Date de mise en ligne : 30 janvier 2013




Avatar de Alcatîz Alcatîz - Responsable Pascal, Delphi et Assembleur https://www.developpez.com
le 31/01/2012 à 21:48
Et voici les résultats !

Il est dommage de devoir départager les quatre participants car ils ont investi beaucoup de leur temps dans ce défi et les quatre jeux que nous avons reçus valent vraiment le détour. Mais il faut un gagnant...

Pour rappel, les quatre projets ont été classés par les quatre membres du jury selon les cinq critères suivants :
  • Originalité et créativité : deux projets se sont démarqués du Tetris original, dont un très franchement
  • Look et ergonomie : nous avons vraiment été gâtés !
  • Qualité du package (source, manuel d'installation et d'utilisation, aide en ligne...) : il faut bien avouer que ce n'est pas le poste dans lequel les candidats ont investi le plus d'énergie.
  • Qualité du code (rapidité, exempt de bugs, gestion des exceptions...) : foncez vite télécharger les codes sources :
  • Originalité technique (plateforme originale, compilateur exotique, technologie...) : sur ce point, les solutions multiplatformes ont pesé lourd dans la balance.

Chaque projet s'est distingué dans au moins un des cinq critères :
  • Originalité et créativité : mick605 ;
  • Look et ergonomie : mick605 ;
  • Qualité du package : titeeee ;
  • Qualité du code : Paul TOTH ;
  • Originalité technique : joreveur.


Allez, nous ne vous faisons pas languir plus longtemps, le vainqueur du défi Pascal 2011 est :

titeeee

Bravo à lui !
Avatar de Alcatîz Alcatîz - Responsable Pascal, Delphi et Assembleur https://www.developpez.com
le 10/07/2011 à 10:48
Bonjour à toutes et à tous,

Pour cette année 2011, l'équipe Pascal a essayé de proposer un défi accessible à tous (contrairement à 2010 ) et offrant suffisamment de challenge aux développeurs expérimentés. Le choix s'est porté sur un jeu librement inspiré du célèbre Tetris.

Vous pouvez laisser s'envoler votre imagination : il n'y a aucune contrainte de plateforme ni de compilateur... du moment que ce soit du Pascal.
L'originalité, la créativité et l'ergonomie sont des critères importants; n'ayez donc pas peur de vous lancer si vous êtes débutant(e).

Voici le règlement complet du défi :

Cahier des charges :

Réaliser un jeu librement inspiré du Tetris.



Nous ne pouvons imaginer que vous ignoriez ce dont il s'agit : http://fr.wikipedia.org/wiki/Tetris.

Les règles du jeu de base sont connues, rien ne vous empêche de les modifier avec originalité (multijoueur, en trois dimensions...).

Le choix de la plateforme et du compilateur sont entièrement libres ! Que ce soit sur Windows, Linux, MacOS, Android, etc : peu importe.
Que ça tourne sur PC, téléphone mobile, Nintendo DS, WII, etc : peu importe.
Que vous utilisiez Turbo Pascal, Lazarus, Delphi, Flash Pascal, Turbo51, etc : peu importe.

Le but est double :
  • 1. Vous éclater,
  • 2. Nous étonner !


Date limite :

Les sources pourront être envoyés à Alcatîz jusqu'au 31-12-2011.
Au fur et à mesure de la réception des sources, la liste des participants sera mise à jour à la suite de ce message.

Surtout ne postez pas vos sources sur le forum.

Notation :

Les différents projets seront classés selon les différents critères ci-dessous. Le premier classé dans chaque critère recevra 5 points, le second 4 points... jusqu'au 5ème, qui recevra 1 point.
Le projet qui totalisera le plus de points sera le gagnant.

Voici les différents critères :
  • Originalité et créativité;
  • Look et ergonomie;
  • Qualité du package (source + manuel d'installation et d'utilisation);
  • Qualité du code (rapidité, exempt de bugs, gestion des exceptions...);
  • Originalité technique (plateforme originale, compilateur exotique, technologie...)


Participants :

joreveur (projet envoyé le 31-10-2011) ;
mick605 (projet envoyé le 31-10-2011) ;
titeeee (projet envoyé le 01-11-2011) ;
Paul TOTH (projet posté le 16-12-2011).

Publication des résultats :

Les résultats seront publiés dans le courant du mois de février 2012.

Soyez inventifs et mettez-en nous plein la vue !
Bonne chance à tous les candidats.
Avatar de mick605 mick605 - Membre chevronné https://www.developpez.com
le 19/07/2011 à 10:54
Si j'ai bien compris, il s'agit de faire une libre adaptation du jeu, donc pas de recréer exactement un Tetris ... A toi d'ajouter, enlever, modifier le jeu pour le rendre intérressant ...

Les règles du jeu de base sont connues, rien ne vous empêche de les modifier avec originalité (multijoueur, en trois dimensions...).
En tout cas, je participe !
Avatar de Alcatîz Alcatîz - Responsable Pascal, Delphi et Assembleur https://www.developpez.com
le 25/08/2011 à 9:32
Citation Envoyé par wormful_sickfoot Voir le message
Je participe également...

A base de SDL...
Oui mais toi tu ne peux pas gagner...
Avatar de darrylsite darrylsite - Rédacteur https://www.developpez.com
le 27/08/2011 à 16:55
Citation Envoyé par titeeee Voir le message
Bonjour, j'aimerai un développeur pascal pour m'épaulé un peut, parce que j'ai bien commencé, et j'ai des bug que je ne sais pas du tout résoudre. Donc si quelqu'un et partant, qu'il me contacte. Merci !
Salut,

Si c'est pour le défi, le forum est toujours disponible. Il suffit de ne pas dévoiler ta solution.
Avatar de darrylsite darrylsite - Rédacteur https://www.developpez.com
le 05/09/2011 à 12:00
Citation Envoyé par joreveur Voir le message
bonjour,

et la 3D avec Lunettes ?

sérieusement, je ne sais même pas si je vais arriver à coder quelque chose en 2D...

pour l'instant j'arrive juste à faire descendre un carré et à le déplacer pendant la descente à droite ou à gauche... pas très avancée mon affaire...
Vous êtes donc déjà bien avancé si vous pouvez descendre et deplacer un carré. Quelques heures de plus et vous pourrez manipuler des formes.

Bon courage
Avatar de mick605 mick605 - Membre chevronné https://www.developpez.com
le 07/09/2011 à 17:25
Salut,

Quand vous dites :
Citation Envoyé par Alcatîz Voir le message
[*]Originalité technique (plateforme originale, compilateur exotique, technologie...)
Vous parlez de ca ?

[ame="http://www.youtube.com/watch?v=Hui5Azx5jQo"]Scopetris demo - YouTube[/ame]
Avatar de mick605 mick605 - Membre chevronné https://www.developpez.com
le 22/09/2011 à 1:15
Salut

1 point de moins pour mon projet sans doute...
Ya pas de raisons ... Le but d'un forum c'est d'aider, pas de penaliser

Code : Sélectionner tout
1
2
3
4
5
6
7
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
  );
begin
  case Key of
    VK_RIGHT: Button4Click(form1);
    VK_LEFT:  Button3Click(form1);
...
En fait, le parametre, c'est Sender. Donc, normalement, tu devrais lui passer en parametres le bouton sur lequel tu est censé cliquer, du genre Button4Click(Button4);.

Apres, tu peux tres bien lui passer nil, si ton code dans ta procedure Button4Click ne tiens pas compte du parametre Sender. Le plus propre reste de faire une procedure DeplacerDroite par exemple, et de l'appeler dans le ButtonClick et dans le KeyDown.

Un petit conseil qui sera surement payant : renomme tes composants !!!
Avatar de Paul TOTH Paul TOTH - Expert éminent sénior https://www.developpez.com
le 22/09/2011 à 6:09
Citation Envoyé par joreveur Voir le message
oui ça marche...
la discussion ayant évolué, une solution a été donné... 1 point de moins pour mon projet sans doute...

J'avais du faire un test un peu trop rapide la 1ere fois..

je viens d'utiliser KeyDown

sinon est-ce bien comme cela qu'on appelle une procédure déjà créée ?

Code : Sélectionner tout
1
2
3
4
5
6
7
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
  );
begin
  case Key of
    VK_RIGHT: Button4Click(form1);
    VK_LEFT:  Button3Click(form1);
...
dans mon cas ça fonctionne mais ce n'est peut-être pas très propre ?
comme tu as déjà une réponse éclairée j'ajoute juste un commentaire sur ton usage de Form1 comme paramètre des méthodes click.

ça fonctionne, y'a pas à dire, mais c'est une très mauvaise habitude dont tu devrais te débarrasser. Ton application ne possède probablement qu'une seule fiche de type TForm1 et la variable globale Form1 pointe sur la seule instance de cette fiche ... mais imaginons que demain tu veuilles lancer deux tétris en parallèle pour corser le jeu. Tu vas créer deux fiches TForm1 l'une à côté de l'autre...sauf que la variable Form1 ne pourra pointer que sur une seule des deux. Avec ton code le clic sur le bouton1 d'une fiche va fonctionner, le clic sur le bouton1 de l'autre fiche fera bouger la pièce de la première !

alors comment accéder à la fiche sans passer par la variable form1 ? tout simplement avec le mot clé Self qui à l'intérieur d'une méthode de la fiche te retourne l'instance de celle-ci.

Code : Sélectionner tout
1
2
3
4
5
procedure TForm1.Button1Click(Sender);
begin
  if Self = Form1 then ShowMessage('C''est pratique !');
end;
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Responsables bénévoles de la rubrique Pascal : Gilles Vasseur - Alcatîz -

Partenaire : Hébergement Web