Avatar billede flodhesten Nybegynder
24. marts 2008 - 00:32 Der er 5 kommentarer

Random koordinater

Hej eksperter.

Jeg er i gang med at lave et spil hvor jeg forestiller mig et koordinatsystem som kort. En spiller skal have en by et sted i koordinatsystemet. Jeg forestiller mig en x-akse fra 0 til 100 og en y-akse fra 0 til 100. Jeg overvejede også et sfærisk koordinatsystem, men det vil nok blive for indviklet, selvom det er mest realistisk at den verden som korte skal symbolisere er rund.

Men det er meningen at man skal en tilfældig beliggenhed i form at en x og y koordinat. Men disse koordinater skal naturligvis være unikke, så disse må ikke kunne genereres igen, hvis en ny spiller opretter sig.

Altså en spiller opretter sig og får koordinatsættene 2;6
Hvis en anden spiller så opretter sig, er det jo sandsynligt at denne person får samme koordinater, men det skal ikke kunne lade sig gøre.

Er der nogle der har tid/lyst til at hjælpe mig?
Avatar billede olebole Juniormester
24. marts 2008 - 01:03 #1
<ole>

Så må du jo smide spillet ud efter 10.000 spillede spil  :)

Du kunne gemme koordinaterne i en database og så teste mod den

/mvh
</bole>
Avatar billede flodhesten Nybegynder
24. marts 2008 - 01:27 #2
Kortet kan jo altid udvides og tror nu også 10000 oprettede brugere er et højt mål ;)

Jeg laver et felt der hedder x og et der hedder y. Tror du så du kan hjælpe mig lidt mere teknisk?
Avatar billede olebole Juniormester
24. marts 2008 - 02:01 #3
Hvis du har to felter 'x' og 'y', kan du vel skrive noget à la:

$sql = "SELECT ´x´, ´y´ FROM ´tabel_navn´";
$res = mysql_query( $sql ) or die ( mysql_error() );
if (mysql_num_rows($res)<10000) {
    $aCoords = array();
    while ($row=mysql_fetch_assoc($res)) $aCoords[ $row["x"]."-".$row["y"] ] = 1;
    $x = mt_rand(0,100);
    $y = mt_rand(0,100);
    while ( $aCoords[$x."-".$y] ) {
        $x = mt_rand(0,100);
        $y = mt_rand(0,100);
    }
   
    // Indsæt $x og $y i DB her
}
Avatar billede olebole Juniormester
24. marts 2008 - 02:03 #4
Ups - jeg fik da vendt mine ticks forkert  :D
    $sql = "SELECT `x`, `y` FROM `tabel_navn`";
Avatar billede flodhesten Nybegynder
22. maj 2009 - 00:45 #5
Tak ole. Det var brugbart. Beklager det sene svar, men du kan få dine point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester