lettres et chiffres pour Sharp PC1500 ( pas de programme ) tiré du magazine Hebdogiciel N°40 http://www.hebdogiciel.fr Bon Jeu ! Ouessan / Chistian DUBROEUCQ Nécessite l'extension PETOOLS. Il ne sera plus nécessaire désormais d'attendre 18h55 pour assister aux "chiffres et des lettres". Votre PC1500 s'en chargera !Mieux, au lieu d'assister vous participerez, l'ordinateur se chargeant d'être votre adversaire. Les règles sont exactement les mêmes qu'à la télévision : 2 tours de lettres et 1 tour de chiffres alternativement et ceci quatre fois. L'ordinateur et vous avez successivement la parole en premier, pour annoncer le nombre de lettres trouvées ou le compte atteint. Le PC1500 n'étant pas le Petit Robert, la longue liste de DATA s'impose. Pourtant, si le programme sous sa forme actuelle sature la mémoire des variables il est possible de le modifier et de rajouter des mots supplémentaires pour une version 16Ko. Tour de lettres : vous avez 45 secondes pour former le mot le plus long possible : - soit l'ordinateur vous donne le nombre de lettres qu'il a trouvé, auquel cas seul un nombre plus élevé vous permettra de prendre 1 tour à l'ordinateur - soit vous avez la parole et pouvez rentrer votre mot si l'ordinateur n'a pas mieux tour de chiffres : après son annonce 6 plaques apparaitront ainsi que le total à obtenir et enfin le compteur de seconde à l'extrême gauche Si vous arrivez au compte est bon ou plus près du compte que votre ordinateur, il vous faudra rentrer la façon dont vous êtes parvenu au compte. Il faut procéder comme suit : Lorsque l'écran devient 6 plaques, 0, puis? il vous faut taper les calculs dans l'ordre suivant : pour faire par exemple : 6+2:6 ENTER + ENTER 2 ENTER. Programme : 2 CLEAR:DIM A$(80)*9,B$(80)*9,FR$(9)*1,LE$(0)*27,A1$(24)*3,C$(6)*3,D$(6)*3,E$(80)*9 3 DIM F$(24)*9 4 FOR KC=1 TO 8 5 IF INT(KC/2)=KC/2 THEN 1000 7 RESTORE:MO$="":SO$="":PR$="":MJ$="" 8 RANDOM 10 LE$(0)="abcdefghijklmnopqrstuvwxyz" 70 FOR I=1 TO 80:READ A$(I):NEXT I 72 FOR I=1 TO 80:READ B$(I):NEXT I 75 FOR I=1 TO 80:READ E$(I):NEXT I 80 FOR I=1 TO 24:READ F$(I):NEXT I 81 PRINT " les lettres" 85 FOR FE=1 TO 2 87 KY=KY+I 90 WAIT 0:A=RND 7:ON A GOTO 100,100,105,110,110,115,115 100 A=RND 80:MO$=A$(A):GOTO 120 105 A=RND 24:MO$=F$(A):GOTO 120 110 A=RND 80:MO$=B$(A):GOTO 120 115 A=RND 80:MO$=E$(A) 120 SO$=MO$:A=LEN MO$:B=9-A 130 IF B=0 THEN 200 140 FOR I=1 TO B 150 A=RND 26:MO$=MO$+MID$(LE$(0),A,1) 160 NEXT I 200 FOR I=1 TO 9:FR$(I)=MID$(MO$,I,1):NEXT I 205 FOR I=1 TO 9 210 A=RND 9:IF FR$(A)=" " THEN 210 220 PR$=PR$+FR$(A):FR$(A)=" " 230 NEXT I 240 PRINT "lettres : ";PR$:TIME=0 250 CURSOR 22:PRINT TIME*1e4:IF TIME<>0.0045 THEN 250 252 LP=LEN SO$ 255 IF INT(KY/2)=KY/2 THEN 270 257 WAIT 140:PRINT "j'ai";LP;" lettres" 259 INPUT "et vous ?";NL:IF NL>9 THEN 259 260 IF NL<=LP THEN 410 265 GOTO 290 270 INPUT "nombre de lettres ?";NL:IF NL>9 THEN 270 280 IF LP>NL THEN 400 290 INPUT "bien, mot ? ";MJ$ 300 DF=LEN MJ$:IF DF<>NL THEN 400 310 NB=NB+DF:PR$="" 320 NEXT FE 330 GOTO 500 400 PAUSE "j'ai mieux !!!" 410 WAIT 120:PRINT "avec";LP;" lettres :";SO$:NO=NO+LP:PR$="" 420 NEXT FE 500 NEXT KC 510 GOTO 2000 1000 WAIT °:PRINT " les chiffres" 1005 B$="":SF=0:SF$="":SP=0:CP=0:K=0:K1=0:RF=0 1010 FOR I=1 TO 10:A1$(I)=STR$ I:NEXT I 1020 FOR I=1 TO 10:A1$(I+10)=STR$ I:NEXT I 1030 A1$(21)="21":A1$(22)="50":A1$(23)="75":A1$(24)="100" 1100 FOR I=1 TO 6 1110 A=RND 24:IF A1$(A)="" THEN 1110 1120 C$(I)=A1$(A):O$(I)=C$(I) 1130 B$=B$+" "+A1$(A):A1$(A)="":NEXT I 1200 FOR I=1 TO 6 1210 G=RND 4 1220 IF I=1 GOSUB 1600 1230 ON G GOSUB 1300,1400,1500,1550 1240 NEXT I 1250 GOTO 1700 1300 A=RND 6:IF C$(A)="" THEN 1300 1310 IF SF+VAL C$(A)>999 THEN 1400 1320 SF=SF+VAL C$(A) 1330 SF$=SF$+"+"+C$(A):C$(A)="" 1340 RETURN 1400 A=RND 6:IF C$(A)="" THEN 1400 1410 IF SF-VAL C$(A)>999 THEN 1700 1420 SF=SF-VAL C$(A) 1430 SF$=SF$+"-"+C$(A):C$(A)="" 1440 RETURN 1500 A=RND 6:IF C$(A)="" THEN 1500 1505 IF C$(A)="1" THEN 1400 1510 IF SF*VAL C$(A)>999 THEN 1550 1520 SF=SF*VAL C$(A) 1530 SF$=SF$+"*"+C$(A):C$(A)="" 154 0RETURN 1550 A=RND 6:IF C$(A)="" THEN 1550 1555 IF C$(A)="1" THEN 1300 1560 IF SF/VAL C$(A)>999 OR INT(SF/VAL C$(A))<>SF/VAL C$(A) THEN 1400 1570 SF=SF/VAL C$(A) 1580 SF$=SF$+"/"+C$(A):C$(A)="" 1590 RETURN 1600 A=RND 6:SF$=C$(A):SF=VAL C$(A):C$(A)="":NEXT I 1700 IF SF<100 THEN BEEP 1:GOTO 1000 1705 SP=SF+RND 2-1 1707 KY=KY+1 1710 WAIT 0:PRINT B$;" :";SP 1720 TIME=0 1730 CURSOR 22:PRINT TIME*1e4:IF TIME<>0.0045 THEN 1730 1735 IF INT(KY/2)=KY/2 THEN 1740 1736 GOTO 1765 1740 WAIT:INPUT "combien ? ";CP 1750 A=ABS(SP-CP) 1760 B=ABS(SP-SF) 1762 IF B12 LET K1=0:WAIT 130:CLS:PRINT "trop lent...":GOTO 1815 1785 IF VAL R$=K THEN 1810 1786 K1=K 1790 FOR I=1 TO 6:IF R$<>D$(I) THEN NEXT I 1800 D$(I)=" " 1810 FOR I=1 TO 6:IF T$<>D$(I) THEN NEXT I:I=I+1 1812 IF I<=6 THEN 1820 1815 IF VAL T$<>K1 OR K1=0 THEN CLS:WAIT 140:PRINT "on veut tricher ?":B=1:A=2:GOTO 1770 1817 GOTO 1825 1820 D$(I)=" " 1825 RF=RF+1 1830 GOSUB V$ 1840 IF K<>CP AND RF<=5 THEN 1780 1850 IF K=CP THEN WAIT 0:CLS:PRINT "bien...":NB=NB+8:NEXT KC:GOTO 2000 1860 B=1:A=2:GOTO 1770 1900 "*":K=VAL R$*VAL T$:RETURN 1910 "+":K=VAL R$+VAL T$:RETURN 1920 "-":K=VAL R$-VAL T$:RETURN 1930 "/":K=VAL R$/VAL T$:RETURN 2000 BEEP 1,200,75:BEEP 1,116,225:BEEP 1,150,190:BEEP 1,97,575 2001 WAIT 41:PRINT "" 2005 BEEP 1,200,75:BEEP 1,116,255:BEEP 1,150,500 2010 WAIT 140:PRINT "score final..." 2020 PRINT "vous :";NB;" moi :";NO 2030 IF NB>NO THEN PRINT "vous gagnez...":GOTO 2100 2040 IF NB=NO THEN PRINT "égalité...":GOTO 2100 2050 IF NB