Badut zenbaki bat, zein da?
1988/08/01 Arrojeria, Eustakio - Elhuyar Zientziaren Komunikazioa | Lizaso, Pili - Informatika SailaElhuyar Fundazioa Iturria: Elhuyar aldizkaria
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
- Joko honen funtsa programak aleatorioki sortutako 5 digituko zenbaki bat asmatzea da.
- 28 aukera izango dituzu zenbaki aleatorioa asmatu ahal izateko.
Zenbaki bat sartzen duzun bakoitzean, asmatutako digitu-kopurua eta asmatuz gain leku egokian daudenen kopurua emango zaizu.
Programak sortutako zenbaki aleatorioan ez da errepikatutako digiturik egongo.
Adibidez:
- programak sortutako zenbakia: 43756
- leku egokian: 1 (7)
zuk sartutakoa: 35789
asmatutakoak: 3 (3,5,7)
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
- 20. lerroan; matrizeak dimentsionatzen dira.
- 570-630. lerroetan; erabiltzaileak "j" tekla sakatu artean, programa gerarazten da.
30-90. lerroetan; jokoaren azalpena egiten da.
120. lerroan; zenbakiak osatzen dituzten digituak gordetzen dira.
130-200. lerroetan; galdera egin, asmatutakoen eta leku egokian jarritako digituen berri eman eta zenbakia asmatu edo posibilitateak amaituz gero mezu bat ematen da.
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).