Aktív témák
-
Joooe
tag
Szia!
szsz=screen[x-1][y-1]+screen[x][y-1]+screen[x+1][y-1]+screen[x-1][y]+
screen[x+1][y]+screen[x-1][y+1]+screen[x][y+1]+screen[x+1][y+1];
Ezzel az a probléma, hogy a tábla széleinél nem fog működni.
A kiszámítására valami hasonló függvény lenne a legegyszerűbb szerintem:
int EloSzomszedok(int x, int y)
{
int dy,dx;
int szum=0;
for (dy=-1; dy<=1; dy++)
for (dx=-1; dx<=1; dx++)
{
if ( (dx==0 && dy==0) || (x+dx<0) || (x+dx>=80) || (y+dy<0) || (y+dy>=25)) continue;
szum+=screen[x+dx][y+dy];
}
return szum
}Hogy mit gondolok a nyugati civilizációról? Azt hiszem, jó ötlet lenne.
-
Joooe
tag
válasz andorpapa #10 üzenetére
Szeritem két hibája van a dolognak, bár lehet nem hibák, nem ismerem pontosan mi a játék lényege.
1: A szomszédok meghatározásánál már modosított adatokat is használ, vagyis a következő időpillanat meghatározásához nem a jelenlegi állapotot, hanem félig a jelenlegit félig a következőt veszi figyelembe.
2: a feltétel vizsgálat sem jó, egyszerűen azt vizsgálja hogy 3-e az élő szomszédok száma, te ennél ''bonyolultabb'' feltételt írtál le.Hogy mit gondolok a nyugati civilizációról? Azt hiszem, jó ötlet lenne.
-
Joooe
tag
válasz andorpapa #16 üzenetére
nem éppen optimális megoldás, de most ennyire fussa
#include <stdio.h>
int screen[80][25];
int EloSzomszedok(int x, int y)
{
int dy,dx;
int szum=0;
for (dy=-1; dy<=1; dy++)
for (dx=-1; dx<=1; dx++)
{
if ( (dx==0 && dy==0) || (x+dx<0) || (x+dx>=80) || (y+dy<0) || (y+dy>=25)) continue;
szum+=screen[x+dx][y+dy];
}
return szum;
}
int main()
{
int screen2[80][25];
int esz;
int x,y,szsz;
for (y=0; y<=24; ++y)
for (x=0; x<=79; ++x)
screen[x][y]=0;
for (y=10; y<=12; ++y)
for (x=39; x<=41; ++x)
screen [x][y]=1;
while (true)
{
for (y=0;y<=24;++y)
{
for (x=0;x<=79;++x)
if (screen[x][y]) printf(''x'');
else printf(''-'');
}
for (y=0;y<=24;++y)
for (x=0;x<=79;++x)
{
esz=EloSzomszedok(x,y);
if (screen[x][y])
{
if (!(esz==2 || esz==3)) screen2[x][y]=0;
else screen2[x][y]=1;
}
else
{
if (esz==3) screen2[x][y]=1;
else screen2[x][y]=0;
}
}
for (y=0;y<=24;++y)
for (x=0;x<=79;++x)
screen[x][y]=screen2[x][y];
// ide kéne valami várakoztatás
}
}Hogy mit gondolok a nyugati civilizációról? Azt hiszem, jó ötlet lenne.
-
Joooe
tag
Aktív témák
- LG 34GS95QE-B: OLED paneles, ívelt gamer monitor
- LED világítás a lakásban
- Piacvezető tandem OLED panellel érkezik az iPad Pro
- Dell notebook topic
- Milyen TV-t vegyek?
- BestBuy topik
- No Rest for the Wicked
- OLED TV topic
- Kicsit extrémre sikerült a Hyte belépője a készre szerelt vízhűtések világába
- DIGI internet
- További aktív témák...
- Eladó Samsung DB10D Edge-Lit LED, 10 colos monitor különleges funkciókkal! (Hdmi, USB, LAN, RS232C)
- Szoftverfejlesztési és Gaming PC eladó Intel i7 6800K, GTX 1070, 32GB RAM
- Zalman FPS Gun egér,ritkaság,kifejezetten gamer célokra fejlesztve.
- Újszerű! Csavarmatricás! RX 460 4GB GDDR5! Ingyen Foxpost!
- ASUS ROG Strix LC 240 RGB white Edition új bontatlan