Diskuze: čtverečky
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 8 zpráv z 8.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zní to, jakoby měl špatně vyřešené hledání nejbližšího
červeného čtverce, možná sem zkus hodit jak jsi tohle konkrétně řešil.
Hádám, že se ti všechny
pohybují k prvnímu nebo k poslednímu vytvořenému červenému čtverci, což
asi bude to, jak ti to teď hádám funguje.
ted nemám po ruce kod, ale je to tak jak říkáš, přes foreach se vytvoří kolekce 100 červených a pravděpodobně k prvnímu z nich směřují všechny modré.. jinak ta detekce funguje, pokud vynechám všechny možný rotace a směrování, přes něco ala (zkráceně a osekaně) :
foreach (item in kolekcem) foreach (item_ in kolekcec)
if (distance(item, item_) < 10
teď kod nějaký rotace a směru
item.position += nejaky_direction + time;
Z tohodle těžko říct, asi by to chtělo přesnej kód. Jako podstata je dobrá, chybu
můžeš mít třeba v tom nejaky_direction, jestli to není metoda s parametry
obou itemů, žeby ti počítal směr jen k jedné kostce vždy. Takže bych se
zaměřil asi na její vnitřek.
foreach (item in kolekcem) foreach (item_ in kolekcec)
if (distance(item, item_) < 10
teď kod nějaký rotace a směru
item.position += nejaky_direction + time;
item_.position += nejaky_direction + time;
V tomhle to nebude, on chce, aby se pohybovaly jen ty jedny - modré -
item.
Podle mě to musí být někde v tom výpočtu "nejaky_direction".
z toho kódu vyplývá, že všechny budou putovat k poslednímu čtverečku z kolekce, který má vzdálenost menší jak 10, takže se klidně může stát, že všechny budou putovat ke stejnému. spíš bych volil tuhle variantu
tempCerveny = kolekcec[0]; //čistě jen proto aby nebyl null;
foreach (modry in kolekcem) {
foreach (cerveny in kolekcec)
// hledáme jestli je blíž než zatím ten nejbližší
if (distance(modry, cerveny) < distance(modry, tempCerveny))
tempCerveny = cerveny;
// ted nejaky kod kdy posles modry ke ctverci na kterej odkazuje tempCerveny
}
Zobrazeno 8 zpráv z 8.