- iPhone topik
- Milyen okostelefont vegyek?
- Android alkalmazások - szoftver kibeszélő topik
- One mobilszolgáltatások
- Honor 400 - és mégis mozog a kép
- Garmin Forerunner 970 - fogd a pénzt, és fuss!
- Megjelent a Poco F7, eurós ára is van már
- Amazfit GTS 4 - divatos megjelenés
- Garmin topik
- Telekom mobilszolgáltatások
Aktív témák
-
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
}
} -
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. -
Flashy
veterán
-
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
}
Aktív témák
Hirdetés
- Nagyon erős ajánlattá kezd válni a SteamOS
- Autós topik
- Hisense LCD és LED TV-k
- iPhone topik
- Macron betiltatná az EU-ban a közösségi médiát a 15 év alattiaknak
- Milyen okostelefont vegyek?
- Az adatközpontok szolgálatába állítja a nap- és szélenergiát a Meta
- Milyen videókártyát?
- sziku69: Fűzzük össze a szavakat :)
- Android alkalmazások - szoftver kibeszélő topik
- További aktív témák...
- Azonnali készpénzes nVidia RTX 2000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- Ikea Eilif Paraván - Asztali elválasztó
- MacBook, Apple M1 / M2 kompatibilis dokkolók, DisplayLink 4K, USB-C, Type-C
- AKCIÓ! Gigabyte B760M i5 14600KF 32GB DDR4 512GB SSD RX 6800XT 16GB Rampage SHIVA CM 750W
- ÁRGARANCIA!Épített KomPhone i5 10600KF 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest