QP1C

Un article de Mwyann.info.

   C:\>

      

Ceci est un programme fonctionnant sous DOS, genre MS-DOS 6.22. En principe, ce genre de programmes pourra fonctionner dans une fenêtre "ligne de commande" sous Windows (Démarrer > Exécuter > cmd ou command) mais je ne promets rien. Vérifiez dans la description du programme si c'est possible. Sinon, servez-vous d'un logiciel comme VMware ou DOSBox, ou bien trouvez un vieux PC et installez un MS-DOS comme au bon vieux temps.

   

 

A propos du projet
SystèmeDOS
CompatibleWindows
Étape de dév.Terminé
LangagePascal
Création01/2002

 

QP1C est un programme de jeu pour Questions Pour Un Champion, destiné au club Questions Pour Un Champion de Fouesnant. La partie informatique a été développée intégralement par moi, et a été réécrite intégralement en juillet 2003.

Sommaire

Historique

Première version

Au début du développement de ce programme, que j'avais commencé quand j'étais encore au collège, je ne pensais pas l'écrire pour le club. J'allais tous les jeudis soirs à ce club, non pas pour répondre aux questions trop difficiles pour moi, mais surtout pour servir de Julien, c'est-à-dire lire les questions aux autres joueurs (comme ça, je pouvais apprendre en même temps). Le programme que j'étais en train d'écrire utilisait les touches du clavier comme buzzer, afin d'entourer les joueurs autour du clavier, et les touches + et - qui servaient au lecteur pour valider ou non les réponses.

Quand j'avais développé mon programme environ jusqu'au jeu décisif, je commençais à en parler à la présidente du club, qui semblait être intéressée par un système de jeu complet, pour permettre de jouer dans les tournois interclubs. J'ai accepté de créer le jeu et j'avais déjà ma petite idée pour l'électronique, afin de concevoir des boîtiers avec des boutons-poussoirs et des lampes.

Tout d'abord, il me fallait terminer le jeu informatique. Le début de programme fonctionnait bien, mais il s'agissait de mes débuts en programmation. En outre, je n'avais fait aucune procédure ni fonction. Ce qui fait que, au bout d'un moment, j'avais trop de code dans le programme principal. J'ai donc dû créer une procédure pour délester le programme principal de tout ce code.

La partie électronique mettait en œuvre un clavier modifié : branchements de fils sur les touches F1 à F4 pour l'appui sur les boutons-poussoirs, et pour l'allumage des lampes, un système en binaire qui sortait à l'aide des leds du clavier : Numlock éteint = aucune lampe allumée, Numlock allumé = lampe allumée, nº déterminé par le nombre en binaire représenté par les deux autres leds. Ce système, bien que théoriquement réalisable, n'était pas très fiable ni esthétique. Mais on a quand même essayé, avec Jérémy, un ami avec qui je faisais beaucoup d'électronique et d'informatique.

Après avoir démoli inutilement deux claviers, nous avons fait appel à un vrai ami électronicien, qui nous a confectionné un module utilisant la prise série RS-232. Entretemps, mes compétences en Pascal se sont améliorées, et j'ai appris à me servir des unités. J'ai donc créé une unité afin d'accéder au matériel, savoir quand un bouton était appuyé, et savoir allumer une ampoule. Mes parents se sont occupés de la menuiserie, afin de créer les boîtiers, trouver les interrupteurs (des interrupteurs de lampe qu'on utilise avec le pied normalement, pour que les joueurs puissent s'énerver dessus) et les ampoules rouges. J'ai fait les finitions en soudant les fils et les prises.

Deuxième version

Quelques années plus tard, ayant honte du code que j'avais produit à ce moment-là, j'ai entrepris de réécrire le code entièrement, de A à Z. Hormis la librairie qui contrôlait le boîtier série, j'ai soigneusement établi le nouveau programme et découpé en unités, procédures et fonctions, afin que la maintenance soit la plus simple possible, et que l'ajout de fonctionnalité soit le plus facile possible. Grâce à cette nouvelle version, on peut en outre modifier toutes les valeurs du jeu en cours de partie, ainsi que revenir dans l'historique de la partie. Il est possible de retourner en arrière à n'importe quel moment. On peut également sauvegarder et revenir dans la partie, même en plein milieu d'un chrono. Si la machine devait planter, au redémarrage la partie reprend là où elle s'est arrêtée, grâce à cette fonction d'historique. L'interface a été également revue et soignée, et à présent il n'y a plus de bugs d'affichage comme il pouvait y en avoir de temps en temps avec la première version.

Cette version est actuellement celle qui fonctionne au club. C'est la plus récente fonctionnelle, et il n'y a jamais eu de problème grave avec (même pendant les tournois). La première version ne plantait pas beaucoup non plus, mais sachant qu'il n'y avait pas de fonction d'historique, il était fastidieux de "simuler" la partie afin de la reprendre là où le jeu s'était arrêté.

Version graphique

J'ai ensuite entrepris d'écrire une version graphique, en prenant pour base le code de OS, mais l'ordinateur du club n'était pas assez puissant pour actualiser suffisamment rapidement l'écran en mode graphique. J'ai donc laissé tomber, après avoir fini les 9 points gagnants.

Jouer avec la souris

Dans le club, il y a un joueur, Franck, qui est atteint d'une grave maladie, qui le rend incapable de se servir de ses membres inférieurs et supérieurs. Il ne peut agir qu'avec deux doigts sur la manette de son fauteuil roulant électrique. Lorsqu'il voulait participer au tournoi, il fallait quelqu'un à côté de lui pour appuyer sur le bouton poussoir à sa place. Et un jour, j'ai eu l'idée de me servir d'une souris comme interrupteur. J'ai donc adapté mon programme afin qu'il gère également les actions de la souris, et réagisse à l'appui des boutons de la souris comme s'il s'agissait de l'interrupteur du boîtier. De cette manière, Franck était capable de jouer tout seul, car il arrive à appuyer sur les boutons de la souris.

Quelques chiffres

  • Première version : 2132 lignes de code, dont 1869 dans le fichier principal.
  • Deuxième version : 2304 lignes de code.
  • Version graphique : 1447 lignes de code, programme non fini (uniquement les 9 points gagnants).

Dans la presse

Voici un article du Télégramme datant du 12 novembre 2000 :

Quelques joueurs invétérés du club fouesnantais de « Questions pour un champion ».
Quelques joueurs invétérés du club fouesnantais de « Questions pour un champion ».

Fouesnant. Un club de champions

Le club finistérien « Questions pour un Champion », dont la présidente est Janou Chervoches, a inauguré, jeudi soir dernier, à Fouesnant, son nouveau système de jeu. C’est un jeu électronique, dont l’informatique a été conçue par Yann Le Brech, fils du vice-président, Yves Le Brech, qui a remplacé les jeux du commerce. « Cette installation est plus conviviale et mieux adaptée », explique la présidente.

Une association vieille de trois ans

Cela fait maintenant trois ans que le club existe à Fouesnant. C’est le seul dans tout le Finistère. Une quarantaine de membres y sont inscrits et chacun vient suivant sa disponibilité (trois viennent de Nantes). Tous les âges et tous les niveaux y sont acceptés. « On apprend en s’amusant. A partir du moment où l’on se respecte, tout va bien. Ici, le mot nul n’existe pas. Il n’y a que la bonne humeur qui est exigée », précise Janou Chervoches.

Ils sont passés à la TV

Déjà 7 membres du club sont passés dans l’émission de Julien Leperse. Le vice-président du club, Yves Le Brech, a même été jusqu’au « face à face » en 1991. Sylvie Penden, de Quimperlé, enregistrera l’émission, le 22 novembre prochain, et passera à la télévision, courant décembre 2000. Elle a déjà été sélectionnée en 1993, elle était allée jusqu’au « 4 à la suite ». Le club de Fouesnant rencontrera celui de Lamballe, à la cantine scolaire, le 16 décembre prochain. Ce tournoi est ouvert aux spectateurs. Le club « Questions pour un champion Fouesnant-Cornouaille » est ouvert les jeudis soir, à partir de 20 h, les mardis après-midi, à partir de 14 h, à la halle des sports de Bréhoulou. Cotisation : 200 F par personne, 300 F pour un couple, tarifs dégressifs.

(c) LE TELEGRAMME - 12/11/2000

Téléchargement

Vous pouvez télécharger ce logiciel, les deux versions et également la version graphique, dès que j'aurai mis les fichiers en ligne. Cependant, afin de pouvoir s'en servir, vous devez demander au programme de ne pas utiliser le système électronique, sinon gare aux plantages.

Le code source ainsi que les binaires précompilés sont disponibles ici : QP1C.zip (première version) et NEWQP1C.zip (deuxième version). La version graphique (pas terminée cela dit) n'est pas encore disponible au téléchargement, mais utilise les librairies graphiques de OS, donc vous pouvez y jeter un oeil pour avoir la majeure partie du code source.