Skip to content
Snippets Groups Projects
Commit 08cd6f6b authored by juhevali's avatar juhevali
Browse files

Jotain meni rikki kun opettaja halusi siivota koodia

parent 3ab870f3
No related branches found
No related tags found
1 merge request!1Lopullinen versio pelistä. Peli on "valmis".
......@@ -21,6 +21,15 @@ alkutilanne =
[Hemmo (400, 100), Hemmo (600, 100)]
)
alkuKopteri :: Kopteri
alkuKopteri = Kopteri
(10, 0) -- paikka
0
(0,0) -- vauhti
0
0
0 -- hemmoja
-- main :: IO ()
-- main = animate
-- (InWindow "Choplifter" (400,400) (200,200))
......@@ -69,6 +78,16 @@ onkoHyväLaskeutuminen nopeus kulma
| magV nopeus < 250 && abs kulma <= 13 = True -- magV laskee vektoreista niiden kokonaismitan (kuinka pitkä vektori)
| otherwise = False
cl_paikka :: Choplifter -> Point
cl_paikka peli = kop_paikka . cl_kopteri
cl_nopeus peli = kop_nopeus . cl_kopteri
cl_paikka :: Choplifter -> Point
cl_paikka peli = kop_paikka . cl_kopteri
cl_kulma, cl_teho :: Choplifter -> Float
cl_kulma peli = kop_kulma . cl_kopteri
cl_teho peli = kop_teho . cl_kopteri
päivitäPeliTilanne :: Float -> PeliTilanne -> PeliTilanne
päivitäPeliTilanne aikaedellisestä pelitilanne =
case pelitilanne of
......@@ -79,7 +98,11 @@ päivitäPeliTilanne aikaedellisestä pelitilanne =
Just Laskuteline
| onkoHyväLaskeutuminen (cl_nopeus cl) (cl_kulma cl)
-> GameOn (päivitäPeliä aikaedellisestä
cl{cl_kulma = 0
cl{cl_kopteri = cl_kopteri cl{kop_kulma=0}
,cl_kopteri = cl_kopteri cl {kop_nopeus =
pysäytäPystyssä
(cl_nopeus cl)}})
cl_kulma = 0
,cl_nopeus = pysäytäPystyssä (cl_nopeus cl)}) -- päivitetään samalla pysähdyksiin kopteri
| otherwise -> GameOver cl
......@@ -248,18 +271,20 @@ data Choplifter -- modelin tilalle tehdäänkin tämä -- tehdään tietotyypp
= Peli
{ -- annetaan nyt tämän (record tyyppisen) tietueen kentille oikeat nimet! Ei tarvitse paukutella auki case lauseissa koko ajan!
cl_aika :: Float -- Aika pelin alusta
,cl_paikka :: (Float, Float) -- Missä kopteri (kopteriX, kopteriY)
,cl_teho :: Float -- Teho
,cl_nopeus :: (Float, Float) -- nopeus vektorina (suuntaX, suuntaY)
,cl_kulma :: Float -- Kulma eli kuinka vinossa
,cl_kiihtyvyysKerroin :: Float
,cl_hemmojaKyydissä :: Natural
,cl_kopteri :: Kopteri
,cl_talot :: [Talo]
,cl_hemmot :: [Hemmo]
} -- Annettiin cl_nimet koska muuten voisi tulla inhimillisiä virheitä helpommin
data Kopteri = Kopteri {
kop_paikka :: (Float, Float) -- Missä kopteri (kopteriX, kopteriY)
,kop_teho :: Float -- Teho
,kop_nopeus :: (Float, Float) -- nopeus vektorina (suuntaX, suuntaY)
,kop_kulma :: Float -- Kulma eli kuinka vinossa
,kop_kiihtyvyysKerroin :: Float
,kop_hemmojaKyydissä :: Natural
}
korkeusKohdassa :: Float -> Choplifter -> Float -- korkeuskoordinaatti eka arg
korkeusKohdassa kohta peli = maybe 0 maximum1 . nonEmpty . map osuukoTaloon . cl_talot $ peli
-- selkeämpi kylläkin tehdä näin: maybe 0 maximum1 (nonEmpty (map osuukoTaloon (cl_talot peli)))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment