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

2 komentarze:

  1. 13 cegiełek w poziomie to za mało. Dojdziesz do etapu, w którym z klocków na planszy będziesz chciał ułożyć np. domek. W końcu jak grywalne są plansze z samymi poziomymi pasami tych samych klocków :). Do tego trzeba się zastanowić czy ilość cegiełek ma być parzysta czy nie.

    OdpowiedzUsuń
  2. Początkowo tak właśnie myślałem, żeby dokonać pogłębionej analizy tematu - zaprojektować kilka plansz i zobaczyć jak to wyjdzie. Na szczęście zanim zacząłem tracić na to czas znalazłem lepsze rozwiązanie: wyszukałem w Googlach grafiki różnych arkanoidów i policzyłem, jak to tam wygląda. Okazało się, że 13 to sprawdzony, grywalny wariant.

    Jakbym miał większe parcie na oryginalność i więcej czasu mógł poświęcić temu projektowi, to pewnie poszedłbym drogą, którą proponujesz. A tak to po prostu pozostanę przy sprawdzonym rozwiązaniu.

    OdpowiedzUsuń