Englannissa pyörii (ainakin muutaman videopätkän perusteella) mielenkiintoinen TV-visailu, Golden Balls. Käsittääkseni siinä pelin alussa on useampia pelaajia ja pelissä on useita kierroksia ja kierroksen lopussa äänestetään yksi pelaaja pois. Äänestys tapahtuu sosiaalisin perustein: epäluotettavimman oloiset tyypit äänestetään pois.
Lopussa kaksi ”parasta” tai ”luotettavinta” pelaajaa pelaa vastakkain.
Youtubesta löytyy myös muita todella mielenkiintoisia finaalipelejä tästä sarjasta, esimerkiksi joku vie koko reilun punnan setin (valehtelemalla), toinen vie ison potin (valehtelemalla)…
Peliohjelmoinnin opettajan aarreaitta: Invent Your Own Computer Games with Python. Sivusto sisältää kaksi kirjaa, joissa kummassakin on satoja sivuja peliohjelmointikoodia. Lisäksi koodia selitetään amerikkalaiseen tyyliin hyvin perusteellisesti.
Noihin lähdekoodeihin muokkausten tekeminen on helppoa ja pelin tekeminen oman näköiseksi onnistuu helposti.
Kun vielä kun vielä käyttää Raspberry Pi Educational Manualin opasta Raspberry Pi:n käyttöön (opas sisältää kaiken oleellisen Raspberry Pi:stä, sen asentamisesta omien laitteiden tekoon asti), niin opettajan arki helpottuu 🙂
Seiskaluokkalaisten kanssa katsottiin lukujonoja. Siitä on lyhyt matka Fibonaccin lukujonoon ja sen sovelluksiin. Vilkaisiin ViHartin hienoa videota (ensimmäistä kolmesta sarjaan kuuluvasta videosta) ja Pasi Lammin materiaalia.
Mitä saadaan, kun yhdistetään peliohjelmointikurssi ja hieman aikaa? Oppilaat joutuvat tietenkin töihin. Mietin pari päivää sitten, että miten tehdään yksinkertainen labyrinttipeli. Tänään sitten aloin tutkimaan ja toteuttamaan sitä. Toiveena oli, että labyrintin luominen olisi yksinkertaista ja sen muokkaaminen helppoa. Yksinkertaisuuden vuoksi pohjan muodostaa ruudukko (tässä tapauksessa 13×8), jonka kokoa voi helposti muuttaa. Ruutukoko on 50×50 pikseliä. Pelin grafiikka on tarkoitettu opetustarkoitukseen. Pelin taustakuvana on myös opettavainen.
Lähdekoodi
# -*- coding: utf-8 -*-
import pygame
naytto = pygame.display.set_mode((650, 400))
pygame.display.set_caption("Laatikkopeli")
pygame.font.init()
fontti = pygame.font.Font(None,18)
sankari = pygame.image.load("sankari.png")
pois = pygame.image.load("exit.png")
laatikko = pygame.image.load("laatikko.png")
tausta = pygame.image.load("tausta.png")
def main():
elossa = True
sankarin_paikka = [1,1]
kartta = ["xxxxxxxxxxxxx",
"x x x",
"x xxxxxxx x",
"x x x",
"x x xxx xxx",
"x x x xxe",
"x x ",
"xxxxxxxxxxxxx"]
while elossa:
tapahtuma = pygame.event.poll()
if tapahtuma.type == pygame.QUIT:
elossa = False
if tapahtuma.type == pygame.KEYDOWN:
if tapahtuma.key == pygame.K_RIGHT:
if kartta[sankarin_paikka[1]][sankarin_paikka[0]+1] != "x":
sankarin_paikka[0] += 1
if tapahtuma.key == pygame.K_LEFT:
if kartta[sankarin_paikka[1]][sankarin_paikka[0]-1] != "x":
sankarin_paikka[0] -= 1
if tapahtuma.key == pygame.K_DOWN:
if kartta[sankarin_paikka[1]+1][sankarin_paikka[0]] != "x":
sankarin_paikka[1] += 1
if tapahtuma.key == pygame.K_UP:
if kartta[sankarin_paikka[1]-1][sankarin_paikka[0]] != "x":
sankarin_paikka[1] -= 1
naytto.blit(tausta, (0, 0))
korkeus = len(kartta)
leveys = len(kartta[0])
for y in range(korkeus):
for x in range(leveys):
if kartta[y][x] == "x":
naytto.blit(laatikko, (x*50, y*50))
if kartta[y][x] == "e":
naytto.blit(pois, (x*50, y*50))
naytto.blit(sankari, (sankarin_paikka[0]*50, sankarin_paikka[1]*50))
if kartta[sankarin_paikka[1]][sankarin_paikka[0]] == "e":
naytto.blit( fontti.render("JIPPII", True, (255,0,0)), (sankarin_paikka[0]*50, sankarin_paikka[1]*50-25))
pygame.display.flip()
main()
pygame.quit()
Tämä luo pelin, joka näyttää tältä
Lähdekoodissa on heikkouksia, siinä käytetään main()-metodia, mutta itse toiminnot on kirjoitettu perinteisesti lohkomuodossa. Esimerkki on siis huono, anteeksi.
Ladataan kommentteja...
By continuing to use the site, you agree to the use of cookies. more information
The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.