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:

I verzija    pogadjanje slucajno generisanog broja
# 26011110
# POGADJANJE BROJA
import random  # omogucuje generisanje novog broja pri svakom startanju programu

def slucajanBroj(n): # Slucajan broj
      # generisanje cetverocifren broj
    return random.randint(1, n)

def pocetneVrijednosti():   # Pocetne vrijednosti
    print("POGADJANJE BROJA")
    for i in range(1, 16):
        print("-", end='')
    print()
    return

def pronadjiBroj(slBroj, n): # ucitavanje provjeru broja 
    pokusaj = 0
    while(pokusaj != slBroj):
        pokusaj = int(input(f'Ucitaj broj u opsegu [1, {n}]: '))   # ucitaj string
        if pokusaj < slBroj:
            print('Ucitani broj je premal')
        elif pokusaj > slBroj:
            print('Ucitani broj je prevelik')
    print('BRAVO, pronadjen je broj')
    return
	
# Glavni program
n = 10
pocetneVrijednosti() # pocetne vrijednosti
slBroj = slucajanBroj(n) # generisanje slucajanog broja u opsegu [1 do n ]
print("slucajan broj", slBroj)
print (slBroj)
pronadjiBroj(slBroj, n)  # ucitavanje provjeru broja 


II verzija ponavljanje za vise broja
# 26011110
# POGADJANJE BROJA
import random  # omogucuje generisanje novog broja pri svakom startanju programu

def slucajanBroj(n): # Slucajan broj
      # generisanje cetverocifren broj
    return random.randint(1, n)

def pocetneVrijednosti():   # Pocetne vrijednosti
    print("POGADJANJE BROJA")
    for i in range(1, 16):
        print("-", end='')
    print()
    return

def pronadjiBroj(slBroj, n): # ucitavanje provjeru broja 
    pokusaj = 0
    while(pokusaj != slBroj):
        pokusaj = int(input(f'Ucitaj broj u opsegu [1, {n}]: '))   # ucitaj string
        if pokusaj < slBroj:
            print('Ucitani broj je premal')
        elif pokusaj > slBroj:
            print('Ucitani broj je prevelik')
    print('BRAVO, pronadjen je broj')
    return
	
# Glavni program
n = 10
pocetneVrijednosti() # pocetne vrijednosti
da =  'd'
while (da !='N'):         # dok je i != N ponavljaj - pocetak petlje  
    print ('vratio se')
    slBroj = slucajanBroj(n) # generisanje slucajanog broja u opsegu [1 do n ]
    print (slBroj)
    pronadjiBroj(slBroj, n)  # ucitavanje provjeru broja 
    da = input('Ponovi test /N ')   # ucitaj string

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