Badut zenbaki bat, zein da?

Arrojeria, Eustakio

Elhuyar Zientziaren Komunikazioa

Lizaso, Pili

Informatika Saila

Elhuyar Fundazioa

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.

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.
    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.
  1. 28 aukera izango dituzu zenbaki aleatorioa asmatu ahal izateko.

Adibidez:

    programak sortutako zenbakia: 43756
    zuk sartutakoa: 35789
    asmatutakoak: 3 (3,5,7)
  • leku egokian: 1 (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.
    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.
  • 570-630. lerroetan; erabiltzaileak "j" tekla sakatu artean, programa gerarazten 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).

Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila