Strona główna

poniedziałek, 22 sierpnia 2011

Robimy "OdionoidO" - devlog #1

Tak, jak się odgrażałem tutaj, zabieram się za "OdionoidO".
Technologia: Python + Pyglet.

Podjąłem kilka decyzji odnośnie plansz. Będą one miały powierzchnię "budowlaną" w rozmiarze 13x13 cegiełek (do jednego z tych wymiarów dojdzie jeszcze trochę marginesu, ale będzie to przestrzeń pusta, w której nie będą już znajdować się żadne przeszkody).

Każda z plansz będzie zapisana w oddzielnym pliku csv, znajdującym się w katalogu "plansze". Nazwą pliku będzie dwucyfrowy numer planszy. W środku każdego pliku będzie trzynaście wierszy, z których każdy będzie reprezentował jedną linię cegiełek w postaci: 0,0,0,1,1,1,0,0,0,1,1,1,2, gdzie zero oznacza pustą przestrzeń a większa liczba cegłę i jej rodzaj (o ile będą rodzaje).

Takie rozwiązanie pozwala bardzo wygodnie tworzyć i edytować plansze za pomocą szablonu stworzonego w arkuszu kalkulacyjnym, z użyciem formatowania warunkowego, uzależniając kolor tła komórki od wpisanej cyfry.

Napisałem funkcję, która wczytuje plik podany w argumencie a zwraca - używając pythonowej nomenklatury - listę list reprezentujących kolejne wiersze:

import csv
def wczytajjednaplansze(adrespliku):
    plikcsv = csv.reader(open(adrespliku), delimiter=",")
    lista = [line for line in plikcsv]
    return lista


Nie wiem, jak wam, ale mnie się podoba. :)

EDIT: Zmodyfikowałem nieco powyższą funkcję tak, aby parametrem był po prostu numer żądanej planszy. Oto efekt:

import csv
def wczytajplansze(numerplanszy):
    plikcsv = csv.reader(open("./plansze/" + "%02d" % numerplanszy + ".csv"), delimiter=",")
    lista = [line for line in plikcsv]
    return lista