Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rozdělit projekt na moduly #21

Closed
4 tasks done
encukou opened this issue Oct 30, 2018 · 16 comments
Closed
4 tasks done

Rozdělit projekt na moduly #21

encukou opened this issue Oct 30, 2018 · 16 comments
Assignees

Comments

@encukou
Copy link
Member

encukou commented Oct 30, 2018

Přidat moduly:

  • Backend
  • Frontend
  • Testy
  • Hra

Až to bude hotové, smazat skript kde je to teď všechno.

@befeleme
Copy link
Contributor

Čaute, návrh níže. Otázníky jsou tam, kde si nejsem vůbec jistá tím řešením a uvítám komentář. Uvítám komentář i tam, kde otázníky nejsou. Názvy funkcí jsou pouze pracovní.

  • moduly volají backend, ale backend nevolá žádný herní modul (vyhýbame se cyklickým importům, což je OK)
  • bavili jsme se, že game zavola logiku, vykreslení a vykreslí vše - mne zatím připadalo, že hře stačí zavolat frontend a udělá, co má, takže nejspíš jsem na něco pozapomněla
  • k modulu backend patří zpracování rotace a vrstev, frontend si musí poradit s jejich vykreslením.
  • umím si trochu představit testování backendu, vůbec neumím frontendu

Kdo si vezmete na startost backend, frontend a (testy, hru)? Myslím si, že se může na tom pracovat do jisté míry souběžně (frontend může zatím načítat zkušební set dat), hra a testy až na konci.

BACKEND: backend.py (je to validní název souboru?)

import json
read_json_map(map_name)
    returns: data
    
create_coordinates(map_width, map_height) # pocet policek
    returns: list of tuples (x, y)
    
find_tiles_path(data, tj. tilesets)  # sahnout do jsonu
    returns: dictionary tile_id -> image path
    
create_board(list of tuples (x, y), list of tile effects) # tile effects = nas seznam z jsonu
    returns dictionary tuple -> tile effect 

FRONTEND frontend.py

import pyglet, backend

funkce:
draw_board(board_dictionary, tiles_path, window size) 
    returns: list of loaded sprites 
    
pygleti on_draw??? patri to sem???

GAME game.py

import frontend, pyglet

pyglet.app.run() ???

TESTS tests.py
import pytest, backend

@anezkamll
Copy link
Contributor

Já si klidně zkusím vzít backend, můžu na tom pracovat zítra, v pátek a trochu v sobotu.

Chápu to správně, že jako výchozí nyní bereme kód od @befeleme, který se bude postupně vylepšovat?

@befeleme
Copy link
Contributor

befeleme commented Oct 31, 2018

Chápu to správně, že jako výchozí nyní bereme kód od @befeleme, který se bude postupně vylepšovat?

Jo, ten by se měl postupně přepsat, a původní soubor se na konci smaže.

Backend - Anežka - udán :)

@encukou
Copy link
Member Author

encukou commented Oct 31, 2018

bavili jsme se, že game zavola logiku, vykreslení a vykreslí vše - mne zatím připadalo, že hře stačí zavolat frontend a udělá, co má, takže nejspíš jsem na něco pozapomněla

Frontend by neměl umět načítat data (mapy ze souboru). Měl by je dostat už načtené. Hra tedy musí na to načtení zavolat backend.

umím si trochu představit testování backendu, vůbec neumím frontendu

Na frontend a hru (zatím) testy nepište.

GAME game.py

import backend, frontend, pyglet

board = backend.read_json_map(...)

… pygletí on_draw (které jen volá frontend)

pyglet.app.run()

Na testy je zvláštní issue; nechte je na sobotu/neděli.

@befeleme
Copy link
Contributor

befeleme commented Nov 1, 2018

Ok, holky @MyshiczkaH, @hranka - ktera si vezmete na starost frontend?

@MyshiczkaH
Copy link
Contributor

@befeleme zkusím, mám doma poradce tak mě kdyžtak nakopne :-)

@anezkamll
Copy link
Contributor

Dotaz - co preferujete? Všechny pracovní verze mám dávat průběžně sem, nebo sem mám hodit až nějakou, co bude vypadat co k čemu?
Příklad: Teď si zkopíruju Karolinin kód, odmažu z toho věci, co backend neřeší, udělám si do toho nějaké pracovní komentáře a pak budu muset práci přerušit a pokračovat třeba o den později. Chcete, abych sem hodila i tohle, nebo až nějakou smysluplnou rozpracovanou verzi?

@encukou
Copy link
Member Author

encukou commented Nov 1, 2018

K rozdělaným pull requestům se dává zkratka "WIP" (Work in Progress). Někdy jako štítek, někdy se to dá do názvu (příklad). Ostatní pak můžou komentovat směr, kam se ubíráš, ale ví že to není hotové.

@befeleme
Copy link
Contributor

befeleme commented Nov 4, 2018

@encukou, v pull requestu je backend v podobe, ktera prepisuje a trochu vylepsuje stav puvodniho souboru. Funkce jsou nadefinovane, ale se nevolaji. Je to tak ok? Muzeme tento soubor jiz zaclenit?

@encukou
Copy link
Member Author

encukou commented Nov 4, 2018

Může! Zvlášť když je v něm napsáno že není hotový.
Bez začlenění by bylo těžké ty funkce volat odjinud :)

@befeleme
Copy link
Contributor

befeleme commented Nov 5, 2018

@MyshiczkaH, diky za poslani frontendu + hry.

@befeleme
Copy link
Contributor

befeleme commented Nov 5, 2018

Tests.py pribudou spolu s prvnimi testy od Zuzky.

@zstankova
Copy link
Contributor

Přidala jsem je v PR #27

@befeleme
Copy link
Contributor

befeleme commented Nov 6, 2018

Vše začleněno, děkuji.

@befeleme befeleme closed this as completed Nov 6, 2018
@encukou
Copy link
Member Author

encukou commented Nov 6, 2018

Pořád tu vidím původní skript.

@befeleme
Copy link
Contributor

befeleme commented Nov 7, 2018

Tentokrat uz skutecne neni.

@befeleme befeleme closed this as completed Nov 7, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants