-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathkohtipelia.html
More file actions
241 lines (191 loc) · 8.12 KB
/
kohtipelia.html
File metadata and controls
241 lines (191 loc) · 8.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!-->
<html class="no-js">
<!--<![endif]-->
<!-- HEAD SECTION-->
<head>
<meta charset="utf-8">
<title>Linkki</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--[if lt IE 9]><script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<!-- MAIN STYLE SECTION-->
<link href="assets/plugins/isotope/isotope.css" rel="stylesheet" media="screen" />
<link href="assets/plugins/fancybox/jquery.fancybox.css" rel="stylesheet" />
<link href="assets/plugins/IconHoverEffects-master/css/component.css" rel="stylesheet" />
<link href="assets/plugins/bootstrap/bootstrap.css" rel="stylesheet" />
<link href="assets/css/about-achivements.css" rel="stylesheet" />
<link id="mainStyle" href="assets/css/style.css" rel="stylesheet" />
<link href='https://fonts.googleapis.com/css?family=Varela+Round' rel='stylesheet' type='text/css'>
<!-- END MAIN STYLE SECTION-->
</head>
<!-- END HEAD SECTION-->
<!-- BODY SECTION-->
<body>
<!-- HEADER SECTION-->
<div class="navbar navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="fa fa-bars mobile-bars" style=""></span>
</button>
<a class="navbar-brand" href="index.html" >
Linkki<!-- logo here-->
</a>
</div>
<div class="navbar-collapse collapse" data-scrollreveal="enter from the right 50px">
<ul class="nav navbar-nav">
<li class=""><a href="index.html">Home</a></li><!-- menu links-->
<li><a href="perusasiat.html">Perusasiat</a></li>
<li><a href="rakenteita.html">Lisää rakenteita</a></li>
<li><a href="funktiot.html">Funktiot</a></li>
<li><a href="kohtipelia.html">Kohti peliä</a></li>
<li><a href="pygame.html">Peliohjelmoinnin alkeet</a></li>
<li><a href="vihollispeli.html">Vihollispeli</a></li>
</ul>
</div>
</div>
</div>
<!-- END HEADER SECTION-->
<!--PAGE CONTENT-->
<!-- HOMEPAGE SECTION-->
<section id="Homepage">
<div class="container">
<div class="row">
<div data-scrollreveal="wait 0.5s and then ease-in-out 50px" class="col-md-6 col-md-offset-3">
<div class="align-center">
<h2 class="main-text">KOHTI PELIÄ</h2>
</div>
</div>
</div>
</section>
<section style="margin-top:20px;">
<div class="container">
<div class="row">
<div class="">
Tässä osiossa opetellaan toteuttamaan joitakin peleissä tärkeitä asioita Pythonilla.
<h2> Satunnaisuus </h2>
Saatat muistaa Scratch-kerhosta, miten esimerkiksi vihollisia voi Scratchilla sijoittaa satunnaisesti pelikentälle.
Nyt opetellaan Pythonilla satunnaisluvun generoiminen valmista funktiota apuna käyttäen. Seuraavassa kuvassa on tapa
jolla Scratchissa otetaan satunnaisluku väliltä 1-10.
</br></br>
<img src="assets/img/randomi.png" />
</br> </br>
Pythonissa saman toteuttamiseen tarvitaan random -kirjastoa. Se tuodaan ohjelmaan import random -käskyllä. random.randint(1, 10)
tekee saman kuin Scratchin versio, siis arpoo satunnaisluvun väliltä 1..10.
</br> </br>
<pre>
import random
print(random.randint(1, 10))
</pre>
<h2>Tehtävä 1: Nopan heittäminen</h2>
<p>Tee ohjelma, joka heittää noppaa ja ilmoittaa silmäluvun.</p>
<p>Ohjelman mahdollisia tulostuksia ovat esimerkiksi seuraavat:</p>
<pre>
Silmäluku: 3
</pre>
<pre>
Silmäluku: 5
</pre>
<h2>Tehtävä 2: Kolikon heittäminen</h2>
<p>Tee ohjelma, joka heittää kolikkoa ja ilmoittaa tuloksen (kruuna tai klaava).</p>
<p>Ohjelman mahdolliset tulostukset ovat seuraavat:</p>
<pre>
Tulos: kruuna
</pre>
<pre>
Tulos: klaava
</pre>
<h2>Tehtävä 3: Salasanan arpoja</h2>
<p>Tee ohjelma, joka arpoo käyttäjälle salasanan.
Salasana muodostuu merkeistä a-z ja siinä on 8 merkkiä.</p>
<p>Ohjelman tulostuksia ovat esimerkiksi seuraavat:</p>
<pre>
Salasana: zitbfsnt
</pre>
<pre>
Salasana: wlprcusq
</pre>
<h2>Tehtävä 4: Sekoittaja</h2>
<p>Tee ohjelma, joka sekoittaa listan sisällön.
Sovella ohjelmassa satunnaisuutta haluamallasi tavalla.</p>
<p>Ohjelman runko on seuraava:</p>
<pre class="sh_python">
luvut = [1, 2, 3, 4, 5, 6, 7, 8]
sekoitaLista(luvut)
tulostaLista(luvut)
</pre>
<h2> Tehtävä 5: Vihollisen sijainnit</h2>
Tee ohjelma, joka luo listan nimeltään vihollisenSijainnit ja arpoo 1000 kappaletta vihollisen sijainteja lisäten ne listaan.
Vihollisen sijainti on merkkijonopari x,y. Esimerkiksi "5,16" on kelpo vihollisen sijainti. Sekä x- että y-koordinaatit voivat
olla väliltä 0-100. Tulosta lopuksi lista jotta näet mitä se sisältää.
</br></br>
Vinkki: Muistathan että merkkijonoja yhdistetään plusmerkillä.
<pre>
merkkijono = "a"
merkkijono += "bc"
print(merkkijono) #tulostuu abc
</pre>
<h2> Listan järjestäminen </h2>
Saatat tarvita peliä tehdessä listan järjestämistä esimerkiksi pisteiden tai etäisyyksien suuruusjärjestykseen laittamisessa. Seuraavassa esimerkissä
määritellään, järjestetään lista valmista funktiota kutsumalla ja tulostetaan se. Jos olet kiinnostunut tarkemmin siitä miten järjestäminen toimii
sort -funktion sisällä, googlaa esimerkiksi kuplalajittelu (bubble sort) tai lomituslajittelu (merge sort).
</br></br>
<pre>
lista = [1, 3, 5, 4]
lista.sort()
print(lista) #tulostuu [1, 3, 4, 5]
</pre>
<h2> Tehtävä 6: Pistelista</h2>
Tee ohjelma, joka kysyy käyttäjältä pelaajan nimen ja pisteet ja jatkaa tätä, kunnes käyttäjä antaa syötteen "lopeta" pelaajaa kysyttäessä. Tämän jälkeen
tulostetaan parhaat pisteet ja niiden pelaaja.
</br></br>
<pre>
Anna pelaaja: Pihla
Anna pisteet: 50
Anna pelaaja: Ada
Anna pisteet: 65
Anna pelaaja: lopeta
Pihla, 50
</pre>
</div>
</div>
</div>
</section>
<!--END HOMEPAGE SECTION-->
<!-- END FOOTER SECTION-->
<!-- SCROLLUP LINK SECTION-->
<a href="#Homepage" class="scrollup"><i class="fa fa-chevron-up"></i></a>
<!--END SCROLLUP LINK SECTION-->
<!-- STYLE SWITCHER SECTION-->
<div class="panel" style="color:white">
<div id="styledemo" style="left: 0px;">
<span id="theme_blue" style="background-color:#37AFFF" ></span>
<span id="theme_green" style="background-color:#469E66" ></span>
<span id="theme_brown" style="background-color:#E69351" ></span>
<span id="theme_red" style="background-color:#E7484E" ></span>
</div>
</div>
<a class="trigger" href="#"></a>
<!-- END STYLE SWITCHER SECTION-->
<!-- MAIN SCRIPTS SECTION-->
<script src="assets/js/modernizr-2.6.2-respond-1.1.0.min.js"></script>
<script src="assets/js/jquery.js"></script>
<script src="assets/js/scrollReveal.js"></script>
<script>
window.scrollReveal = new scrollReveal(); //please put this script here to show animation at the time of scroll
</script>
<script src="assets/js/jquery.easing.1.3.js"></script>
<script src="assets/plugins/bootstrap/bootstrap.min.js"></script>
<script src="assets/plugins/isotope/jquery.isotope.min.js"></script>
<script src="assets/plugins/fancybox/jquery.fancybox.pack.js"></script>
<script src="assets/js/jquery.localscroll-1.2.7-min.js"></script>
<script src="assets/js/jquery.appear.js"></script>
<script src="assets/scripts/main.js"></script>
<!--END MAIN SCRIPTS SECTION-->
</body>
<!--END BODY SECTION-->
</html>