end; end else begin if aani=true then begin sound(247); delay(100); sound(220); delay(200); nosound; end; end;

Samankaltaiset tiedostot
Program matopeli; uses graph,grafiikka,crt; VAR. merkkiluettu,herkkutarkistettu : boolean;

Kielioppia: toisin kuin Javassa

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Ohjeet ovat työn alla ja kirjaan niitä päivittäen ja edes takaisin lukien pari viikkoa.

TAMPEREEN TEKNILLINEN YLIOPISTO

Racket ohjelmointia osa 2. Tiina Partanen Lielahden koulu 2014

Jypelin käyttöohjeet» Ruutukentän luominen

Ongelma 1: Mistä joihinkin tehtäviin liittyvä epädeterminismi syntyy?

Demo 7 ( ) Antti-Juhani Kaijanaho. 9. joulukuuta 2005

TAMPEREEN TEKNILLINEN YLIOPISTO

Ongelma 1: Mistä joihinkin tehtäviin liittyvä epädeterminismi syntyy?

PELIAIKASEURANTAOHJELMAN KÄYTTÖOHJE

Muumion kirous. Pelisuunnitteludokumentti. Veikkauksen pelisuunnittelukilpailua (Peliskaba2015) varten

PELIAIKASEURANTAOHJELMAN KÄYTTÖOHJE

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi

Harjoitus 2. Harjoitus 3

KESKEISIMMÄT OPPIMISTAVOITTEET KOROSTETTAVAT YDINKOHDAT. TEKNISET TAIDOT kuljettaminen

KASVOTON VIHOLLINEN - SÄÄNNÖT

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

VIRUSKAAPPARI-PELI - KURKISTUS OHJELMOINNILLISEEN AJATTELUUN

Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003

Impedanssitomografia-peli

Tieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5)

Pelivaihtoehtoja. Enemmän vaihtelua peliin saa käyttämällä erikoislaattoja. Jännittävimmillään Alfapet on, kun miinusruudut ovat mukana pelissä!

XXIII Keski-Suomen lukiolaisten matematiikkakilpailu , tehtävien ratkaisut

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Jypelin käyttöohjeet» Miten saan peliin pistelaskurin?

Sisällysluettelo. 1. Johdanto

2. luento. CS-C2110 Ohjelmointistudio 1: mediaohjelmointi Syksy 2016 [Studio 1] Antti Tolppanen, Sanna Suoranta, Lauri Savioja

Ohjelmien analysointi. ER-kaaviot

Ohjelmointityö 3. Mikko Laamanen

Jypelin käyttöohjeet» Miten lisään ohjaimet peliin

1. Miten tehdään peliin toinen maila?

Porvoon Akilles 04-joukkue järjestää Porvoon pallokentän tekonurmella turnauksen 2004 syntyneiden joukkueille.

IRM Manuaali. Raunhofer IRM v.0.90

Avainsanat: peli, matematiikka, polynomi, yhteen- ja vähennyslasku, kertolasku

JäPS T04 Perussääntöjä pelaajalle

Merkkijono on palindromi, jos se säilyy samana, vaikka sen kääntää väärinpäin.

11. Javan valintarakenteet 11.1

Johdatus go-peliin. 25. joulukuuta 2011

Task list Submit code Submissions Messages Scoreboard View queue Edit contest

21~--~--~r--1~~--~--~~r--1~

Verilogvs. VHDL. Janne Koljonen University of Vaasa

Luento 2: Viivan toteutus

Ohjelmointiharjoituksia Arduino-ympäristössä

Tehtävä 1 - Scala API:n ulkopuolisten kirjastojen käyttö, ristinollapeli

D12 tytöille niukka tappio, nousu piiriliigaan!

Pelaajat siirtävät nappuloitaan vastakkaisiin suuntiin pelilaudalla. Peli alkaa näin. Tuplauskuutio asetetaan yhtä kauas kummastakin pelaajasta.

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Ordo Aboensis Ry ja Boostep.fi yhdessä esittävät:

