Yak's Tetris Plus

Version 1.00
Document 1

by CodeMaster

 

«Ô rage, ô désespoir, ô pièce plus! ennemie,
N'ai-je tant vécu que pour cette...

[BLAM !]
Three frags left !...»

Ax et CodeMaster se tapent un délire en ßéta-testant le jeu

 

 

 

Tables des matières :

 

 

Introduction :

 

La naissance :

Soucieux d'assurer la sauvegarde du bien-être et de l'équilibre mental des ces condisciples, le Yak a entrepris de remettre au goût du jours quelques vieux jeux.
Et entre deux éboulement de livres titanesques à lire, je consacre un peu de mon temps libre à la programmation.
Ainsi, un vieux moteur de tetris pour deux joueurs - résultat d'un délire que je m'étais tapé avec deux copine une nuit il y a environ 2 ans - s'est vu renaître, en un futur petit hit de l'Université de Genève.

 

But du jeu :

On ne rappellera pas ici, le plus que connu principe du Tetris original, qui à lui seule a donné le nom de Tetris-like à tous ces jeux de chute où il faut compléter de lignes ou des couleurs.

 

 

Principe du Jeu :

 

Le Plus de Tetris Plus :

Lorsque vous pressez votre touche Plus, votre quantité de Plus augmente (les petit `+' colorés en haut de chaque zone de jeu).
Plus vous avez de Plus, plus souvent vous tombez sur des pièces Plus composée de 5 blocs au lieu de 4 (comme les pièces de Block Out)

Pièces de base :

[][]      [][]      [][][]    [][][] 
[][]        [][]        []      []   
                                     
  []        [][]        []   [][][][]
[][][]    [][]      [][][]

Pièces Plus :

[][][]    [][][]
[][]          [][]    [][]      []
                      []      [][][]
[][]          [][]    [][]      []
[][][]    [][][]
                 
[][]        [][]        []    []
  []        []      [][][]    [][][]
  [][]    [][]        []        []

Pièces auxquelles vous avez échappé :

[][][][] [][][][]  [][][][][]
    []     []
                     [][][]
[][][][] [][][][]      []
[]             []      []
On peut également modifier cette option pour chaque joueur dans leur menu respectif (option Plus! dans le sous-menuPlayer x Setup du menu)

 

Le jeu à deux :

Les règles sont en principes inspirées du mode de jeu à deux du GameBoy.
(Je n'ai pas TetriNet, je n'y ai jamais joué, et de toute façon je suis conservateur. Donc vous ne verrez pas fleurir de si tôt d'innombrable options)

Une différence majeur (et pratique) cependant :
Chaque joueur peut à tout moments commencer une nouvelle partie en pressant sa touche Restart, sans pour autant que cela gène le joueur restant.
(Pratique pour les tournois le-gagnant-reste, comme à la maison)

 

Difficulté de jeu :

Outre l'option Plus! précédemment discutée, un autre option s'offre a vous : modifier la vitesse de chute pour chaque joueur.

Ceci se fait en modifiant le nombre de frames qu'attend le jeu avant de faire avancer une pièce. C'est une valeur inversément proportionnelle à la vitesse du jeu.
On peut la modifier pour chaque joueur dans leur menu respectif (option Falling delay dans le sous-menu Player x Setup du menu) ou modifier la valeur par défaut (option Default Falling delay dans le sous-menuSystem Setup du menu ou la variable Speed dans la section GameDefault du fichier de configuration)

On peut régler le jeu pour que la difficulté augmente à chaque victoire. (options increase Plus,increase Speed et increase Speed Step dans le sous-menu System Setup du menu ou les variables WinPlus, WinSpeed et WinSpeedStep dans la section GameDefault du fichier de configuration)

 

 

Informations importantes :

 

Un atavisme de Windows :

Dans les temps reculés de Windows 3.0 et des processeurs 386, la mise à jour du contenu d'une fenêtre MS-DOS était très lente, et Windows ne pouvait pas assurer 60 images par seconde.
Afin d'éviter que le programme perde encore d'avantage de temps en essayant de se synchroniser - ce qui d'ailleurs était inutile puisque le réaffichage de la fenêtre ne pouvait se faire en rythme avec l'écran - les requêtes de la carte graphiques étaient déviées et Windows simulait un écran à vitesse d'affichage infinie.
Mais de nos jour, les applications tournant dans une fenêtre ne sont plus ralenties par les rafraîchissements de cette dernière.
Or, Yak's Tetris Plus utilise une synchronisation à la vitesse d'affichage de l'écran pour fournir des graphisme fluide, sans hachure ni saccade.
Dans une fenêtre MS-DOS, cette synchronisation est impossible et la vitesse devient trop grande pour que le jeu reste jourable. (Comme ce fut le cas avec les premières versions ßéta du jeu).
Pour l'en empêcher, Yak's Tetris Plus tante de se synchroniser en utilisant l'horloge interne (Real Time Clock) de votre ordinateur.

!!! Quoi qu'il en soit, penser à passer en mode plein écran avec 
  Alt  
 + 
  Enter  
 !!!

En effet, l'affichage est meilleur s'il n'est pas relayé par une fenêtre MS-DOS

 

Synchronisation de type différent :

Certaines vieilles cartes graphiques utilisent une méthode de synchronisation non standard.
Dans ce cas, les premières lignes de l'affichage peuvent être brouillées, les pièces s'affichent mal, etc...
Utiliser l'option Alternate WaitRetrace dans le sous-menu System Setup du menu de Yak's Tetris Plus ou la variable WaitRetraceType dans la section System du fichier de configuration.

 

Confusion de synchronisation :

Lorsque le jeu tente de déterminer la fréquence d'horloge à laquelle se synchroniser, il peux faire une erreure.
Ou encore, la valeur devinée peu se révéler inadéquate, surtout si l'on a changé de mode d'affichage.
Dans ce cas la vitesse d'affichage peut s'effondrer en dessous de 40 Fps ou au contraire dépasser les 100 Fps

Si cela arrive, exécuter simplement, utiliser l'option ReSync screen dans le sous-menu System Setup du menu de Yak's Tetris Plus

 

 

Menus :

 

Menu principal :

Play the Game - Retourne au jeu

Player x Setup - Réglagles des paramè de chaque joueur

System Setup - Réglagles des options du jeu

 

Menu Player x Setup :

Set Keys - Réglages des touches, cf fichier de configuration.

Falling delay (1/speed) - Jauge pour régler la vitesse de chute. Jauge pleine : lent, vide : rapide

Insert delay (frames) - Jauge pour régler le temps pendant lequelle on peut encore bouger une pièce ayant atteind le fond, avant d'en envoyer une nouvelle.

Plus ! - Jauge réglant la quantité de Plus !.

Restart - Fait redémarrer le joueur sélectionné

 

Menu System Setup :

increase Plus (0=Off, n=Victories) - Détermine au bout de combien de victoire le nombre de Plus! augmente. Un zéro désactive l'augmentation.

increase Speed (0=Off, n=Victories) - Détermine au bout de combien de victoire la vitesse augmente. Un zéro désactive l'accélération.

increase Speed Step - Indique la largeur des pas aux quels la vitesse augmente. Un zéro désactive l'accélération.

Default Falling delay - Jauge pour régler la vitesse de chute qu'obtiennent les nouveaux joueurs.

Default Insert delay - Jauge pour régler l'Insert Delay pour les nouveaux joueurs.

ReSync screen - Recalcule la vitesse de synchronisation de l'écran. Executer si brusquement la vitesse d'affichage tombe en dessous de 40 Fps ou au dessus de 100 fps après un passage en pleine écran ou en fenêtre

Alternate WaitRetrace - si non-enclenché - synchronise l'affichage de manière classique, en attendant que VertTrace soit sur Lo
si enclenché - synchronise l'affichage de manière alternative, en attendant que VertTrace soit sur Hi

Draw debugging data - si enclenché - affiche les info de déboggage

 

 

Fichier de configuration :

 

Avant de s'executer, Tetris Plus rechercher des options de configurations dans deux fichiers : tetris.auto et tetris.ini.
Cette section explique le format de ces deux fichiers (en attendant que je programme un systeme de configuration In-Game.
Par la suite, tetris.auto sera automatiquement crée à partir des configurations actuelles)

 

Format général :

[nom_de_section]
nom_option=valeure

 

Section «GameDefault» :

option «WinPlus» :
Détermine au bout de combien de victoire le nombre de Plus! augmente. Un zéro désactive l'augmentation.

option «WinSpeed» :
Détermine au bout de combien de victoire la vitesse augmente. Un zéro désactive l'accélération.

option «WinSpeedStep» :
Indique la largeur des pas aux quels la vitesse augmente. Un zéro désactive l'accélération.

option «Speed» :
Détermine le nombre de frame à attendre avant d'avancer un pièce. Influe sur la vitesse du jeu.

option «InsertTime» :
Détermine le nombre de frame pendant les quelles on peut encore déplacer un pièce arrivé au fond, avant de l'insérer dans le tableau et d'enovyer la suivante.

 

Sections «Keys.1» et «Keys.2» :
Configure les touches du clavier de chaque joueur.
On peut indiquer aussi bien le nom d'une touche, que son ScanCode (mais il est préférrable d'indiquer les noms, car il ne risque pas de changer d'une version à l'autre du program)
Pendant le jeu, seul les ScanCodes sont affiché juste sous l'espace Next ou est affiché la piece suivante.

option «Left» :
Touche pour déplacer la pièce à gauche

option «Right» :
Touche pour déplacer la pièce à droite

option «Drop» :
Touche pour faire tomber la pièce

option «Rot» :
Touche pour faire tourner la pièce (si on ne veut utiliser qu'une touche, comme sur la version initiale d'Alexeï)

option «RotC» :
Touche pour faire tourner la pièce dans le sens des aiguilles d'une montre

option «RotAC» :
Touche pour faire tourner la pièce dans le contre des aiguilles d'une montre
(si on veux utiliser deux touches, comme sur GameBoy)

option «Restart» :
Touche pour recommencer à jouer

option «Plus» :
Touche Plus pour augmenter la difficulté du Jeu

 

Section «Key.Sys» :
Configure les touches du clavier du jeu en général.
Elles ne sont pas affichée pendant lejeu

option «Abort» :
Touche pour quitter le program

option «Menu» :
Touche pour appeler le menu

options «MenuUp» et «MenuDown» :
Touche de navigation dans les menus

options «MenuLess» et «MenuMore» :
Touche pour modifier les valeurs dans les menus

options «MenuGo» et «MenuOops» :
Touche pour valider/annuler dans les menus

option «Debug» :
Touche pour (dés-)enclencher l'affichage des valeurs dedéboggage, pendant une partie.
(C'est le bloc de chiffres gris sombre en bas de la zone de chaque joueur)

option «ChgWRT» :
Touche pour changer le type de synchronisation d'affichage pendant une partie.
Normalement la routine de synchronisation attend que VertTrace soit sur Lo.
Mais si les pièces sont invisibles, lorsequ'elle sont en haut de la zone de chaque joueur, il faut obliger la routine à attendre que VertTrace soit sur Hi.

 

Section «System» :
sert à enregistrer les options générale.
La plupart des utilisateurs n'ont que peu faire de ces options.
De toutes façon, il est possible de régler ces options au clavier, pendant l'execution du program.

option «DebugValue» :
si enclenché - affiche les info de déboggage
sinon - ne les affichepas
les informations de déboggages sont ces notes en gris sombre en bas de la zone de chaque joueurs

option «WaitRetraceType» :
si non-enclenché - synchronise l'affichage de manière classique, en attendant que VertTrace soit sur Lo
si enclenché - synchronise l'affichage de manière alternative, en attendant que VertTrace soit sur Hi

 

Options par défaut 102/105 touche :
Ces options sont précodées dans le programme et seront utilisées si vous ne spécifiez rien d'autre.

[GameDefault]
WinPlus=0
WinSpeed=1
WinSpeedStep=1
Speed=45
InsertTime=30

[System]
Debug=No
WaitRetraceType=No

[Keys.Sys]
Menu=ESC
Debug=F11
ChgWRT=F12
Abort=F10
MenuUp=UP
MenuDown=DOWN
MenuLess=LEFT
MenuMore=RIGHT
MenuGo=ENTER
MenuOops=ESC

[Keys.1]
Left=LEFT
Right=RIGHT
Drop=DOWN
Rot=PAD5
RotC=INS
RotAC=DEL
Plus=F6
Restart=F5

[Keys.2]
Left=ELEFT
Right=ERIGHT
Drop=EDOWN
Rot=ECENTR
RotC=EINS
RotAC=EDEL
Plus=F2
Restart=F1
 

Configuration 85 touche :
Ces touches sont conseillées pour être utilisées si avez un portable.

Left=0x1e     (touche A)
Right=0x20    (touche D)
Drop=0x2d     (touche X)
Rot=0x1f      (touche S)
RotC=0x10     (touche Q)
RotAC=0x12    (touche E)

 

 

Todo List

Liste de options pas encore implémenté

 

 

Copyrights

Original Tetris game by A. Pajitnov & V. Gerasimov (© AcademySoft CCAS USSR Moscow, 1986)

All other products are registered trade marks of their respective company

 

 

 

 

À deux de mes régulières clientes de cours de ratrapages nocturnes...