Haasteen vaiheet:
1. Ohjelmoi Breakout-tyylinen peli, jossa on pistelaskenta. Laitteella tai ohjelmointikielellä ei ole väliä.
2. Julkaise koodi tekstinä tai kuvana. (Jotta joku muukin saa kokeilla koodiasi)
3. Ota kuva pelistä ja piste-ennätyksestäsi. Haasta muita päihittämään oma ennätyksesi.
Haasterintamalla otetaan uusi askel ja kokeillaan jotain uudenlaista haastetta.
Mesikämmen Media julistaa alkavaksi ensimmäisen "Koodaa ja pelaa" haasteen, jonka tarkoituksena on innostaa matalalla kynnyksellä peliohjelmoinnin maailmaan.
Haasteessa on tarkoituksena ohjelmoida Breakout-tyylinen peli. Ohjelmointikielellä, alustalla tai laitteella ei ole väliä. Ohjelmoinnin sujuvoittamiseksi voi käyttää apuna tekoälyä tai valmiita esimerkkilistauksia. Tärkeintä on kuitenkin se, että koodin lopulta tulee olla itsekirjoitettua ruudulle.
Haasteen aikaraja on mainosheittona "juhannuksesta jouluun", joka tarkoittaa käytännössä vuotta 2024.
Haasteeseen osallistutaan postaamalla kuvat ja koodi Mesikämmen Median someen Facebookissa tai Instassa. Käytä hastagia #koodaajapelaa, sekä linkkaa Mesikämmen Media postaukseesi.
Osallistujien kesken arvotaan kirjallisuutta, jonka aiheena ohjelmointia tai pelaamista.
Toivotamme kaikki mukaan haasteeseen!
Koodaa ja Pelaa -haaste mittelöitiin vuoden 2024 loppumaininkeissa. Kisan julkistaminen somessa sai runsaasti tykkäyksiä, mutta olikohan haaste liian hankala tai laaja, koska tuloksia ei saatu kuin yhdeltä ihmiseltä.
Osallistuja 1: Tuomo Ahlfors
Aluksi kokeilin Breakout-tyylisen pelin ohjelmointia Commodore 64:n basicilla. Sain ruudulle tulostumaan rivin verran palikoita ja pallon, joka karkasi välittömästi ruudulta. En keksinyt ratkaisua, joten vaihdoin helpompaan.
Kuva osasta koodista.
Kuva pelistä
Game Over ja pisteet
10 REM Breakout-peli
20 CLS
30 SCREEN 12
40 RANDOMIZE TIMER
50 ' Pallo
60 XBALL = 320 / 2
70 YBALL = 200
80 DX = 4
90 DY = 3
100 ' Maila
110 XM = 160
120 YM = 450
130 MW = 60
140 MH = 10
150 ' Seinät
160 FOR X = 0 TO 639
170 LINE (X, 0), (X, 499), RGB(0, 0, 0)
180 NEXT X
190 FOR Y = 0 TO 499
200 LINE (0, Y), (639, Y), RGB(0, 0, 0)
210 NEXT Y
220 ' Pallo
230 CIRCLE (XBALL, YBALL), 10, RGB(255, 255, 255)
240 ' Maila
250 LINE (XM - MW / 2, YM), (XM + MW / 2, YM), RGB(255, 255, 255)
260 LINE (XM - MW / 2, YM - MH), (XM - MW / 2, YM), RGB(255, 255, 255)
270 LINE (XM + MW / 2, YM - MH), (XM + MW / 2, YM), RGB(255, 255, 255)
280 ' Liikkuminen
290 IF INKEY$ = "" THEN GOTO 280
300 KEYPRESS$ = INKEY$
310 IF KEYPRESS$ = CHR$(72) THEN XM = XM - 10
320 IF KEYPRESS$ = CHR$(77) THEN XM = XM + 10
330 ' Pallon liikkuminen
340 XBALL = XBALL + DX
350 YBALL = YBALL + DY
360 ' Pallon seinät
370 IF XBALL <= 0 OR XBALL >= 639 THEN DX = -DX
380 IF YBALL <= 0 THEN DY = -DY
390 ' Pallo mailaan
400 IF YBALL >= YM - MH AND YBALL <= YM AND XBALL >= XM - MW / 2 AND XBALL <= XM + MW / 2 THEN DY = -DY
410 ' Pallo osuu tiileen
420 FOR T = 0 TO 19
430 FOR B = 0 TO 9
440 IF XBALL >= T * 32 AND XBALL <= T * 32 + 31 AND YBALL >= B * 16 AND YBALL <= B * 16 + 15 THEN
450 ' Tee jotain, kun pallo osuu tiileen
460 NEXT B
470 NEXT T
480 ' Pallo putoaa
490 IF YBALL >= 499 THEN
500 CLS
510 PRINT "Hävisit!"
520 END
530 GOTO 230 ' Jatka peliä
Seuraavaksi tein Breakoutin Scratch-ohjelmalla, jota voisi kuvailla graafiseksi ohjelmoinniksi.
Koodi palikalle
Koodi pallolle
Koodi mailalle
Koodi Start-nappulalle
Koodi Game Over -tekstille
Koodi Winner-tekstille
Kuva pelistä