Naloga

Sestavite program za tekmovanje iz poštevanke, ki poteka takole. Dva tekmovalca, predstavljate si lahko, da imata vsak svojo tipkovnico, si zastavljata račune tako, da eden vpiše dva faktorja, drugi mora povedati produkt, nato pa se zamenjata. Tekmovalec dobi točko, če ugane pravilni zmnožek. Po vsakem krogu program izpiše trenutni rezultat. Igre je konec, ko eden od tekmovalcev vodi za več kot dve točki. Program mu mora primerno čestitati, drugemu pa povedati, kar mu gre.

Primer (v mastnem tisku je besedilo, ki ga vpisujeta tekmovalca)


Tekmovalec 1, prvi faktor? 4 Tekmovalec 1, drugi faktor? 2 Tekmovalec 2, produkt? 8 Tekmovalec 2, prvi faktor? 8 Tekmovalec 2, drugi faktor? 4 Tekmovalec 1, produkt? 32 Trenutni rezultat: 1 : 1 Tekmovalec 1, prvi faktor? 4 Tekmovalec 1, drugi faktor? 5 Tekmovalec 2, produkt? 21 Tekmovalec 2, prvi faktor? 8 Tekmovalec 2, drugi faktor? 2 Tekmovalec 1, produkt? 16 Trenutni rezultat: 1 : 2 Tekmovalec 1, prvi faktor? 4 Tekmovalec 1, drugi faktor? 3 Tekmovalec 2, produkt? 12 Tekmovalec 2, prvi faktor? 5 Tekmovalec 2, drugi faktor? 5 Tekmovalec 1, produkt? 25 Trenutni rezultat: 2 : 3 Tekmovalec 1, prvi faktor? 8 Tekmovalec 1, drugi faktor? 3 Tekmovalec 2, produkt? 25 Tekmovalec 2, prvi faktor? 3 Tekmovalec 2, drugi faktor? 3 Tekmovalec 1, produkt? 9 Trenutni rezultat: 2 : 4 Bravo drugi! Prvi, cvek!

Prazno vrstico izpišemo tako, da napišemo samo print(), brez argumentov.

Za študente, nagnjene k dolgočasu: napišite program, ki lahko igra to igro s človekom, tako da ima vlogo enega od tekmovalcev. Da računalnik ne bo nepremagljiv, naj ima 10% verjetnost napake. Faktorji naj bodo med omejeni na števila med 1 in 10. Tisto, kar potrebujete, boste našli v modulu random.

Rešitev

Rešitev je nekoliko dolga, ni pa zapletena.

prvi = drugi = 0 while abs(prvi - drugi) < 2: f1 = int(input("Tekmovalec 1, prvi faktor? ")) f2 = int(input("Tekmovalec 1, drugi faktor? ")) pr = int(input("Tekmovalec 2, produkt? ")) print() if pr == f1*f2: drugi += 1 f1 = int(input("Tekmovalec 2, prvi faktor? ")) f2 = int(input("Tekmovalec 2, drugi faktor? ")) pr = int(input("Tekmovalec 1, produkt? ")) print() if pr == f1*f2: prvi += 1 print("Trenutni rezultat: ", prvi, ":", drugi) print() print() if prvi > drugi: print("Bravo prvi!") else: print("Bravo drugi!")
Zadnja sprememba: nedelja, 20. oktober 2013, 23.57