Résultats de football
GW-Basic, utilisé par PC-Basic
Programme avec Texte Seulement
PC-BASIC
Le philosophe Thomas Hobbes, dans Léviathan (1651), a décrit la vie comme « méchante, brutale et courte ». S'il avait vécu environ quatre siècles plus tard, il aurait peut-être décrit la vie sur le gril comme beaucoup plus méchante, plus brutale et même plus courte - le football américain n'est rien sinon un jeu brutal et sans prisonnier, et les joueurs, actuels et anciens, en ont payé le prix (et, dans moins de cas que vous ne le pensez, certains ont été grassement payés pour le privilège d'être brutalisés).
Il y a eu tellement de matchs de football déjà joués que vous pourriez soupçonner que chaque score a été permuté. Pas tout à fait : par exemple, lorsque les Eagles de Philadelphie ont renversé les Giants de New York, alors champions du monde en titre, lors d'un match éliminatoire le 11 janvier 2009, le score final était de vingt-trois à onze ; un coup de sifflet final n'avait jamais été donné auparavant avec cette combinaison de touchés et de buts sur le terrain.
Avec seulement une poignée de façons de mettre des points sur le tableau de bord - touché sans point supplémentaire (six points), touché avec un point supplémentaire (sept points), panier (trois points) et sécurité (deux points) - là il n'y a pas beaucoup de façons d'arriver au score final d'une équipe dans un match en particulier. (Notez que le programme ignore les conversions à deux points.)
FBSCORES.BAS vous aide à trouver un chemin potentiel, détourné ou non, vers le total de points final d'une équipe de football.
En utilisant la fonction INT, GW-BASIC vérifie si 2, 3, 6 et/ou 7 se divisent uniformément dans la variable totale de points saisie SCORE. Voir les lignes 32 à 55 pour les détails.
10 KEY OFF:SCREEN 9:COLOR 15,1:CLS
15 PRINT "IL Y A QUATRE POSSIBILITÉS
D'UN SEUL SCORE PAR UNE ÉQUIPE:"
16 PRINT "A 2 (sécurité); a 3 (but sur le
terrain); a 6 (touché); and a 7 (touché et point supplémentaire)."
20
PRINT:INPUT "SAISIR LE SCORE TOTAL DE L'ÉQUIPE ";SCORE
30 IF SCORE<2 THEN
PRINT "LE SCORE EST IMPOSSIBLE":GOTO 150
32 IF SCORE=2 THEN GOTO 100
35
IF SCORE/3=INT(SCORE/3) THEN GOTO 110
40 IF SCORE/6=INT(SC0RE/6) THEN GOTO
120
45 IF SCORE/7=INT(SCORE/7) THEN GOTO 130
50 IF
(SCORE-3)/2=INT((SCORE-3)/2) THEN GOTO 140
55 IF SCORE/2=INT(SCORE/2) THEN
GOTO 100
100 PRINT "Tout ce dont tu as besoin c'est ";SCORE/2; "sécurité(s)
pour obtenir un score de ";SCORE;"."
105 GOTO 150
110 PRINT "Tout ce
dont tu as besoin c'est ";SC0RE/3; "field goal(s) pour obtenir un score de
";SCORE;"."
115 GOTO 150
120 PRINT "Tout ce dont tu as besoin c'est
";SCORE/6; "touchés) pour obtenir un score de";SCORE;"."
125 GOTO 150
130 PRINT "Tout ce dont tu as besoin c'est ";SCORE/7; "touché(s) + extra
point(s) pour obtenir un score de ";SCORE;"."
135 GOTO 150
140 PRINT "
Vous avez besoin d'un but sur le terrain. Et alors ";(SC0RE-3)/2; sécurité pour
obtenir un score de";SCORE;"."
150 PRINT:INPUT"Un autre (OUI' ou NON)";
PROMPT$
160 IF PROMPT$="OUI" OR PROMPT$="oui" THEN 10
170 IF
PROMPT$="NON" OR PROMPT$="non" THEN CLS:END
180 GOTO 150
Certains des chemins de notation que le programme relaie, bien que possibles, ne sont pas particulièrement réalistes. Par exemple, voici la solution de FBSCORES.BAS à un score final de quarante-trois : un panier et vingt sécurités.
Vingt sécurités ? Dans un jeu ? Une pure absurdité.
Trouver des chemins de notation plus sensés attend le programmeur qui a besoin d'un défi. (Et en tant que défi connexe, mais beaucoup plus difficile : demandez à FBSCORES.BAS de relayer tous les chemins possibles vers n'importe quel score inférieur, disons, à soixante-dix points.)