Järjestelmäopas. Peliopas LOTTO. estelmäopas_lotto_5_2017.indd

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.

B-Joukkue - Vanhempainpalaveri

Peliopas KAIKKI TAI EI MITÄÄN

Jypelin käyttöohjeet» Ruutukentän luominen

Luento 3: Tulostusprimitiivien toteutus

KENRAALI. Hanki 18 vahvistusjoukkoa tällä vuorolla Pelaa, kun VAHVISTUSJOUKOT ON HANKITTU Hasbro

SALIBANDYTURNAUKSET.com - Urakkatie 7, Kaarina

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

RUU - TU - HYP - PE - LY RUU - TU - HYP - PE - LY. Leikkiohjeet Hyppyruudukon asentaminen

1 PÖYDÄT JA PALLOT 1. Kilpailuissa tulee käyttää Suomen Biljardiliiton hyväksymiä pöytiä ja palloja.

Johdatus f90/95 ohjelmointiin. H, R & R luvut 1-3

TURNAUSINFO KELLOKOSKEN ALKU T00-02 RUUKKI GIRLS CUP

Pelaajien lukumäärä: suositus 3 4 pelaajaa; peliä voi soveltaa myös muille pelaajamäärille

Näitä boccian sääntöjä suositellaan noudatettavaksi kaikissa bocciakisoissa.

Matinteko (1 / 10) Matinteko (2 / 10) Helpointa matin tekeminen on kahdella raskaalla upseerilla (esim. kuningattarella ja tornilla).

- 4 aloituslaattaa pelaajien väreissä molemmille puolille on kuvattu vesialtaat, joista lähtee eri määrä akvedukteja.

LOTON JÄRJESTELMÄPELAAMINEN

A L K U S A R J A ja 4. YLEMPÄÄN JATKOSARJAAN ja 8. ALEMPAAN JATKOSARJAAN

RINNAKKAINEN OHJELMOINTI A,

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Säännöt. Pelivalmistelut

Tutkimustiedonhallinnan peruskurssi

Peliohje (6)

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Kenguru 2011 Cadet RATKAISUT (8. ja 9. luokka)

JOHDATUS TEKOÄLYYN TEEMU ROOS

Lista luokan sisällä

Salasuhteita. esimerkiksi espanjaksi nimi tarkoittaa pientä pusua.

Javan GUI Scratchaajalle

Tilastoja Tekoälykilpailun tulokset Palkintojen jako ja keskustelua. Lopputilaisuus. T Tekoälyn perusteet. Heikki Kallasjoki 28.4.

abba 1. Perusrakenteita

Listarakenne (ArrayList-luokka)

2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma muuttaa parametrejaan tai globaaleja muuttujia, tulostaa jotakin jne.

VHDL Tehtävä 1 : JK-Kiikku toteutettu IF:llä

B-Joukkue - Pelaajapalaveri

Quizlet.

Contents. Kuinka monta jakson sanaa opit? Väritä tähdet. Hello. Numbers. Colours. 1. This is me. 2. Clothes. 3. Family. 4. Home. 5. Food. 6.

BOCCIAN SÄÄNNÖT. Pieksämäen Seudun Eläkkeensaajien Virve Jämsä valmistautuu heittoon joukkuetoverien seuratessa tarkkana vieressä

Kilosport - Urakkatie KAARINA - p L O H K O A FBC Feelings 2 PARASTA JATKAA LOPPUSARJAAN!

Shakkiopas vähemmän pelanneille

Viimeisimpänä aloitteenaan Peimari United haluaa esitellä maalivahdeille kohdennetun uuden turnausmuodon ensimmäisenä Suomessa: Goalkeeper Combat I

ADA. Ohjelmointikieli. Ryhmä 5 Henna Olli, Päivi Hietanen

Näkyvissä kioskirakennuksen seinällä olevalla ilmoitustaululla.

Java-kielen perusteita

