Autor Zpráva
Darker
Profil
Potřeboval bych procházet 2D pole (které je ekvivalentem tabulky) po úhlopříčkách, a nenapadá mě jediný způsob, jak to udělat... :(
Vás ano, že jo? :)
Dík
Chamurappi
Profil
Reaguji na Darkera:
Ano.


Reaguji na Taygera:
Úhlopříčka je jednorozměrný útvar, k čemu dva cykly?
Aha, on dělá piškvorky a potřebuje projít i rovnoběžky.
Tayger
Profil *
Darker:
Dvojtý vnořený cyklus, jednou doprava a pak dolů ;-)
Darker
Profil
Jednou doprava a dolů?
Dvojitý cyklus mám už na vertikální a horizontální prolejzání...
Nemohl bys být konrétní prosím? Já už nemůžu, bojuju s tim už třetí den (teď myslim celej program, ne tu tabulku...)
Tayger
Profil *
Darker:
Jsem spíše takový javascriptový věčný začátečník, ale myslel jsem to takto

cyklus1
{
doprava
cyklus2
{
dolů
}
}

samozřejmě za pomoci dom posouvání ukazatele na úhlopříčnou pozici. Zkus si to nějak dát do kupy, protože já bych to dělal ty tvé tři dny. Jen navrhuji možný postup. :-) Ale asi jsem měl spíše držet hubu. :-D
Radek9
Profil
Darker:
Pokud se počet sloupců rovná počtu řádku, je to jednoduché:
var tabulka = [[…], […], …], uhlopricka = [];
for(x=0;x<tabulka.length;x++){
  uhlopricka[x] = tabulka[x][x];
}
Pokud se to nerovná, tak to bude složitější.
joe
Profil
Podle mě stačí jeden cyklus. I na rovnoběžky.
Chamurappi
Profil
Reaguji na joe:
Šlo by to i jedním cyklem, ale nebylo by to moc hezké, ne?


Reaguji na Darkera:
Jestli děláš piškvorky, stačí ti jeden průchod všemi políčky a jedno pomocné pole o velikosti [šířka, 4] k nalezení libovolně orientovaných pětic.
joe
Profil
Chamurappi:
To asi moc ne :-)
Darker
Profil
Jak to myslíš? Já to nerad přiznávám ale chybí mi "polová" představivost, takže když tohle řekneš, tak nevím jak to má vypadat.
Radek9:
Ale tím nedostanu jen ty nejdelší úhlopříčku, ne?
Radek9
Profil
Darker:
Co já vím, tak čteverec/obdelník má jen dvě úhlopříčky. :o) Z tvého prvního příspěvku jsem nepochopil, že chceš čáry s náklonem 45 stupňů.
Darker
Profil
No, ale všechny, nebo všechny menší než 4/5polí (podle typu hry, neboť, jak Chamurappi správně odhadl, jedná se o piškvorky)
_es
Profil
Darker:
Nejde ani tak o JS, ako skôr o trochu matematické uvažovanie:
Je šachovnica políčok s celočíselnými súradnicami x a y.
Celkovo môžeš ísť od políčka (x,y) ôsmimi smermi, na susedné políčko:
(x+1,y)
(x+1,y+1)
(x,y+1)
(x-1,y+1)
(x-1,y)
(x-1,y-1)
(x,y-1)
(x+1,y-1)
a pre nové políčko zrátaš pre každý z týchto ôsmich smerov v cykle počet políčok za sebou a protismerné smery zohľadníš.
Václav_
Profil *
Tak můžeš to udělat cyklem:

<div id="ctverecky" style="width:600px;">
<script type="text/javascript">
var pocetx=30;
var pocety=30;

for(y=1;y>=pocety;y--){
  for(x=1;x<=pocetx;x++){
    document.getElementById("ctverecky").innerHTML="<div onClick='spustAjax("+x+","+y+")' style='width:20px;height:20px;float:left;'></div>";
  }
}
</script>
</div>


nějak takto můžeš začít, ajaxem to můžeš dodělat a bude to šlapat, tím cyklem uděláš to pole a v té funkci spustAjax() při odesílání si do url strč ?x=...&y=.... a pak si to ulož, po nahrání to akorát obnov, obnov. Určitě to takhle nebude zdaleka vypadat ale snažím se tě jen navést :)
Václav_
Profil *
No to úhlopříčně jsem trošku vypustil :) v tom případě sorry za mů bezpředmětný komentář. Tak se pokusím pomoci :), můj první pokus by byl udělat funkci která se spouští při průchodu již zaškrtnutým čtverečkem, v té funkci by byly 2 podmínky, jedna by kontrolovala směr vpravo a jedna vlevo, pokud by už nebyl další tak break.... 100% by to fungovalo ;-) Ale někdo by mohl mít námitky.
Darker
Profil
Václav:
Generovat tabulku umím. Na to mám skript v php.
Kontrola vodorovných a svislých linek není problém, uděláš si 2D pole co je jak ta tabulka a jedeš. Máš číslo, když narazíš na křížek přičteš jedna, když ne, vynuluješ ho...
Ale tu úhlopříčku jsem pochopil až díky Esovi, takže díky jemu i ostatním.
Dneska už to tam dodělávat nebudu, páč odjíždim, ale nemohl by se prosím někdo podívat, proč to nechodí v IE a opeře?

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0