;------------------------ ; Program: Vislice ; Avtor: David Kosenina ;------------------------ to init setpensize [10 10] openwrite "resitve.dat setwrite "resitve.dat type "Rezultati type [\n] type [\n] setwrite [] close "resitve.dat mainokno end ;--------------- ; Main window ;--------------- to mainokno clean windowcreate "main "mainokno [Vislice] 100 100 100 120[] buttoncreate "mainokno "buttonText1 [Začni igro vislice] 15 15 70 20 [ play ] buttoncreate "mainokno "buttonText2 [Avtor] 15 45 70 20 [ info ] buttoncreate "mainokno "buttonText3 [Navodila] 15 75 70 20 [ navodila ] keyboardon [keydown] setfocus [Logo] end to keydown if 27 = int keyboardvalue [ mainquit ] end to keydown2 ;print char keyboardvalue if 27 = int keyboardvalue [ playquit ] end to mainquit buttondelete "buttonText1 buttondelete "buttonText2 buttondelete "buttonText3 windowdelete "mainokno end to playquit make "stanje 0 make "pravilnih 0 Staticdelete "text1 staticdelete "odgovor Staticdelete "crta staticdelete "izberisi buttondelete "buttonText1 buttondelete "buttonText2 buttondelete "buttonText3 buttondelete "buttonText4 buttondelete "buttonText5 buttondelete "buttonText6 buttondelete "buttonText7 buttondelete "buttonText8 buttondelete "buttonText9 buttondelete "buttonText10 buttondelete "buttonText11 buttondelete "buttonText12 buttondelete "buttonText13 windowdelete "okno mainokno end to navodila buttondelete "buttonText1 buttondelete "buttonText2 buttondelete "buttonText3 windowdelete "mainokno windowcreate "main "info [Navodila za igranje] 100 100 250 110[] staticcreate "info "info1 [ 1. Izberite možnost igra. ] 10 10 250 10 staticcreate "info "info2 [ 2. Odgovarjajte na vprašanja s klikom na pravilni odgovor.] 10 20 250 10 staticcreate "info "info3 [ 3. Šest pravilnih odgovorov pomeni zmago, pet napačnih pa poraz.] 10 30 250 10 staticcreate "info "info4 [ 4. Program lahko prekinete s tipko escape.] 10 40 250 10 staticcreate "info "info5 [ 5. Po končani igri vas v datoteki resitve.dat čakajo rešitve vaših iger.] 10 50 250 10 staticcreate "info "info6 [ ] 10 60 250 10 buttoncreate "info "buttonText1 "Ok 95 70 40 20 [ gotomain ] end to info buttondelete "buttonText1 buttondelete "buttonText2 buttondelete "buttonText3 windowdelete "mainokno windowcreate "main "info [Informacije o vislicah] 100 100 160 120[] staticcreate "info "info1 [Pedagoška fakulteta] 10 10 100 10 staticcreate "info "info2 [Program: Računalniške vislice] 10 20 100 10 staticcreate "info "info3 [Mentor: dr. Vladimir Batagelj] 10 30 100 10 staticcreate "info "info4 [Avtor: David Košenina] 10 40 100 10 staticcreate "info "info5 [Datum: 1.4.2004] 10 50 100 10 staticcreate "info "info6 [Predmet: Didaktika računalništva] 10 60 150 10 buttoncreate "info "buttonText1 "Ok 60 85 40 20 [ gotomain ] end to gotomain buttondelete "buttonText1 staticdelete "info1 staticdelete "info2 staticdelete "info3 staticdelete "info4 staticdelete "info5 staticdelete "info6 windowdelete "info mainokno end make "stevilkaigre 1 ;-------------- ; play ;-------------- to play make "stanje 0 make "pravilnih 0 openappend "resitve.dat setwrite "resitve.dat type [\n] type [Igra stevilka :] type :stevilkaigre type [\n] setwrite [] close "resitve.dat make "stevilkaigre :stevilkaigre + 1 home clean pendown buttondelete "buttonText1 buttondelete "buttonText2 buttondelete "buttonText3 windowdelete "mainokno windowcreate "main "okno [Vislice] 100 100 150 140[] Staticcreate "okno "text1 [ Koliko je vrednost izraza? ] 30 10 100 100 staticcreate "okno "odgovor [Tvoj odgovor je ?] 40 105 75 40 Staticcreate "okno "crta [-----------------------------------------------------------------------------] 0 50 150 10 staticcreate "okno "izberisi [Izberi pravilni odgovor] 40 60 75 40 izberi keyboardon [keydown2] setfocus [Logo] end to izberi make "izbor (random 4) + 1 if :izbor = 1 [prva] if :izbor = 2 [druga] if :izbor = 3 [tretja] if :izbor = 4 [cetrta] setfocus [Logo] end to prva make "a (random 10) make "b (random 10) make "c (random 10) make "d (random 10) make "rezultat (:a*:b)+(:c*:d) buttoncreate "okno "buttonText1 :a 30 30 10 10 [] buttoncreate "okno "buttonText2 "* 40 30 10 10 [] buttoncreate "okno "buttonText3 :b 50 30 10 10 [] buttoncreate "okno "buttonText4 "+ 60 30 10 10 [] buttoncreate "okno "buttonText5 :c 70 30 10 10 [] buttoncreate "okno "buttonText6 "* 80 30 10 10 [] buttoncreate "okno "buttonText7 :d 90 30 10 10 [] buttoncreate "okno "buttonText8 "= 100 30 10 10 [] buttoncreate "okno "buttonText9 (random 100) 30 80 15 15 [napacno] buttoncreate "okno "buttonText10 (random 100) 50 80 15 15 [napacno] buttoncreate "okno "buttonText11 (random 100) 70 80 15 15 [napacno] buttoncreate "okno "buttonText12 (random 100) 90 80 15 15 [napacno] buttoncreate "okno "buttonText13 :rezultat 110 80 15 15 [pravilno] end to druga make "a (random 10) make "b (random 10) make "c (random 10) make "d (random 10) make "rezultat (:a*:b)+(:c-:d) buttoncreate "okno "buttonText1 :a 30 30 10 10 [] buttoncreate "okno "buttonText2 "* 40 30 10 10 [] buttoncreate "okno "buttonText3 :b 50 30 10 10 [] buttoncreate "okno "buttonText4 "+ 60 30 10 10 [] buttoncreate "okno "buttonText5 :c 70 30 10 10 [] buttoncreate "okno "buttonText6 "- 80 30 10 10 [] buttoncreate "okno "buttonText7 :d 90 30 10 10 [] buttoncreate "okno "buttonText8 "= 100 30 10 10 [] buttoncreate "okno "buttonText9 (random 100) 30 80 15 15 [napacno] buttoncreate "okno "buttonText10 (random 100) 50 80 15 15 [napacno] buttoncreate "okno "buttonText11 (random 100) 70 80 15 15 [napacno] buttoncreate "okno "buttonText12 :rezultat 90 80 15 15 [pravilno] buttoncreate "okno "buttonText13 (random 100) 110 80 15 15 [napacno] end to tretja make "a (random 10) make "b (random 10) make "c (random 10) make "d (random 10) make "rezultat :a+:b+(:c*:d) buttoncreate "okno "buttonText1 :a 30 30 10 10 [] buttoncreate "okno "buttonText2 "+ 40 30 10 10 [] buttoncreate "okno "buttonText3 :b 50 30 10 10 [] buttoncreate "okno "buttonText4 "+ 60 30 10 10 [] buttoncreate "okno "buttonText5 :c 70 30 10 10 [] buttoncreate "okno "buttonText6 "* 80 30 10 10 [] buttoncreate "okno "buttonText7 :d 90 30 10 10 [] buttoncreate "okno "buttonText8 "= 100 30 10 10 [] buttoncreate "okno "buttonText9 (random 100) 30 80 15 15 [napacno] buttoncreate "okno "buttonText10 (random 100) 50 80 15 15 [napacno] buttoncreate "okno "buttonText11 :rezultat 70 80 15 15 [pravilno] buttoncreate "okno "buttonText12 (random 100) 90 80 15 15 [napacno] buttoncreate "okno "buttonText13 (random 100) 110 80 15 15 [napacno] end to cetrta make "a (random 10) make "b (random 10) make "c (random 10) make "d (random 10) make "rezultat :a+(:b*:c)-:d buttoncreate "okno "buttonText1 :a 30 30 10 10 [] buttoncreate "okno "buttonText2 "+ 40 30 10 10 [] buttoncreate "okno "buttonText3 :b 50 30 10 10 [] buttoncreate "okno "buttonText4 "* 60 30 10 10 [] buttoncreate "okno "buttonText5 :c 70 30 10 10 [] buttoncreate "okno "buttonText6 "- 80 30 10 10 [] buttoncreate "okno "buttonText7 :d 90 30 10 10 [] buttoncreate "okno "buttonText8 "= 100 30 10 10 [] buttoncreate "okno "buttonText9 (random 100) 30 80 15 15 [napacno] buttoncreate "okno "buttonText10 :rezultat 50 80 15 15 [pravilno] buttoncreate "okno "buttonText11 (random 100) 70 80 15 15 [napacno] buttoncreate "okno "buttonText12 (random 100) 90 80 15 15 [napacno] buttoncreate "okno "buttonText13 (random 100) 110 80 15 15 [napacno] end make "stanje 0 to risivislice make "stanje :stanje + 1 if :stanje = 1 [stojalo] if :stanje = 2 [vertikala] if :stanje = 3 [horizontala] if :stanje = 4 [precka] if :stanje = 5 [konec] end to n1 type :a type char 32 type [ * ] type char 32 type :b type char 32 type [ + ] type char 32 type :c type char 32 type [ * ] type char 32 type :d type char 32 type [ = ] type char 32 type [ ? ] type char 32 type [ ... napacen odgovor] end to n2 type :a type char 32 type [ * ] type char 32 type :b type char 32 type [ + ] type char 32 type :c type char 32 type [ - ] type char 32 type :d type char 32 type [ = ] type char 32 type [ ? ] type char 32 type [ ... napacen odgovor] end to n3 type :a type char 32 type [ + ] type char 32 type :b type char 32 type [ + ] type char 32 type :c type char 32 type [ * ] type char 32 type :d type char 32 type [ = ] type char 32 type [ ? ] type char 32 type [ ... napacen odgovor ] end to n4 type :a type char 32 type [ + ] type char 32 type :b type char 32 type [ * ] type char 32 type :c type char 32 type [ - ] type char 32 type :d type char 32 type [ = ] type char 32 type [ ? ] type char 32 type [ ... napacen odgovor ] end to p1 type :a type char 32 type [ * ] type char 32 type :b type char 32 type [ + ] type char 32 type :c type char 32 type [ * ] type char 32 type :d type char 32 type [ = ] type char 32 type :rezultat type char 32 type [ ... pravilen odgovor] end to p2 type :a type char 32 type [ * ] type char 32 type :b type char 32 type [ + ] type char 32 type :c type char 32 type [ - ] type char 32 type :d type char 32 type [ = ] type char 32 type :rezultat type char 32 type [ ... pravilen odgovor] end to p3 type :a type char 32 type [ + ] type char 32 type :b type char 32 type [ + ] type char 32 type :c type char 32 type [ * ] type char 32 type :d type char 32 type [ = ] type char 32 type :rezultat type char 32 type [ ... pravilen odgovor] end to p4 type :a type char 32 type [ + ] type char 32 type :b type char 32 type [ * ] type char 32 type :c type char 32 type [ - ] type char 32 type :d type char 32 type [ = ] type char 32 type :rezultat type char 32 type [ ... pravilen odgovor] end to writenapacni if :izbor = 1 [n1] if :izbor = 2 [n2] if :izbor = 3 [n3] if :izbor = 4 [n4] type[\n] end to writepravilni if :izbor = 1 [p1] if :izbor = 2 [p2] if :izbor = 3 [p3] if :izbor = 4 [p4] type[\n] end make "npflag 0 to zapisivresitve openappend "resitve.dat setwrite "resitve.dat type[\n] if :npflag = 0 [writenapacni] if :npflag = 1 [writepravilni] setwrite [] close "resitve.dat end to napacno make "npflag 0 zapisivresitve risivislice if :stanje < 5 [update] if :stanje > 4 [popravi] setfocus [Logo] end to popravi make "pravilnih 0 make "stanje 0 setfocus [Logo] end to update staticupdate "odgovor [Odgovor je napačen.] setfocus [Logo] end make "pravilnih 0 to pravilno make "npflag 1 zapisivresitve make "pravilnih :pravilnih + 1 staticupdate "odgovor [Odgovor je pravilen.] ifelse :pravilnih > 5 [zmaga] [next] end to zmaga make "stanje 0 Staticdelete "text1 staticdelete "odgovor Staticdelete "crta staticdelete "izberisi buttondelete "buttonText1 buttondelete "buttonText2 buttondelete "buttonText3 buttondelete "buttonText4 buttondelete "buttonText5 buttondelete "buttonText6 buttondelete "buttonText7 buttondelete "buttonText8 buttondelete "buttonText9 buttondelete "buttonText10 buttondelete "buttonText11 buttondelete "buttonText12 buttondelete "buttonText13 windowdelete "okno clean ;draw flower windowcreate "main "bravookno [Bravo!] 100 100 60 50[] buttoncreate "bravookno "bravo [Bravo!] 10 10 40 20 [ konecigre2 ] hapyface end to konecigre2 home clean buttondelete "bravo windowdelete "bravookno mainokno end to next buttondelete "buttonText1 buttondelete "buttonText2 buttondelete "buttonText3 buttondelete "buttonText4 buttondelete "buttonText5 buttondelete "buttonText6 buttondelete "buttonText7 buttondelete "buttonText8 buttondelete "buttonText9 buttondelete "buttonText10 buttondelete "buttonText11 buttondelete "buttonText12 buttondelete "buttonText13 izberi setfocus [Logo] end ;------------------------------Risi vislice --------------------------- to stojalo penup showturtle home pendown forward 10 right 90 forward 100 right 90 forward 10 end to vertikala penup home pendown forward 10 right 90 forward 50 left 90 forward 200 end to horizontala left 90 forward 100 end to precka right 180 forward 100 right 90 forward 50 right 90 right 45 forward 72 end to konec Staticdelete "text1 staticdelete "odgovor Staticdelete "crta staticdelete "izberisi buttondelete "buttonText1 buttondelete "buttonText2 buttondelete "buttonText3 buttondelete "buttonText4 buttondelete "buttonText5 buttondelete "buttonText6 buttondelete "buttonText7 buttondelete "buttonText8 buttondelete "buttonText9 buttondelete "buttonText10 buttondelete "buttonText11 buttondelete "buttonText12 buttondelete "buttonText13 windowdelete "okno windowcreate "main "konecigre [Konec igre] 100 100 60 50[] buttoncreate "konecigre "KonecIgre [Konec Igre] 10 10 40 20 [ konecigre ] sadface end to konecigre home clean buttondelete "KonecIgre windowdelete "konecigre mainokno end ;---------------------------------------------------- Risi :-) in :-( ------------------------------------ to circle :x :y :radius penup home setxy :x :y pendown repeat 360 [ forward ( :radius * sin 1 ) left 1 ] end to upcircle :x :y :radius penup home setxy :x :y pendown repeat 180 [ forward ( :radius * sin 1 ) left 1 ] end to downcircle :x :y :radius penup home setxy :x :y pendown left 180 repeat 180 [ forward ( :radius * sin 1 ) right 1 ] end to hapyface home clean circle 200 0 200 circle -90 50 25 circle 125 50 25 downcircle 100 -50 100 end to sadface home clean setpencolor [0 0 255] circle 200 0 200 setpencolor [0 255 0] circle -90 50 25 setpencolor [255 0 0] circle 125 50 25 setpencolor [0 0 0] upcircle 100 -150 100 end init