Transkriptio:

Program Ristinolla; Uses Graph, Grafiikka, Crt; CONST TestiValikko: Valikko = ( x1:50; y1: 50; x2: 350; y2: 350; RiviLkm: 3; SaraLkm: 3; Pvari : BLUE; Kvari : WHITE; Tvari: WHITE; ApVari: BLUE; ATVari: LIGHTGREEN; Valittu: 1; Tapa: $0005; Tekstit: ( '','','','', '','','','','','','','','','','','' ) ); TestiValikko2: Valikko = ( x1:400; y1: 50; x2: 600; y2: 150; RiviLkm: 1; SaraLkm: 2; Pvari : BLUE; Kvari : WHITE; Tvari: WHITE; ApVari: BLUE; ATVari: LIGHTGREEN; Valittu: 1; Tapa: $0005; Tekstit: ( 'New Game','Quit','','', '','','','','','','','','','','','') ); TestiValikko3: Valikko = ( x1:400; y1: 50; x2: 600; y2: 250; RiviLkm: 3; SaraLkm: 2; Pvari : BLUE; Kvari : WHITE; Tvari: WHITE; ApVari: BLUE; ATVari: LIGHTGREEN; Valittu: 1; Tapa: $0005; Tekstit: ( 'Human','Cpu-Easy','Cpu-Medium','Cpu-Hard', 'Sound','Exit','','','','','','','','','','') ); VAR Valinta, Vuoro, i, cpu, voitot, tappiot, tasat: Integer; pelaaja1, pelaaja2: String[10]; peli, aani: Boolean; ruudut: array[1..9] of integer; {TAULUKON NNUMEROT VASTAAVAT RISTINOLLA-RUUDUKON RUUTUJA} procedure piirra; BEGIN if ruudut[valinta]=0 then begin{hyvˇksy VALINTA JOS RUUTU ON TYHJˇ} ruudut[valinta]:=vuoro; if aani=true then begin if vuoro=1 then begin sound(349); delay(100); sound(262); delay(100); ; ; if vuoro=1 then begin vuoro:=4; setcolor(0); outtextxy(500, 100, pelaaja1); setcolor(15); outtextxy(500, 100, pelaaja2); vuoro:=1; setcolor(0); outtextxy(500, 100, pelaaja2); setcolor(15); outtextxy(500, 100, pelaaja1);

; if aani=true then begin sound(247); delay(100); sound(220); delay(200); ; ; Case ruudut[1] of {PIIRRˇ YMPYRˇT JA RASTIT} line(70, 70, 130, 130); line(130, 70, 70, 130); ; 4: circle(100, 100, 40); ; Case ruudut[2] of line(170, 70, 230, 130); line(230, 70, 170, 130); ; 4: circle(200, 100, 40); ; Case ruudut[3] of line(270, 70, 330, 130); line(330, 70, 270, 130); ; 4: circle(300, 100, 40); ; Case ruudut[4] of line(70, 170, 130, 230); line(130, 170, 70, 230); ; 4: circle(100, 200, 40); ; Case ruudut[5] of line(170, 170, 230, 230); line(230, 170, 170, 230); ; 4: circle(200, 200, 40); ; Case ruudut[6] of line(270, 170, 330, 230); line(330, 170, 270, 230); ; 4: circle(300, 200, 40); ;

Case ruudut[7] of line(70, 270, 130, 330); line(130, 270, 70, 330); ; 4: circle(100, 300, 40); ; Case ruudut[8] of line(170, 270, 230, 330); line(230, 270, 170, 330); ; 4: circle(200, 300, 40); ; END; Case ruudut[9] of line(270, 270, 330, 330); line(330, 270, 270, 330); ; 4: circle(300, 300, 40); ; Procedure voitto; {KUN JOMPIKUMPI SAA VALMIIKSI SUORAN} BEGIN outtextxy(400, 200, 'Winner:'); peli:=false; if aani=true then begin if (vuoro=4) or (cpu=0) then begin Sound(131); Delay(500); Sound(165); Delay(500); Sound(196); Delay(500); Sound(392); Delay(1000); Delay(100); Sound(392); Delay(250); Delay(100); Sound(392); Delay(250); Delay(100); Sound(523); Delay(1500); else if cpu>0 then begin {JOS CPU VOITTAA} Sound(247); Delay(500); Sound(196); Delay(500); Sound(165); Delay(500); nosound; ; ; END;

procedure tasapeli; {KUN KAIKKI RUUDUT TˇYTTYVˇT} BEGIN outtextxy(400, 200, 'Tie!'); peli:=false; if aani=true then begin sound(220); delay(400); sound(247); delay(200); sound(220); delay(500); Sound(392); Delay(1000); ; END; procedure suorat; BEGIN if (ruudut[1]+ruudut[2]+ruudut[3]=3) or {JOS PELAAJALLA1 SUORA} (ruudut[4]+ruudut[5]+ruudut[6]=3) or (ruudut[7]+ruudut[8]+ruudut[9]=3) or (ruudut[1]+ruudut[4]+ruudut[7]=3) or (ruudut[2]+ruudut[5]+ruudut[8]=3) or (ruudut[3]+ruudut[6]+ruudut[9]=3) or (ruudut[1]+ruudut[5]+ruudut[9]=3) or (ruudut[7]+ruudut[5]+ruudut[3]=3) then begin outtextxy(500, 200, pelaaja1); setcolor(0); outtextxy(500, 100, pelaaja2); _KirjoitaKokLuku(150, 400, 2, voitot); voitot:=voitot+1; setcolor(15); _KirjoitaKokLuku(150, 400, 2, voitot); voitto; else if (ruudut[1]+ruudut[2]+ruudut[3]=12) or {JOS PELAAJALLA2 SUORA} (ruudut[4]+ruudut[5]+ruudut[6]=12) or (ruudut[7]+ruudut[8]+ruudut[9]=12) or (ruudut[1]+ruudut[4]+ruudut[7]=12) or (ruudut[2]+ruudut[5]+ruudut[8]=12) or (ruudut[3]+ruudut[6]+ruudut[9]=12) or (ruudut[1]+ruudut[5]+ruudut[9]=12) or (ruudut[7]+ruudut[5]+ruudut[3]=12) then begin outtextxy(500, 200, pelaaja2); setcolor(0); outtextxy(500, 100, pelaaja1); _KirjoitaKokLuku(550, 400, 2, tappiot); tappiot:=tappiot+1; setcolor(15); _KirjoitaKokLuku(550, 400, 2, tappiot); voitto; {ALIOHJELMAAN} else if ruudut[1]+ruudut[2]+ruudut[3]+ruudut[4]+ruudut[5]+ {TASAPELI} ruudut[6]+ruudut[7]+ruudut[8]+ruudut[9]>20 then begin outtextxy(500, 200, pelaaja2); setcolor(0);

if vuoro=1 then outtextxy(500, 100, pelaaja1) else outtextxy(500, 100, pelaaja2); _KirjoitaKokLuku(350, 400, 2, tasat); tasat:=tasat+1; setcolor(15); _KirjoitaKokLuku(350, 400, 2, tasat); tasapeli; {ALIOHJELMAAN} ; END; procedure cpu1; Begin repeat {SATUNNAINEN} valinta:=random(9)+1; until ruudut[valinta]=0 End; procedure cpu2; Begin if (ruudut[1]+ruudut[2]+ruudut[3]=8) or {VIIMEISTELE OMA SUORA} (ruudut[4]+ruudut[5]+ruudut[6]=8) or (ruudut[7]+ruudut[8]+ruudut[9]=8) or (ruudut[1]+ruudut[4]+ruudut[7]=8) or (ruudut[2]+ruudut[5]+ruudut[8]=8) or (ruudut[3]+ruudut[6]+ruudut[9]=8) or (ruudut[1]+ruudut[5]+ruudut[9]=8) or (ruudut[7]+ruudut[5]+ruudut[3]=8) then begin if (ruudut[1]+ruudut[2]+ruudut[3]=8) then begin else if ruudut[2]=0 then valinta:=2 else valinta:=3; else if (ruudut[4]+ruudut[5]+ruudut[6]=8) then begin if ruudut[4]=0 then valinta:=4 else valinta:=6; else if (ruudut[7]+ruudut[8]+ruudut[9]=8) then begin if ruudut[7]=0 then valinta:=7 else if ruudut[8]=0 then valinta:=8 else if (ruudut[1]+ruudut[4]+ruudut[7]=8) then begin else if ruudut[4]=0 then valinta:=4 else if (ruudut[2]+ruudut[5]+ruudut[8]=8) then begin if ruudut[2]=0 then valinta:=2 else valinta:=8; else if (ruudut[3]+ruudut[6]+ruudut[9]=8) then begin else if ruudut[6]=0 then valinta:=6

SUORA} else if (ruudut[1]+ruudut[5]+ruudut[9]=8) then begin ; else if (ruudut[1]+ruudut[2]+ruudut[3]=2) or {ESTˇ VASTUSTAJAN (ruudut[4]+ruudut[5]+ruudut[6]=2) or (ruudut[7]+ruudut[8]+ruudut[9]=2) or (ruudut[1]+ruudut[4]+ruudut[7]=2) or (ruudut[2]+ruudut[5]+ruudut[8]=2) or (ruudut[3]+ruudut[6]+ruudut[9]=2) or (ruudut[1]+ruudut[5]+ruudut[9]=2) or (ruudut[7]+ruudut[5]+ruudut[3]=2) then begin if (ruudut[1]+ruudut[2]+ruudut[3]=2) then begin else if ruudut[2]=0 then valinta:=2 else valinta:=3; else if (ruudut[4]+ruudut[5]+ruudut[6]=2) then begin if ruudut[4]=0 then valinta:=4 else valinta:=6; else if (ruudut[7]+ruudut[8]+ruudut[9]=2) then begin if ruudut[7]=0 then valinta:=7 else if ruudut[8]=0 then valinta:=8 else if (ruudut[1]+ruudut[4]+ruudut[7]=2) then begin else if ruudut[4]=0 then valinta:=4 else if (ruudut[2]+ruudut[5]+ruudut[8]=2) then begin if ruudut[2]=0 then valinta:=2 else valinta:=8; else if (ruudut[3]+ruudut[6]+ruudut[9]=2) then begin else if ruudut[6]=0 then valinta:=6 else if (ruudut[1]+ruudut[5]+ruudut[9]=2) then begin

End; ; {KESKELLE} repeat {SATUNNAINEN} valinta:=random(9)+1; until ruudut[valinta]=0 ; procedure cpu3; Begin if (ruudut[1]+ruudut[2]+ruudut[3]=8) or {VIIMEISTELE OMA SUORA} (ruudut[4]+ruudut[5]+ruudut[6]=8) or (ruudut[7]+ruudut[8]+ruudut[9]=8) or (ruudut[1]+ruudut[4]+ruudut[7]=8) or (ruudut[2]+ruudut[5]+ruudut[8]=8) or (ruudut[3]+ruudut[6]+ruudut[9]=8) or (ruudut[1]+ruudut[5]+ruudut[9]=8) or (ruudut[7]+ruudut[5]+ruudut[3]=8) then begin if (ruudut[1]+ruudut[2]+ruudut[3]=8) then begin else if ruudut[2]=0 then valinta:=2 else valinta:=3; else if (ruudut[4]+ruudut[5]+ruudut[6]=8) then begin if ruudut[4]=0 then valinta:=4 else valinta:=6; else if (ruudut[7]+ruudut[8]+ruudut[9]=8) then begin if ruudut[7]=0 then valinta:=7 else if ruudut[8]=0 then valinta:=8 else if (ruudut[1]+ruudut[4]+ruudut[7]=8) then begin else if ruudut[4]=0 then valinta:=4 else if (ruudut[2]+ruudut[5]+ruudut[8]=8) then begin if ruudut[2]=0 then valinta:=2 else valinta:=8; else if (ruudut[3]+ruudut[6]+ruudut[9]=8) then begin else if ruudut[6]=0 then valinta:=6 else if (ruudut[1]+ruudut[5]+ruudut[9]=8) then begin

SUORA} ; else if (ruudut[1]+ruudut[2]+ruudut[3]=2) or {ESTˇ VASTUSTAJAN (ruudut[4]+ruudut[5]+ruudut[6]=2) or (ruudut[7]+ruudut[8]+ruudut[9]=2) or (ruudut[1]+ruudut[4]+ruudut[7]=2) or (ruudut[2]+ruudut[5]+ruudut[8]=2) or (ruudut[3]+ruudut[6]+ruudut[9]=2) or (ruudut[1]+ruudut[5]+ruudut[9]=2) or (ruudut[7]+ruudut[5]+ruudut[3]=2) then begin if (ruudut[1]+ruudut[2]+ruudut[3]=2) then begin else if ruudut[2]=0 then valinta:=2 else valinta:=3; else if (ruudut[4]+ruudut[5]+ruudut[6]=2) then begin if ruudut[4]=0 then valinta:=4 else valinta:=6; else if (ruudut[7]+ruudut[8]+ruudut[9]=2) then begin if ruudut[7]=0 then valinta:=7 else if ruudut[8]=0 then valinta:=8 else if (ruudut[1]+ruudut[4]+ruudut[7]=2) then begin else if ruudut[4]=0 then valinta:=4 else if (ruudut[2]+ruudut[5]+ruudut[8]=2) then begin if ruudut[2]=0 then valinta:=2 else valinta:=8; else if (ruudut[3]+ruudut[6]+ruudut[9]=2) then begin else if ruudut[6]=0 then valinta:=6 else if (ruudut[1]+ruudut[5]+ruudut[9]=2) then begin ; {KESKELLE}

else if (ruudut[2]+ruudut[4]+ruudut[6]+ruudut[8]=2) and (ruudut[1]+ruudut[3]+ruudut[7]+ruudut[9]<5) then begin if (ruudut[2]+ruudut[6]=2) then valinta:=3 else if (ruudut[2]+ruudut[4]=2) then valinta:=1 else if (ruudut[8]+ruudut[6]=2) then valinta:=9 else if (ruudut[8]+ruudut[4]=2) then valinta:=7 valinta:=random(4)+1; if valinta=2 then valinta:=3 else if valinta=3 then valinta:=7 else if valinta=4 then valinta:=9; ; else if ((ruudut[1]+ruudut[9]=2) or (ruudut[3]+ruudut[7]=2)) and (ruudut[5]=4) then begin valinta:=random(4)+1; if valinta=1 then valinta:=6 else if valinta=3 then valinta:=8 else if ruudut[1]+ruudut[3]+ruudut[7]+ruudut[9]=1 then begin {VASTAKKAISEEN} if ruudut[1]=1 then valinta:=9 {KULMAAN KUIN VASTUSTAJA} begin begin begin else if ruudut[3]=1 then valinta:=7 else if ruudut[7]=1 then valinta:=3 else if ruudut[9]=1 then valinta:=1; {JOS REUNAAN, NIIN KULMAAN} else if (ruudut[2]=1) and ((ruudut[7]=0) or (ruudut[9]=0))then if ruudut[7]=0 then valinta:=7 else if (ruudut[4]=1) and ((ruudut[3]=0) or (ruudut[9]=0)) then if ruudut[9]=0 then valinta:=9 else valinta:=3; else if (ruudut[6]=1) and ((ruudut[1]=0) or (ruudut[7]=0)) then else if (ruudut[8]=1) and ((ruudut[3]=0) or (ruudut[1]=0)) then begin else valinta:=1; else if (ruudut[1]=0) or (ruudut[3]=0) or (ruudut[7]=0) or (ruudut[9]=0) then begin repeat {VAPAASEEN KULMAAN} valinta:=random(4)+1; if valinta=2 then valinta:=3 else if valinta=3 then valinta:=7

End; else if valinta=4 then valinta:=9; until ruudut[valinta]=0; {SATUNNAINEN} repeat valinta:=random(9)+1; until ruudut[valinta]=0 ; Procedure valitsevastus; {VALITSE VAIKEUSASTE} BEGIN _Valikko(TestiValikko3); _Valikkoon(Valinta, TestiValikko3); if (aani=true) and (valinta<>5) then begin sound(349); Delay(100); sound(392); Delay(200); ; if valinta=1 then cpu:=0 else if valinta=2 then cpu:=1 else if valinta=3 then cpu:=2 else cpu:=3; END; BEGIN aani:=true; repeat randomize; Vuoro:=1; voitot:=0; tappiot:=0; tasat:=0; grafiikkatilaan; _Valikko(TestiValikko); settextstyle(0,0,5); outtextxy(50,375,'tick-tack-toe'); settextstyle(0,0,2); outtextxy(300,425,'by: Miro Aurela'); valitsevastus; if valinta=5 then begin if aani=true then begin aani:=false aani:=true; sound(349); Delay(100); sound(392); Delay(200); ; ; if (valinta<5) then begin textmode(lastmode); writeln; writeln('player 1 (X):'); readln(pelaaja1);

if cpu=0 then begin writeln('player 2 (O):'); readln(pelaaja2); else if cpu=1 then pelaaja2:='cpu-easy' else if cpu=2 then pelaaja2:='cpu-medium' else pelaaja2:='cpu-hard'; textcolor(0); settextstyle(0,0,7); outtextxy(50,375,'tick-tack-toe'); settextstyle(0,0,1); outtextxy(300,425,'by: Miro Aurela'); textcolor(15); repeat for i:=1 to 9 do ruudut[i]:=0; GrafiikkaTilaan; outtextxy(400, 100, 'In turn: '); if vuoro=1 then outtextxy(500, 100, pelaaja1) else outtextxy(500, 100, pelaaja2); outtextxy(250, 400, 'Ties'); if cpu=0 then begin outtextxy(50, 400, pelaaja1); outtextxy(450, 400, pelaaja2); outtextxy(50, 400, 'Wins'); outtextxy(450, 400, 'Loses'); ; _KirjoitaKokLuku(150, 400, 2, voitot); _KirjoitaKokLuku(350, 400, 2, tasat); _KirjoitaKokLuku(550, 400, 2, tappiot); peli:=true; _Valikko(TestiValikko); repeat{itse RISTINOLLA OSUUS, PELATAAN VALITTUA VASTUSTAJAA VASTAAN} if (cpu=0) or (vuoro=1) then begin {JOS PELAAJAN VUORO} _Valikkoon(Valinta, TestiValikko); {PELAAJA TEKEE VALINNAN} else if vuoro=4 then begin {JOS TIETOKONEEN VUORO} delay(random(1000)+400); if cpu=1 then cpu1 else if cpu=2 then cpu2 else cpu3; ; piirra; suorat; until peli=false;{kunnes TOINEN SAA SUORAN TAI KAIKKI RUDUT TˇYNNˇ} _Valikko(TestiValikko2); {HALUATKO UUDEN PELIN? ('UUSI'/'ALKUUN')} _Valikkoon(Valinta, TestiValikko2); if aani=true then begin sound(349); Delay(100); sound(392); Delay(200); ; until (valinta=2); {JOS VALITSET 'ALKUUN'} ;

until valinta=6; {OHJELMA LOPPUU, KUN VALINTA ON 'LOPETA'} END.