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

Validace mapy #83

Open
encukou opened this Issue Nov 20, 2018 · 12 comments

Comments

Projects
None yet
4 participants
@encukou
Member

encukou commented Nov 20, 2018

Řešte až po #82.

@encukou encukou added the blocked label Nov 20, 2018

@vahalova vahalova self-assigned this Nov 22, 2018

@befeleme befeleme removed the blocked label Nov 29, 2018

@vahalova

This comment has been minimized.

Member

vahalova commented Nov 29, 2018

Jsem si říkala, jak to pojmout... je ok udělat na to zvlášť program map_validator.py a pak ho pouštět nějak $ python map_validator.py map4.json prostě jen když si někdo udělá novou mapu.
Výstup:
OK!
nebo Nooo, your map is wrong! error: [3, 11],[3, 12]
nebo na to napsat test nebo podmínku přímo do programu, když vytváříme ty seznamy políček a nekomplikovat si život? Já nevím.

@encukou

This comment has been minimized.

Member

encukou commented Nov 29, 2018

Jaké vidíš výhoday a nevýhody těchto řešení?
Které bude příjemnější na použití?
Jak se budou testovat?
Napadají tě i jiné varianty?

@vahalova

This comment has been minimized.

Member

vahalova commented Nov 29, 2018

Program speciál: zavařím si mozek, ale budu šťastná
Test: pustí se při každém přidání mapy na GH, ale i u každého PR :-/
Přímo do programu: Při tom by se dalo vyřešit i to případné přeházení vrstev, ale to je asi zbytečný.

Nemyslím, že by se toto dělo tak často a byl to tak zásadní problem. Když na to bude extra program, tak ho pustíme 10x, když to bude v testech, tak se to pustí při každém PR a bude to znovu a znovu kontrolovat, to by u 10 map mohlo trvat(?) (Dá se nastavit Travis, aby pouštěl test, jen když přidáváš určitý typ souboru?). Když na to bude extra program, tak se na to pak třeba nesmí zapomenout.

Ten extra program by mohl po kontrole přidat do jsonu "razítko" a do programu pak dopsat, když nenajdeš při načítání na mapě razítko tak ji nepouštěj => není zkontrolovaná, ale to asi úplně neřeší, když se ta mapa pak změní.
Jako asi fakt nevím, jaké je na to ideální řešení.

@encukou

This comment has been minimized.

Member

encukou commented Nov 29, 2018

když to bude v testech, tak se to pustí při každém PR a bude to znovu a znovu kontrolovat, to by u 10 map mohlo trvat(?)

Tak kontrola by neměla být tak náročná. Jestli to u 10 map bude trvat víc než vteřinu, je něco špatně.

@encukou

This comment has been minimized.

Member

encukou commented Nov 29, 2018

Jako asi fakt nevím, jaké je na to ideální řešení.

Nehledej teď ideální řešení, ale dostatečné řešení. Nebo líp, nejlepší co tě napadne :)
Řekni pak pro co se rozhodneš.

@vahalova

This comment has been minimized.

Member

vahalova commented Nov 29, 2018

Tak já tam dodělám test "Projdi všechny mapy ve složce a zkontroluj"

@encukou

This comment has been minimized.

Member

encukou commented Nov 29, 2018

OK! To zní dobře.
Napiš ale i test "tahle špatná mapa neprojde validací", aby se ověřilo že ta validace fakt funguje.

@vahalova

This comment has been minimized.

Member

vahalova commented Dec 10, 2018

Ne všechny mapy jsou teď dobře pro validator. Až budeme zakládat složku s opravdu herníma mapama, tak tam dodělám automatickou kontrolu všech map ve složce.
Jinak zatím nefunguje kontrola:

  • směr laseru navazuje na další políčka

  • laser správně začíná a končí

  • není nad sebou 2x stejný laser, který se pohledově kryje

  • jestli je na mapě 8 startů

@vahalova

This comment has been minimized.

Member

vahalova commented Dec 10, 2018

Správné pořadí políček je:

  • zem
  • díra, start, oprava, pás, otočka -> jen jedno z nich
  • vlajka
  • pusher, laser, zeď -> jedno kolik z nich
@anezkamll

This comment has been minimized.

Contributor

anezkamll commented Dec 10, 2018

Ten poslední bod pořadí políček je pro mě matoucí s poznámkou jedno, kolik z nich. Chápu, že na jednom políčku může být jak zeď, tak pusher, tak laser, ale myslím, že jsi říkala, že víc laserů přes sebe být nemůže, víc pusherů taky nedává smysl, naopak více zdí se určitě využívat bude. Jak to tedy funguje?

@encukou

This comment has been minimized.

Member

encukou commented Dec 10, 2018

nekontroluje jestli je na mapě 8 startů

Teoreticky můžou být i mapy pro míň robotů. Starty pak fungují podobně jako vlajky:

  • Vlajky/starty musí být číslované od jedné do N, pro každé číslo musí být na mapě jen jedna vlajka/start

A ještě chybí:

  • Není nad sebou 2× stejný pusher
  • Není nad sebou 2× stejná zeď
@vahalova

This comment has been minimized.

Member

vahalova commented Dec 10, 2018

Jo zatím to bere, že třeba nemáš schovaný laser pod pásem, nebo 2 vlajky na sobě a takový ty věci, co nejsou vidět.
Tu vrstvu pusher/laser/zeď zkusím pořešit líp.
Ještě mě napadlo:

  • vlajka nemůže být na díře a startu (na pásu a otočce, by to mohlo být zajímavý)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment