Jonkin aikaa sitten törmäsin YouTubessa HandmadeCon 2015:ssa olleeseen haastatteluun (https://youtu.be/qWJpI2adCcs?t=3455) jossa Mike Acton mainitsi keskustelun lomassa, että hänen mielestään peliohjelmoijat eivät harjoittele tarpeeksi ja esitti yhtenä kiireisille ihmisille sopivana harjoitusmetodina seuraavanlaista: Valitse jokin kiinnostava ongelma ja koita ratkaista kyseinen ongelma 30 minuutissa. Tämän jälkeen (esim. seuraavana päivänä) koita ratkaista sama ongelma uudelleen 30 minuutissa aloittaen alusta, tuomatta mitään edellisessä sessiossa tuotettua mukana uuteen yritykseen.
Haastattelussa esimerkkinä käytettiin Asteroids-peliä ja tästä intoutuneena päädyin kesälomaillessa kokeilemaan Asteroidsin toteutusta CoolBasicilla 30 minuutissa (esimerkkisuoritus myöhemmässä viestissä) ja totesin tämän olevan sen mukavaa pientä puuhastelua, että haastan muutkin kokeilemaan samaa jos nyt joku sattuu vielä foorumeille eksymään. Itse käytin CoolBasiciin lähinnä sen kitkattomuuden vuoksi, mutta koska CB on jokseenkin kuollut (
Tehtävä
Toteuta Asteroids-peli 30 minuutissa.

Video: https://www.youtube.com/watch?v=9Ydu8UhIjeU
Wikipediassa Asteroidsia kuvaillaan seuraavasti:
Englanninkielisestä wikipediasta löytyy hieman kattavampi kuvaus:Pelissä pelaaja voi liikuttaa alustaan kaikkiin suuntiin varoen ja tuhoten samalla asteroideja. Tarkoituksena on pisteiden keruu ja elossa säilyminen mahdollisimman kauan. 10 000:n pisteen välein pelaaja saa uuden aluksen. Peli on ohi, kun pelaajalla ei enää ole aluksia käytettävänään.
SäännötThe objective of Asteroids is to destroy asteroids and saucers. The player controls a triangular ship that can rotate left and right, fire shots straight forward, and thrust forward. Once the ship begins moving in a direction, it will continue in that direction for a time without player intervention unless the player applies thrust in a different direction. The ship eventually comes to a stop when not thrusting. The player can also send the ship into hyperspace, causing it to disappear and reappear in a random location on the screen, at the risk of self-destructing or appearing on top of an asteroid.
Each level starts with a few large asteroids drifting in various directions on the screen. Objects wrap around screen edges – for instance, an asteroid that drifts off the top edge of the screen reappears at the bottom and continues moving in the same direction. As the player shoots asteroids, they break into smaller asteroids that move faster and are more difficult to hit. Smaller asteroids are also worth more points. Two flying saucers appear periodically on the screen; the "big saucer" shoots randomly and poorly, while the "small saucer" fires frequently at the ship. After reaching a score of 40,000, only the small saucer appears. As the player's score increases, the angle range of the shots from the small saucer diminishes until the saucer fires extremely accurately. Once the screen has been cleared of all asteroids and flying saucers, a new set of large asteroids appears, thus starting the next level. The game gets harder as the number of asteroids increases until after the score reaches a range between 40,000 and 60,000. The player starts with 3–5 lives upon game start and gains an extra life per 10,000 points. Play continues to the last ship lost, which ends the game. Machine "turns over" at 99,990 points, which is the maximum high score that can be achieved.
- Jokaisessa yrityksessä tiukka 30-minuutin aikaraja, kellon pysäyttäminen windows päivitysten yms. vuoksi ei ole sallittua.
- Voit tehdä oman tulkintasi Asteroidsista eli grafiikoilla ja säännöillä kikkailu on sallittua.
- Voit käyttää haluaamasi kieltä/engineä/työkaluja (Vinkki: CoolBasic sopii tähän erittäin hyvin
)
- Voit yrittää ratkaisua niin monta kertaa kuin haluat, mutta joka kerralla on aloitettava alusta.
- Koska haasteen pääpaino on ohjelmoinnissa, grafiikoiden ja äänien uusiokäyttö on sallittua.
- Tavoitteena ennen kaikkea ongelmanratkaisussa kehittyminen, itsensä haastaminen ja hauskanpito