26.2.. Napisati aplikaciju za provjeru pamćenja viđenog četverocifernog broja.

Opis rješenja: Program provjerava sposobnost igrača da pogađa brojeve. Korisnik sa tastature upisuje broj. Sa 10 pokušaja treba pronači slučajno generisani broj. . Evidenciju o uspješnosti pogađanja vodi i ispisuje računar. Primjenjuje se binarno pretraživanje interval (poloviona intervala). Računar tokom igre pomaže ispisom u kom intervalu se nalazi slučajno generisani broj. .

Opis programa: Glavni program poziva potprograme za postavljanje početnih vrijednosti te izbor broja i provjeru odgovora. Pp 300 generiše slučajan broj C = INT(900 * RND(1)) + 100 ( vidi dodatak za RND naredbu). Zatim se izvodi provjera tačnosti odgovora u pp 100.

Listing programa:

REM 26011110
# POGADJANJE BROJA
import random  # omogucuje generisanje novog broja pri svakom startanju programu

def provjeraOdgovora      # Provjera odgovora
REM PRINT "Zapamti broj "; C
for i in range(1, 11): # broj pokusaja
	print("Redni broj= "; j; " otkucaj broj ")
    INPUT r
    # provjera racnositi upisanog broja, korisnik moze 2 puta da pogadja
    IF r = C THEN t = t + 1: PRINT "TACNO": RETURN
    IF r > C THEN PRINT "manji"
    IF r < C THEN PRINT "veci"
NEXT j
bg = bg + 1: PRINT "POGRESNO ispravan broj je "; C: # korsnik nije pogodio
180 PRINT "Od "; t + bg; " brojeva "; t; "je pogodjeno, a "; bg; "nije"
190 RETURN

def pocetneVrijednosti     # Pocetne vrijednosti

PRINT TAB(10);: PRINT "POGADJANJE BROJA"
PRINT TAB(10);
for i in range(1, 16):
    PRINT "-";
NEXT j
PRINT
t = 0: bg = 0: # pocetne vrijednosti brojaca
RETURN

def slucajanBroj # Slucajan broj
c = random.randint(100, 999 + 1)  # generisanje cetverocifren broj
return

# Glavni program
pocetneVrijednosti # pocetne vrijednosti
30 slucajanBroj # slucajn broj
provjeraOdgovora # provjera odgovora
INPUT "Hoces li jos (/N)"; da$
IF LEFT$(da$, 1) <> "N" THEN GOTO 30
STOP

Daljnji rad: Probajte napisati sljedeće programe:
- prikaz četverocifrenog ili petocifrenog broja;
- više igrača igra naizmjenično sa posebnom evidencijom o broju pogodaka i promašaja svakog igrača pojedinačno.

Ispis na ekranu:

Index