Hlavní stránka › Fóra › Forum pro soutěžící SOČ › 42. celostátní přehlídka ONLINE › 42. CP SOČ online – obor 10 elektrotechnika, elektronika a telekomunikace › Odpověď na téma: 42. CP SOČ online – obor 10 elektrotechnika, elektronika a telekomunikace
Dobré dopoledne, děkuji za otázky, zde jsou mé odpovědi:
1. Jak je řešena komunikace v případě ztráty, nebo chybného přijetí paketu? Umí si stanice vyžádat opakované vyslání paketu?
V dokumentaci, kterou jsem poskytoval, jsem uváděl, že mým původním záměrem bylo odesílat data tak, že nejdříve se odešlou data, jako odpověď přijdou negovaná data nazpět, tím se měla ověřit platnost dat, následně by byl vyslán potvrzovací znak, že data jsou validní, popř. pokud by nebyla, a nebo nepřišla včasná odpověď, byla by data vyslána znovu. Tato idea bohužel selhala na kvalitě rádiových modulů, které se jednak velice snadno zaruší, a jednak nebyly schopny z mě neznámého důvodu tato data odeslat/zpracovat, podezřívám AGC (automatic gain control) na přijímacím modulu z této chyby, Takže v nynějším řešení není zaručeno doručení zprávy, ovšem vysílaná zpráva se několikrát opakuje, aby nedošlo k chybnému přenosu. Není to sice ideální řešení, ale ztrátovost se pohybuje cca kolem 3%, s čímž se u této aplikace „dá žít“.
2. Bylo by možné do systému zavést složitější lodě než jen čtverec 1×1?
Určitě by to možné bylo, lodě 1×1 jsem zvolil z toho důvodu, že i na této verzi hry lze demonstrovat můj nápad, původně jsem uvažoval o tom, že lodě budou různých velikostí, ovšem každí loď by musela mít přiřazený minimálně jeden byte dalších informací tj. souřadnice prvního a posledního čtverečku lodi, atd., což by nebyl problém, větší problém by byl, jak by uživatel lodí mohl otáčet a zároveň to bylo intuitivní,na to jsem na začátku vývoje, musím se přiznat, zapomněl a proto jsem se rozhodl pouze pro lodě 1×1.
3. Proč adresujete matici 8×16, když herní pole má reálně velikost pouze 8×8? K čemu byste případně mohl využít ušetřený bit?
Hrací pole jednoho hráče má 8×8 políček, ovšem vykreslovat se musí jak pole hráče, tak pole soupeře, která jsou nad sebou tím pádem máme 8 led diod vodorovně a 16 svisle, toto vykreslování a nastavení hranice, kterou je občas nutno překročit kurzorem, mezi polem hráče a protihráče se mi zdá výrazně jednodušší, pokud adresujeme celou obrazovku v jednom poli, místo ve dvou oddělených. Tím pádem bych bohužel žádnou paměť neušetřil, možná bych při jiném způsobu adresace dokonce potřeboval paměti víc.
4. Lze nějakým způsobem volit protihráče, při použití více než dvou „krabiček“?
Určitě by to možné bylo,ovšem v nynějším programu to zahrnuto není, jediné změny, které bych musel udělat, je přiřadit každé desce adresu, data pro tyto desky by následně byla vybavena hlavičkou, která by obsahovala adresu příjemce.Také by např. po zapnutí desky bylo nutné odesílat sekvenci bitů, která by značila, že tento hráč chce hrát a následnou odpověď, což by nebylo složité. Rozhodl jsem se ovšem, vzhledem k problémům na které narážím v 1. otázce, že případná druhá verze by měla jiné bezdrátové řešení, ať už přenos pomocí IR záření, které mi bylo doporučeno v krajském kole, či jiný výrazně kvalitnější rádiový modul, na kterém by již bylo možné realizovat mé opatření proti ztrátě dat z otázky 1 a také případnou adresaci.