Jokuak izan ohi dira ordenadoretan lehenengo edo gustoen erabiltzen ditu- gunak. Hemen planteiatzen dugun programa, "untzi-jokua" izenez ezagutzen dena da.
Jolaslekua 12x12koa izan beharrean 10x10eko izatea eta erabiltzaileak 50 tiro egiteko muga izateaz salbu, arauak normalean onartzen direnak dira.
Makinak adieraziko dio erabiltzaileari asmatu ala huts egin duen eta irabazletzat edo galtzailetzat joko du, kasuan kasu.
Oharra: Joku hau, PC eta bateragarrietan erabiltzeko programatuta dago.
10 REM UNTZI-JOKUA 
20 SCREEN 1 : KEY OFF : CLS 
30 DIM A(12,12) : DIM UNTZI$(10,4) 
40 REM JOKUAREN ARAUAK 
50 LOCATE 4,8 : PRINT "UNTZI-JOKUra jolastera goaz" 
60 LOCATE 7,4 : PRINT "Jokuaren arauak oso errazak dira:" 
70 GOSUB 1600 : REM JARRAITZEKO EGIKARITU 
80 LOCATE 11,4: PRINT "- Zuk untziaren koordenatuak eman" 
90 LOCATE 12,6 : PRINT "behar dituzu (letra,zenbakia)." 
100 LOCATE 14,4: PRINT "- Untzia ukitzen baduzu, izartxoa" 
110 LOCATE 15,6: PRINT "erronbo bihurtuko da." 
120 LOCATE 17,4: PRINT "- Huts egiten baduzu,izartxoa desa-" 
130 LOCATE 18,6 : PRINT "gertu egingo da." 
140 GOSUB 1600 : REM JARRAITZEKO EGIKARITU 
150 CLS 
160 LOCATE 5,5 : PRINT "Ikus dezagun zein den aurkakoaren" 
170 LOCATE 7,5 : PRINT "flota:" 
180 LOCATE 9,5 : PRINT "- Hegazkinuntzi bat (4 izartxo)" 
190 LOCATE 11,5 : PRINT "- Bi korazatu (3 izartxo)" 
200 LOCATE 13,5 : PRINT "- Hiru suntsitzaile (2 izartxo)" 
210 LOCATE 15,5 : PRINT "- Lau fragata (izartxo bana)" 
220 GOSUB 1600 : REM JARRAITZEKO EGIKARITU 
230 CLS 
240 LOCATE 10,6 : PRINT "50 tiro egin ahal izango duzu." 
250 LOCATE 15,14 : PRINT "ZORTE ON!!!" 
260 GOSUB 1600 : REM JARRAITZEKO EGIKARITU 
270 CLS 
280 REM AMAIA JOKUAREN ARAUAK 
290 REM UNTZIAREN POSIZIOA KARGATZEKO BIGIZTA 
300 ERREKOP = 1 : LUZERA = 4 : UN = 1 
310 FOR I = 1 TO 12 : A(1,I)=1: A(I,1) = 1 : NEXT I 
320 FOR I = 1 TO 12 : A(12,I)=1: A(I,12) = 1 : NEXT I 
330 FOR I = 2 TO 11 
340 FOR J = 2 TO 11 
350 A(I,J)=0 
360 NEXT J 
370 NEXT I 
380 FOR I = 1 TO 10 
390 FOR J = 1 TO 4 
400 UNTZI$(I,J) = "" 
410 NEXT J 
420 NEXT I 
430 FOR I = 1 TO 4 
440 FOR N = 1 TO 4 : NORABIDEA(N)=N : NEXT N : N = 4 
450 J = 1 
460 REM BITARTEAN 
470 IF J ERREKOP THEN 800 
480 RANDOMIZE TIMER 
490 X = INT (RND * 10) + 65 
500 Y = INT (RND * 10) 
510 NN= INT (RND * N) + 1 
520 NOR = NORABIDEA(NN) 
530 IF NOR = 1 THEN INKX = 1 : INKY = 0 
540 IF NOR = 2 THEN INKX = -1 : INKY = 0 
550 IF NOR = 3 THEN INKX = 0 : INKY = -1 
560 IF NOR = 4 THEN INKX = 0 : INKY = 1 
570 L = 1 
580 REM BITARTEAN 
590 IF A(X-63,Y+1) = 1 OR N = 0 THEN 780 
600 REM BITARTEAN 
610 IF (L =LUZERA) OR (A(X-63,Y+1)=1) THEN 650 
620 L = L + 1 
630 X = X + INKX : Y = Y + INKY 
640 GOTO 600 
650 REM AMBITARTEAN 
660 IF A(X-63,Y+1) = 1 THEN 730 
670 FOR LL = 1 TO LUZERA 
680 A(X-63,Y+1)=1:UNTZI$(UN,LL)=CHR$(X)+CHR$(Y+47) 
690 X = X - INKX : Y = Y - INKY 
700 NEXT LL 
710 UN=UN+1 : J=J+1 
720 GOTO 780 
730 FOR II=NN TO N:NORABIDEA(II)=NORABIDEA(II+1):NEXT II 
740 N = N - 1 
750 NN = INT(RND * N) + 1 
760 NOR = NORABIDEA (NN) 
770 GOTO 580 
780 REM AMBITARTEAN 
790 GOTO 460 
800 REM AMBITARTEAN 
810 ERREKOP = ERREKOP + 1 : LUZERA = LUZERA - 1 
820 NEXT I 
830 REM AMAIA UNTZIEN POSIZIOA KARGATZEKO BIGIZTA 
840 REM KONBATE-LEKUA MARRAZTEKO BIGIZTA 
850 FOR I = 1 TO 10 
860 FOR J = 1 TO 10 
870 LOCATE I+6,J+15 : PRINT "*" 
880 NEXT J 
890 NEXT I 
900 LOCATE 5,16: PRINT "ABCDEFGHIJ" 
910 FOR I=7 TO 16 : LOCATE I,13 : PRINT I-7 : NEXT I 
920 REM AMAIA KONBATE-LEKUA MARRAZTEKO BIGIZTA 
930 REM JO DUZUN ALA EZ KALKULATZEKO BIGIZTA 
940 UKI=0 : URA=0 : TIROAK=0 
950 REM BITARTEAN 
960 IF UKI=20 OR TIROAK = 50 THEN 1450 
970 LOCATE 19,5: PRINT "Untziaren koordenatuak?" 
980 LOCATE 20,5: INPUT "Letra :",X$ 
990 LOCATE 20,5: PRINT SPC(15) 
1000 IF (ASC(X$) 64) AND (ASC(X$) 75) THEN 1050 
1010 LOCATE 22,5 : PRINT "Ikus letrak (majuskulak)" 
1020 N = 500 : GOSUB 1650 : REM PAUSA EGIKARITU 
1030 LOCATE 22,5 : PRINT SPC(20) 
1040 GOTO 980 
1050 LOCATE 20,5: INPUT "Zenbakia :",Y$ 
1060 LOCATE 20,5: PRINT SPC(15) 
1070 IF (ASC(Y$) 47) AND (ASC(Y$) 58) THEN 1120 
1080 LOCATE 22,5 : PRINT "Ikus zenbakiak" 
1090 N = 500 : GOSUB 1650 : REM PAUSA EGIKARITU 
1100 LOCATE 22,5 : PRINT SPC(20) 
1110 GOTO 1050 
1120 TIROAK = TIROAK + 1 
1130 ERAN$ = X$ + Y$ 
1140 AURKITUA$ = "FALTSUA" 
1150 ERREP$ = "FALTSUA" 
1160 I = 1 
1170 REM BITARTEAN 
1180 IF I 10 OR AURKITUA$ = "EGIAZKOA" THEN 1260 
1190 FOR J = 1 TO 4 
1200 IF MID$(UNTZI$(I,J),1,2) ERAN$ THEN 1230 
1210 AURKITUA$ = "EGIAZKOA" 
1220 IF LEN(UNTZI$(I,J)) 3 
THEN UNTZI$(I,J)=UNTZI$(I,J)+"0":UKI=UKI+1 
ELSE ERREP$ = "EGIAZKOA" 
1230 NEXT J 
1240 I = I + 1 
1250 GOTO 1170 
1260 REM AMBITARTEAN 
1270 I = I - 1 
1280 IF AURKITUA$ = "FALTSUA" THEN 1390 
1290 IF ERREP$ = "EGIAZKOA" THEN 1440 
1300 URPERATUA$ = "BAI" 
1310 FOR J = 1 TO 4 
1320 IF LEN(UNTZI$(I,J))=2 THEN URPERATUA$ = "EZ" 
1330 NEXT J 
1340 LOCATE ASC(Y$)-41,ASC(X$)-49 : BEEP : PRINT CHR$(4) 
1350 IF URPERATUA$="BAI" 
THEN LOCATE 22,7:BEEP:PRINT "URPERATUA!!" 
ELSE LOCATE 22,7:PRINT "UKITUA!!!" 
1360 N = 500 : GOSUB 1650 : REM PAUSA EGIKARITU 
1370 LOCATE 22,7 : PRINT SPC(17) 
1380 GOTO 1440 
1390 URA = URA + 1 
1400 LOCATE ASC(Y$)-41,ASC(X$)-49: PRINT " " 
1410 LOCATE 22,7 : PRINT "Huts egin duzu!!!" 
1420 N = 500 : GOSUB 1650 : REM PAUSA EGIKARITU 
1430 LOCATE 22,7: PRINT SPC(20) 
1440 GOTO 950 
1450 REM AMBITARTEAN 
1460 IF UKI 20 THEN 1500 
1470 LOCATE 20,7:PRINT "Untzi guztiak urperatu dituzu " 
1480 LOCATE 22,7: PRINT TIROAK;" tiroz IRABAZI DUZU!!!" 
1490 GOTO 1540 
1500 LOCATE 19,5:PRINT SPC(30) 
1510 LOCATE 20,7:PRINT "Sentitzen dut, baina galdu egin" 
1520 LOCATE 21,7:PRINT "duzu, jadanik 50 tiro baino" 
1530 LOCATE 22,7 : PRINT "gehiago bota dituzu." 
1540 N = 2000 : GOSUB 1650 : REM PAUSA EGIKARITU 
1550 REM AMAIA JO DUZUN ALA EZ KALKULATZEKO BIGIZTA 
1560 CLS 
1570 LOCATE 11,11 : PRINT "JOKUA AMAITU DA." 
1580 END 
1590 REM AMAIA UNTZI-JOKUA 
1600 REM JARRAITZEKO EKINTZA 
1610 LOCATE 23,10: PRINT "Jarraitzeko J sakatu." 
1620 TE$="":WHILE TE$ "J" AND TE$ "j":TE$=INKEY$:WEND 
1630 RETURN 
1640 REM AMAIA PAUSA EKINTZA 
1650 REM PAUSA EKINTZA 
1660 K = 1 
1670 FOR III = 1 TO N 
1680 K = K + 1 
1690 NEXT III 
1700 RETURN 
1710 REM AMAIA PAUSA EKINTZA 
Arrojeria, Eustakio
Elhuyar Zientziaren Komunikazioa
Lizaso, Pili
Informatika Saila
 
         
                     
                   
    
    
    
            






