Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++, PHP: Oliot taulukossa?

mika132 [13.04.2010 18:52:52]

#

Teen ns. Karttaa samasta kuvasta. Eli hieman tyyliin travian. Neliöitä siellä sun täällä.

Ongelma on, että mahdollisimman helposti sen jos tekisi olisi olio johon tallentaa kartan X, Y sekä väri. Sitten while silmukalla katsotaan jos väri on sininen piirretään sininen ja X, Y katsotaan. No tähän olisi ehkä helpoin toteutus tapa taulukot. Miten voin tallentaa noin 50 taulukkoa käyttäen oliota?

Metabolix [13.04.2010 19:14:56]

#

Tarkoitat kai tallentamista tiedostoon? Mieti ensin, miten yksi olio kannattaa tallentaa. Käy sitten for-silmukalla taulukko läpi ja tallenna oliot peräkkäin tällä keksimälläsi tavalla.

mika132 [13.04.2010 19:29:26]

#

Kyllä minä sen tiedän miten.

struct nelio {
    int dat, x, y, vari;
};

mutta en tiedä miten tallentaa niitä taulukkoon, siis tiedän että ei toimi, mutta tässä jotain mitä mietien:

nelio n;
xx=0;
yy=0;
for (int i; i <= 50; i++)
{
n.dat[i] = i;
n.x[i] = xx;
n.y[i] = yy;
n.vari[i] = 1; //tähän tulee randomi luku, mutta laitoin nyt yksi.
if (xx <= 400)
{
xx+=20;
}
else if (xx >= 420)
{
yy+=20;
xx=0;
}
}

Jos tuo onkin oikein en ole yhtään varma miten voin piirtää nyt kuvan, niin, että lataan vain yhden kuvan ja pystyy piirtämään sen 50 kertaa ja se piirtää ne taulukkojen tietojen mukaan.

Metabolix [13.04.2010 19:33:08]

#

Mikä siinä taulukkojen ymmärtämisessä on vieläkin niin hirveän vaikeaa? Lue nyt vielä kerran oppaasta, yritin aiemman keskustelun pohjalta jopa vääntää siinäkin selvemmin rautalangasta, mikä se taulukko on.

Kun kerran väität osaavasi PHP:tä, niin kirjoita vastaava koodi (eli taulukollinen olioita) ensin sillä. Ei tarvitse kovin paljon muuttaa C++:aa varten.

Kai sentään ymmärrät, että nykyisessä koodissasi yrität saada yhden neliön sisältämään monet koordinaatit, kun oikeasti pitäisi luoda monta neliötä, joista jokainen sisältää yhdet koordinaatit?

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta