Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
choplifter
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Package Registry
Model registry
Operate
Terraform modules
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
juhevali
choplifter
Commits
08cd6f6b
Commit
08cd6f6b
authored
4 years ago
by
juhevali
Browse files
Options
Downloads
Patches
Plain Diff
Jotain meni rikki kun opettaja halusi siivota koodia
parent
3ab870f3
No related branches found
Branches containing commit
No related tags found
1 merge request
!1
Lopullinen versio pelistä. Peli on "valmis".
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/Main.hs
+34
-9
34 additions, 9 deletions
src/Main.hs
with
34 additions
and
9 deletions
src/Main.hs
+
34
−
9
View file @
08cd6f6b
...
...
@@ -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)))
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment