Oraingoan ere jokoari ekin nahi diogu. Askotan esaten denez, gauzak ikasteko eta pertsonaren ahalmena lantzeko erarik egokienetakoa, jolas-giroa izaten da. Oraingo programa hau aurkezterakoan, jolasteko aukera eskaini nahi dugu eta aldi berean, jolas-giroan noski, erabiltzailearen logika eta ondorioak ateratzeko ahalmena lantzeko bide bat eskaini.
Jokoaren azalpena
Adibidez:
10 REM *** BADUT ZENBAKI BAT, ZEIN DA? ***
20 COLOR 2 : CLS : KEY OFF : DIM JOKO(5) : DIM DIG(10)
30 LOCATE 2,31:PRINT "JOKOAREN AZALPENA":LOCATE 3,31:
PRINT "================="
40 LOCATE 5,9:PRINT "1.- Joko honen funtsa ordenadoreak aleatorioki ";
"sortutako 5 di-":LOCATE 6,13:PRINT "gituko zenbaki bat asmatzea da."
50 LOCATE 8,9:PRINT "2.- Zenbaki bat sartzen duzun bakoitzean asmatu";
"tako digitu-ko-":LOCATE 9,13 :PRINT "purua eta asmatuz gain leku e";
"gokian daudenen kopurua emango":LOCATE 10,13:PRINT "zaizu."
60 LOCATE 12,9:PRINT "3.- Ordenadoreak sortutako zenbaki aleatorioan ";
"ez da errepika-":LOCATE 13,13:PRINT "tutako digiturik egongo."
70 LOCATE 15,9:PRINT "4.- 28 aukera izango dituzu zenbaki aleatorioa as";
"matu ahal iza-":LOCATE 16,13:PRINT "teko."
80 LOCATE 18,13:PRINT "Adibidez:":LOCATE 18,25:PRINT "ordenadorearen ";
"zenbakia = ";:COLOR 4:PRINT "43756":COLOR 2:LOCATE 19,25:
PRINT "zuk sartutakoa = ";:COLOR 4:PRINT "35789"
90 LOCATE 21,25:PRINT "asmatutakoak = 3 (3,5,7)":LOCATE 22,25:
PRINT "leku egokian = 1 (7)"
100 GOSUB 570 : REM JARRAITZEKO EGIKARITU
110 CLS : COLOR 2
120 FOR I=1 TO 10 : DIG(I)=I-1 : NEXT I : KOP=10
130 ZENBA=0 : BERDIN$="F" : KONT=0
140 RANDOMIZE TIMER
150 FOR I=1 TO 5
160 Z=INT (RND*KOP)+1
170 JOKO(I)=DIG(Z)
180 ZENBA=ZENBA*10+DIG(Z)
190 FOR J=Z TO KOP-1 : DIG(J)=DIG(J+1) : NEXT J : KOP=KOP-1
200 NEXT I
210 LOCATE 1,27:PRINT "BADUT ZENBAKI BAT, ZEIN DA?":LOCATE 2,27:
PRINT "===========================":LOCATE 4,13:PRINT "ASMATUTAKOAK LEKU";
" EGOKIAN":LOCATE 4,52:PRINT "ASMATUTAKOAK LEKU EGOKIAN"
220 LOCATE 5,13: PRINT "------------ ------------":LOCATE 5,52:
PRINT "------------ ------------"
230 XX=4 : YY=7
240 REM ERREPIKA
250 REM ERREPIKA
260 ASMA=0 : EGOKI=0
270 LOCATE YY,XX:PRINT "-----"
280 LOCATE 23,15:PRINT "Sar ezazu 5 digituko zenbaki bat: ";:
COLOR 4:INPUT "",ZENB$
290 IF LEN(ZENB$) 5 THEN LOCATE 23,15:PRINT SPC(50):COLOR 2:
GOTO 280
300 KONT = KONT + 1
310 LOCATE YY,XX:PRINT ZENB$
320 IF VAL(ZENB$)=ZENBA THEN BERDIN$="E" : GOTO 410
330 FOR I=1 TO 5
340 IF VAL(MID$(ZENB$,I,1))=JOKO(I) THEN EGOKI=EGOKI+1:
GOTO 380
350 FOR J=1 TO 5
360 IF VAL(MID$(ZENB$,I,1))=JOKO(J) THEN ASMA=ASMA+1
370 NEXT J
380 NEXT I
390 COLOR 4:LOCATE YY,XX+14:PRINT ASMA+EGOKI:COLOR 3:
LOCATE YY,XX+27:PRINT EGOKI:COLOR 2
400 YY=YY+1
410 IF BERDIN$ = "E" OR YY=21 THEN GOTO 440
420 LOCATE 23,15:PRINT SPC(64)
430 GOTO 250
440 REM AMERREPIKA
450 YY=7 : XX=XX+39
460 IF BERDIN$ = "E" OR XX=82 THEN 480
470 GOTO 240
480 REM AMERREPIKA
490 LOCATE 23,15:PRINT SPC(64) : COLOR 2
500 IF BERDIN$="E" THEN LOCATE 23,5:PRINT "ONGI!!! ";:COLOR 3:PRINT KONT;:
COLOR 2:PRINT ".ean asmatu duzu. AGUR!!!": GOTO 520
510 LOCATE 23,5:PRINT "Ez duzu asmatu. Zenbakia ";:COLOR 3:PRINT ZENBA;:
COLOR 2:PRINT " zen. AGUR!!!"
520 GOSUB 570 : REM JARRAITZEKO EGIKARITU
530 RETURN
540 REM AMAIA *** BADUT ZENBAKI BAT, ZEIN DA? ***
550 REM
560 REM
570 REM JARRAITZEKO EKINTZA
580 COLOR 3 : LOCATE 25,30 : PRINT "Jarraitzeko J sakatu"
590 TE$=INKEY$ : WHILE TE$ "" : TE$=INKEY$ : WEND
600 WHILE TE$ "J" AND TE$ "j" : TE$=INKEY$ : WEND
610 LOCATE 25,30 : PRINT " " : COLOR 2
620 RETURN
630 REM AMAIA JARRAITZEKO EKINTZA
Programaren egitura
Oharrak
Oraingo honetan programak sortzen duen zenbaki aleatorioak bi baldintza bete behar ditu; alde batetik 5 digitu izan behar ditu eta bestetik digitu guztiek desberdinak izan behar dute.
Baldintza hauek bete erazteko Elhuyar. Z.T. 14 alean txirrindulariak ordenatzeko erabili genuen sistema berbera erabili dugu (120-200).