Baccarat

GW-Basic, utilisé par PC-Basic

Programme avec Graphique et Texte

PC-BASIC

Bien que ce jeu de cartes ait plus d'un siècle, des millions de personnes l'ont découvert grâce à James Bond dans le premier film de la saga culte, « Dr. No » (1962).

D'ailleurs, la première scène de Sean Connery à l'écran, dans le rôle du séduisant et bagarreur super-espion, le montre joueur dans un casino européen huppé, absorbé par le baccarat et dominant les gros parieurs (tout en essayant, bien sûr, de séduire une charmante dame).

Bien qu'il existe plusieurs variantes du baccarat, aujourd'hui, si vous entrez dans un casino, vous trouverez très probablement des tables de Punto Banco.

Trouver des codes pour des jeux de cartes comme le blackjack et le poker, en ligne ou même sur papier, n'est pas trop difficile.

Le baccarat, en revanche, est beaucoup moins courant, surtout en GW-BASIC. Le programme BAC.BAS, listé ci-dessous, est donc une perle rare.

BAC.BAS respecte scrupuleusement les nombreuses règles du Punto Banco Baccarat.

Deux cartes, tirées d'un sabot, sont distribuées face visible au joueur et au banquier.

La partie s'arrête immédiatement si la somme des cartes du joueur ou du banquier est égale à 8 ou 9, appelée respectivement 8 naturel ou 9 naturel ; un 9 naturel l'emporte sur un 8 naturel, et si le joueur et le banquier ont le même 8 naturel, la partie est déclarée nulle.

Si le joueur n'obtient pas immédiatement un total de 8 ou 9, plusieurs options s'offrent à lui.

Il peut tirer une troisième carte, à condition que sa somme ne soit ni un 6 ni un 7.

Dans ce cas, il doit s'arrêter et le croupier tire une troisième carte, mais seulement si la somme du croupier est inférieure ou égale à 5.

Si la somme du joueur est inférieure à 6, il peut tirer une troisième carte ; selon la valeur de cette troisième carte, le croupier tire une troisième carte ou s'arrête.

Il va sans dire qu'il existe de nombreuses combinaisons possibles. Le baccarat est loin d'être un jeu facile à maîtriser. James Bond devait avoir beaucoup de temps libre, entre autres choses.

Au fait : la somme des points d'une main s'obtient en additionnant la valeur des cartes. Les as valent un point, tandis que les valets, les dames et les rois valent dix points.

Si la somme d'une main dépasse dix, seul le chiffre des unités est pris en compte.

Par exemple, si un joueur reçoit un 6 de cœur et un valet de pique, la somme est de 16, mais le joueur ne compte que pour six points.

Décrypter le code est complexe, notamment à cause de la multitude de noms de variables aux différences subtiles qui parsèment le programme.

À chaque variable de main du joueur correspond une variable de main du banquier. Il faut analyser les valeurs de ces variables pour s'assurer du respect des règles.

Et pour compliquer encore les choses, toutes les cartes tirées doivent être affichées immédiatement à l'écran.

Commençons par examiner la partie graphique. Les premières lignes du programme déclarent et initialisent les valeurs de plusieurs variables ; celles relatives au joueur commencent par P, tandis que celles du croupier (ordinateur) commencent par C.

Le programme se complexifie rapidement : on trouve des variables pour la position des cartes, leur couleur et le total des points, ainsi que des tableaux pour gérer les valeurs et les couleurs des cartes (même si les couleurs n'ont aucune importance au baccarat, il est nécessaire de les afficher à l'écran).

À la ligne 55, toutes les cartes possibles pour le joueur et le croupier dans cette main ont été sélectionnées (hors écran) et enregistrées.

Les couleurs et les valeurs des cartes seront affichées à l'aide de la fonction CHR$, tandis que les valeurs telles que l'as, le valet, la dame et le roi correspondent à des nombres aléatoires choisis entre 1 et 13.

Une sous-routine assez longue, servant à dessiner les cartes, commence à la ligne 200 et se termine à la ligne 590.

Notez que l'utilisation de l'instruction PAINT pour colorer les cartes en blanc (lignes 250 et 450) entraîne des complications, notamment au niveau des zones fermées à l'intérieur des nombres (par exemple, les boucles qui forment un 8). Ce problème est résolu à l'aide de plusieurs instructions PAINT.

Mais comment savoir précisément où peindre sur les cartes ? La réponse se trouve à la section suivante Space Aliens, qui présente l'utilitaire LOCATE.BAS.

Chaque carte à jouer affiche sa valeur et sa couleur en haut et en bas de la carte, mais les cartes sont symétriques par rapport à un axe horizontal passant par leur centre ; autrement dit, si vous retournez une carte, elle est identique à l'endroit.

Par conséquent, la valeur et la couleur imprimées en haut à gauche de chaque carte doivent être inversées et affichées en bas à droite de la carte.

Les instructions POINT gèrent le processus en « scannant » le texte à l'endroit et en transmettant les coordonnées aux instructions PSET pour le projeter à l'envers (voir les lignes 255 à 275 et 455 à 475).

À noter que les parties du programme relatives à l'affichage des cartes sont transposables à d'autres jeux de cartes GW-BASIC que vous pourriez imaginer : jusqu'à six cartes peuvent être affichées par ligne (au-delà, elles disparaissent de l'écran).

Disposer d'un modèle graphique de cartes à jouer prêt à l'emploi devrait réduire le
temps de développement — et l'appréhension — face à un écran blanc accompagné d'un simple « OK ».

Attention cependant : vous devrez apporter quelques modifications au code pour des jeux comme le poker, qui n'utilisent qu'un seul jeu de cartes, car BAC.BAS effectue un tirage avec remise, permettant la répétition de valeurs et de couleurs dans une même main.

Par exemple, un joueur peut recevoir deux as de trèfle, car au baccarat, le sabot contient de nombreux jeux de cartes.

Les nombreuses règles du baccarat sont traduites en code aux lignes 121, 122, 150 à 167 ainsi que dans les sous-routines qui commencent à la ligne 600 et se terminent à la ligne 760.

Bien sûr, afin de déterminer qui gagne et qui perd, les totaux de points pour le joueur et le croupier doivent être calculés : les lignes 310 à 374 et 510 à 574 s’en chargent, en veillant — à l’aide de boucles WHILE...WEND — à ce que les totaux de points ne dépassent pas dix.

Bien que BAC.BAS respecte scrupuleusement les règles du baccarat, ne propose qu'une seule main avant de s'arrêter.

Pourquoi ne pas en proposer plusieurs ?

De plus, il n'y a ni options de mise ni mode multi-joueurs.

L'ajout de ces fonctionnalités permettrait de pimenter le jeu et de le rendre plus divertissant. 

 

BAC.BAS