Autor Zpráva
kukweb
Profil
Mapa


ahoj,

chi na strance udelat takovou mapu a vypocet jak rychle se dostanu z jednoho mista na druhe.

mapa je klasicky graf, takze jsou hodnoty -400/0 0/-400 400/0 a 0/400

mam 3 jednotky
R - (rychlost: 16 polí/hod.)
G - (rychlost: 24 polí/hod.)
T - (rychlost: 12 polí/hod.)

takze zadam souradnice STARTU treba 50/50 a cile -74/-2 a za jak dlouho tam dojede jednotka treba R


vubec netusim jak to resit. Poradi nekdo pls. [8-)]
tiso
Profil
Pythagorova veta...
suky
Profil
kukweb
Ted ale zalezi jak myslis tech 16 poli/hod, jestli jako hrano jenoho pole nebo jakoli dlouha trasa po jednom poli...
kukweb
Profil
jak daleo to je po jednom poli
suky
Profil
kukweb
tak tu tvoji odpoved sem nepochopil...
Joker
Profil
tiso
Pythagorova veta...
Jen upozorním: Pythagorovou větou vyjde vzdálenost mezi těmi body ve čtvercích. V závislosti na systému hry ale nemusí skutečný počet tahů potřebný na cestu mezi dvěma body odpovídat jejich vzdálenosti.

Například pokud se jednotka může pohybovat jen do čtyř směrů, pohyb "šikmo" se musí rozložit na dva tahy.
tiso
Profil
Joker - predpokladal som že to funguje normálne - pohyb po najkratšej trase.
MacDionisio
Profil *
Tady je skriptík na zisk "délky" cesty :) .. ale nejsem si jist tou "-1" .. nevím jestli se počítá přesun přes pole mezi body a nebo i vstup na cílové pole ..

Kdyžtak smažeš -1 :)) (vyzkoušel to ve hře ;) )

function Presun($BodAX, $BodAY, $BodBX, $BodBY) {

if ($BodAX > $BodBX)
{ $Vzdalenost_1 = $BodAX-$BodBX; }
else { $Vzdalenost_1 = $BodBX-$BodAX; }

if ($BodAY > $BodBY)
{ $Vzdalenost_2 = $BodAY-$BodBY; }
else { $Vzdalenost_2 = $BodBY-$BodAY; }

$Celkova_Vzdalenost = $Vzdalenost_1+$Vzdalenost_2-1;
return $Celkova_Vzdalenost;
}

// Máme 2 body .. A [2,1] B [7,4]
// Pro funkci Presun(A_X,A_Y,B_X,B_Y)

echo " Celkem musí překonat ".Presun(2,1,7,4)." polí.";
MacDionisio
Profil *
Fuj .. kdyžtak smazat .. dám novej :D


Tady je skriptík na zisk "délky" cesty :) .. ale nejsem si jist tou "-1" .. nevím jestli se počítá přesun přes pole mezi body a nebo i vstup na cílové pole ..

Kdyžtak smažeš -1 :)) (vyzkoušel to ve hře ;) )

function Presun($BodAX, $BodAY, $BodBX, $BodBY) {

  if ($BodAX > $BodBX) 
    { $Vzdalenost_1 = $BodAX-$BodBX; } 
    else { $Vzdalenost_1 = $BodBX-$BodAX; }
  
  if ($BodAY > $BodBY) 
    { $Vzdalenost_2 = $BodAY-$BodBY; } 
    else { $Vzdalenost_2 = $BodBY-$BodAY; }

  $Celkova_Vzdalenost = $Vzdalenost_1+$Vzdalenost_2-1;  
  return $Celkova_Vzdalenost;
}

// Máme 2 body .. A [2,2] B [7,4]
// Pro funkci Presun(A_X,A_Y,B_X,B_Y)

echo " Celkem musí překonat ".Presun(2,2,7,4)." polí.";
kukweb
Profil
jak to udelam, abych mohl mnenit hodnoty prez IMPUT ?
MacDionisio
Profil *
Tím jsem myslel vzdálenost .. najdi si nějaké souřadnice kam ti jednotka o rychlosti (16polí za hodinu) jde hodinu a pak ty souřadnice zadej do funkce .. :)

čas si kdyžtak už spočítej :)
kukweb
Profil
takze toto bych mel, pokud jsem zapomel na slusne vychovani

MOC DEKUJI ZA POMOC !!!!



http://kukweb.info/akce.php

tady to mam.

Ted resim problem, jak udelat z toho casu co mam.

Rekneme je 12:00
pujdu 60minut
Aby to zpocitalo, prijdes ve 13:00

pomohl by mne nekdo jak na to .
MacDionisio
Profil *
Heh .. tak to by si snad mohl zvládnout ne ? :D

// Proměnná z aktuálním časem 
$Aktualni_cas = Time();

// Cesta
$Doba_min_cesty = 5; // (5 minut)
$Doba_sec_cesty = $Doba_min_cesty*60; // (5 minut v sekundách)

$Prichod = $Aktualni_cas+$Doba_sec_cesty;
echo Date("H:i:s", $Prichod);


Snad pojede, nezkoušel jsem :))
Joker
Profil
MacDionisio
$Celkova_Vzdalenost = $Vzdalenost_1+$Vzdalenost_2-1;
To ovšem za prvé není vzdálenost těch dvou bodů a za druhé délka cesty mezi nimi to je jen v případě, kdy se jednotka může pohybovat jen do čtyř směrů (tj. nemůže chodit "šikmo")
MacDionisio
Profil *
Joker: ale je to vzdálenost mezi bodem A a bodem B za předpokladu, že se používá posun do čtyř směrů, což u té hry snad i je ;)
Evidentně to tak bude, když s tím souhlasil po "přezkoušení" ;o)
Joker
Profil
MacDionisio
Vzdálenost mezi nimi to není určitě (pokud nemají alespoň jednu souřadnici stejnou) a délka cesty jen v případě těch čtyř směrů.
MacDionisio
Profil *
Fajn .. jsme tedy ve fáze slovíčkaření ? :)

Ano vzdáleností by byla přímka mezi body - využití pravidla pythagorovy věty.

A délka cesty je dle informací "zadavatele" správně, tím bych tuhle rozepři kvůli výrazu ukončil ;o)
Polyhedron
Profil *
Ahoj,

dostal jsem se sem víceméně náhodou, "zadavatel" svůj dotaz položil i zde. Zde neuvedl, o jakou hru se jedná, chtěl bych uvést způsob počítání vzdálenosti na pravou míru. Vzdálenosti se skutečně počítají pomocí Pythagorovy věty.

Nepamatuji si přesně, jak se jmenuje funkce odmocnina v PHP ani zda PHP podporuje operator ^, nicméně pokud ano, mohlo by stačit tohle :)
$vzdalenost = sqrt(($x1-$x2)^2 + ($y1-y2)^2)

Polyhedron
kukweb
Profil
function odmocnina($cislo, $odmocnina=2){

return pow($cislo, 1/$odmocnina);

}

nebo

$vysledek=pow($x,1/3); 3ti odmocnina


tak nejak by to melo byt ;)

pow je zkrácené power - anglicky mocnina


http://programujte.com/index.php?akce=diskuze&kam=vlakno&tema=6598-dru ha-odmocnina-
Aleš Janda
Profil
Polyhedron
PHP operátor ^ podporuje, ale nejedná se o mocninu, ale XOR.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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