From e22b4910d516a2ed4356b1495541e8ce5da8533c Mon Sep 17 00:00:00 2001 From: seba Date: Wed, 21 Jan 2009 01:15:42 +0100 Subject: [PATCH] Initial commit --- .gitignore | 2 + Makefile | 21 ++ defaultfont.png | Bin 0 -> 31999 bytes example.fld | 14 ++ gameoflife.cpp | 571 ++++++++++++++++++++++++++++++++++++++++++++++++ gameoflife.h | 86 ++++++++ libsegl.so.1 | Bin 0 -> 207643 bytes life.cpp | 386 ++++++++++++++++++++++++++++++++ readme.txt | 27 +++ start.fld | 22 ++ waves.fld | 7 + 11 files changed, 1136 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 defaultfont.png create mode 100644 example.fld create mode 100644 gameoflife.cpp create mode 100644 gameoflife.h create mode 100755 libsegl.so.1 create mode 100644 life.cpp create mode 100644 readme.txt create mode 100644 start.fld create mode 100644 waves.fld diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f1db45a --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +GameOfLife +*.o diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ca2b04a --- /dev/null +++ b/Makefile @@ -0,0 +1,21 @@ +CC = g++ +LINK = `sdl-config --libs` -lGL -lGLU -lSDL_image -Wl,-rpath,. +OBJ = `sdl-config --cflags` -Wall -c -I../libsegl +LIBS = libsegl.so.1 + +prog: life.o gameoflife.o + $(CC) $(LINK) $+ -o GameOfLife $(LIBS) + +run: prog + ./GameOfLife + +life.o: gameoflife.o + +%.o: %.cpp %.h + $(CC) $(OBJ) $< + +%.o: %.cpp + $(CC) $(OBJ) $< + +clean: + rm -f *.o diff --git a/defaultfont.png b/defaultfont.png new file mode 100644 index 0000000000000000000000000000000000000000..759551dd73b400551a5e43e8fde7b2c1c659ed11 GIT binary patch literal 31999 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 x; + data >> y; + data >> torus; + if(x<=0 || y <=0) + return false; + + cleanup(); + allocate(); + int j=0; + getline(data, tmp); // Remove \n + while(getline(data, tmp) && j=0 && _x=0 && _y0) + setpos.y = ((int)setpos.y+y+1)%y; + else if(up<0) + setpos.y = ((int)setpos.y+y-1)%y; + if(right>0) + setpos.x = ((int)setpos.x+x+1)%x; + else if(right<0) + setpos.x = ((int)setpos.x+x-1)%x; + +} + +void GameOfLife::toggle() { + if(feld[(int)setpos.x][(int)setpos.y]==born||feld[(int)setpos.x][(int)setpos.y]==alife) { + feld[(int)setpos.x][(int)setpos.y] = dead; + } else { + feld[(int)setpos.x][(int)setpos.y] = alife; + } +} + +void GameOfLife::render(float sec) { + if(!feld) + return; + + // Cylinder-building-timer + if(b_secdone<=sectobuild) { + b_secdone += sec; + if(b_secdone>=sectobuild) { + lockStates(); + } + } + + // Tick-timer + t_secdone += sec; + if(t_secdone>=secpertick) { + tick(); + t_secdone = 0.0f; + b_secdone = 0.0f; + } + + if(view3d) { + renderBrett(); + + for(int j=0; jw /(float)x; + float hperp = screen->h /(float)y; + float border; + + glPushMatrix(); + if(wperpsecpertick) + lockStates(); + + int near; + int x1, y1; + for(int i=0; i=x || b>=y))) + continue; + if(torus) { + x1 = (a+x)%x; + y1 = (b+y)%y; + } else { + x1 = a; + y1 = b; + } + + if(feld[x1][y1]==alife || (fullcelluse && (feld[x1][y1]==dies))) + near++; + } + } + + if(feld[i][j]==alife) { + if(near!=2 && near!=3) + feld[i][j] = dies; + } else if(feld[i][j]==dead) { + if(near==3) + feld[i][j] = born; + } + } + } + if(sectobuild<0.1f) + lockStates(); + generation++; +} + +void GameOfLife::clear() { + for(int i=0; i +#include +#include +#include +#include +#include +#include "emath.h" +#include "punkt2d.h" + +typedef enum { dead=0, alife, dies, born } State; + +class GameOfLife { + private: + State **feld; + int x, y; + bool torus; + bool fullcelluse; + unsigned long generation; + + GLUquadricObj *quad; + + // Brett + float thickness; + float cellwidth; + + // Cylinder + float radius; + float height; + int parts; + float *sinval; + float *cosval; + + //render + bool view3d; + float sectobuild; + float b_secdone; + float secpertick; + float t_secdone; + + // Edit + segl::Punkt2D setpos; + bool editmode; + + void init(); + void allocate(); + void cleanup(); + + void renderBrett(); + void renderStein(State s); + + void translateTo(int _x, int _y); + void lockStates(); + public: + GameOfLife(int _x, int _y); + GameOfLife(int _x, int _y, int r_life, int r_dead); + GameOfLife(std::string file); + ~GameOfLife(); + + void set3D(bool on); + bool load(std::string file); + bool save(std::string file); + + void fillRandom(int _x, int _y, int r_life, int r_dead); +// void toggle(int _x, int _y); + + void setEditMode(bool e); + void move(int up, int right); + void toggle(); + + float getTickSec(); + float getBuildSec(); + void setTickSec(float s); + void setBuildSec(float s); + void setTorus(bool t); + unsigned long getGeneration(); + +// const bool** getFeld(); + void tick(); + void render(float sec); + void clear(); +}; + +#endif diff --git a/libsegl.so.1 b/libsegl.so.1 new file mode 100755 index 0000000000000000000000000000000000000000..e37527f95565e84f83c54c4662fb4009051252a9 GIT binary patch literal 207643 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 z zT|ven+DXx%1`(UsCV)}IGuTXTeG-!hGP!M8RD|qgO%OQEAKRU~qbd0qui%1-z4ul` zB^c_u8N1EZTi#VE+{G<5)VpWB+5iGPjSKD%WdqO=4oFus!chb9j(n0BsGeMc&WXxj zA{;=Ax~jdRM$=+giZIAO3OuP8P0KDe{&lX~l;WG_ePoIns*$fd*9AR~UO4XLvD}3sjiksj}iG zDy!)9*v;AlR7Lf@zp@+T=LKZOfKdev_xSIAss>BU5GCFd>n?TdN~Z_Q1m_*&-7>lD zX-@$VUWbjN3TDp?*Y(dIG`teISz^hoHMh@H6d|}XAfpXQbo=#3^DS9dD86=|J_9ap zG6WD*l%vu7EEApisM60%G&#`(0SVUh`uXSGTvgs8SOC59deylU!Nt9f#(mXb-%;Xo z=SMEQ10+4hD%3a#^w}8dmly89tq26bUxwA?aRrMJIZkQg=>DZP!`;XI2HPuM?8(xE zk!)RDrr>S{I`RaZwgWY^Wr+4R^aSWeA{&Cc+a=&5Y0y9#&cWZ=cd!EkX6;nW{_LcekTwGf~=UY?AK$rt<{cDUZen zxbQ`aAeDR)wH5QE?e=_ zd7inc7KGLh95f{==cn|@E#Br!fG8c= z5<%sb?{0(?Q} z{2Ej<-{2NVp@47LM$wH7IF?0_^=6-DtKsx2Ew*t%M})W38Ks}~VqyEFm(cV0jn12| z;=U6W4OI5161yTyt5GrUkh7zx@G?z}C+S!Op2S6wd9f;SOFBR7r}#ZJ8vlqx)yjKv zx!%Nz`oQTXTkNYlRmfzu`qarkKEPg5DPqVSkLY?N`qM3+W<1FgRZ57`oyA3KU}!^T zGIhSk4~7+ zL=D6|(CRbuFtjx__zt&hqeNcpqUkWU66_PY5g|n!bC(}07bo)lEWh^C6g%>1WbQ5L zh|Su)U@fT%;AljXUpRAnQo^^lPRc2952xJ5#`^?4)F+`|>hHy7HK>6RPb1Hy`_q)a zQh|UM3M=X)`W5>-;U_AE__+=6))+jKAE(v33uV0?PzQlN^Yjj=h}U`l8!P>1|)<5k2xz&&cG4|Lo8 zp4K4EZ83a?HL z-cpp-X>(eu8cb2l9Z^=AJQjJ$okBfH9fR7S%mof;AZymkC^abPUQAitD(L*?x+fS? zo|;&P3HydF+io}AQ*J|DIvZ^C!3jlUto8H;E=``*Ine4oEdcr^K-Dz>Ib)Pb808S$ zqMU0`GbG1qt;nwP_%5!R%EdoYXem;z%1T8`hrSIhJIPGdO4Ixt-7Vvi=I4;4|SO6B5)elAyyF0E^Hc0y#bewv27jy$J!3n*+dZOZ3T@Wa zeoLXx=_$V6<34*}D7sIEpuH#r>TGcbf6!vGM>2;LyV8*?eXPgmT30s8iHOsmou5i` zt!|(Fxjbudz9(iP;eL}ozwH5at+6Bi_u^De_u33T$yA-=sSoKSRhAH>b@LGu6li?o z&Ku4_p>d{kDC|0*)bUn|d)0@)loLYLkv@57B3ZPeAnb@$MoGEHu8fj(8a)(_JzyYnR!%3KJ@}?d2_pAZ8SU&0O!tiAYvOQRfUu$= zZAhQ-f8&ZMO460n{{J;e2n`XBxajm<4iU&*CNY zF&eA72J z)ztn%8N>#btPbcPq;yI7kj$DXJ?h1CnBqy_7@U!Z4HKOtEWHQ0JUMwF&BHd!Vox9Adu5G{jkJx{tp16h`0a% literal 0 HcmV?d00001 diff --git a/life.cpp b/life.cpp new file mode 100644 index 0000000..db27038 --- /dev/null +++ b/life.cpp @@ -0,0 +1,386 @@ +#include +#include +#include +#include +#include +#include "gameoflife.h" +#include "glcamera.h" +#include "fpsmanager.h" +#include "glfontengine.h" + +void setVideo(bool view3d, int width, int height); +void displayUsage(); + +int main(int argc, char **argv) { + int width = 1024; + int height= 768; + bool view3d = true; + bool renderosd = true; + bool paused = false; + bool editmode = false; +// bool showcam2d = false; + GameOfLife feld(20, 20, 1, 2); + + { + std::string loadfile = ""; + int feld_x = 20; + int feld_y = 20; + int rand_alife = 1; + int rand_dead = 3; + bool torus = true; + for(int i=1; i=0.1f) { + feld.setTickSec(feld.getTickSec()+0.1f); + if(feld.getBuildSec()!=0.0f) + feld.setBuildSec(feld.getBuildSec()+0.1f); + } else { + feld.setTickSec(feld.getTickSec()+0.01f); + if(feld.getBuildSec()!=0.0f) + feld.setBuildSec(feld.getBuildSec()+0.01f); + } + break; + case SDLK_MINUS: + if(feld.getTickSec()>0.1f) { + feld.setTickSec(feld.getTickSec()-0.1f); + if(feld.getBuildSec()!=0.0f) + feld.setBuildSec(feld.getBuildSec()-0.1f); + } else if(feld.getTickSec()>=0.01f) { + feld.setTickSec(feld.getTickSec()-0.01f); + if(feld.getBuildSec()!=0.0f) + feld.setBuildSec(feld.getBuildSec()-0.01f); + } + break; + case SDLK_e: + editmode = !editmode; + feld.setEditMode(editmode); + if(editmode) + paused = true; + else + paused = false; + break; + // Edit Mode Stuff + case SDLK_SPACE: + if(editmode) + feld.toggle(); + break; + case SDLK_UP: + if(editmode && (!view3d || event.key.keysym.mod&KMOD_SHIFT)) + feld.move(-1, 0); + break; + case SDLK_DOWN: + if(editmode && (!view3d || event.key.keysym.mod&KMOD_SHIFT)) + feld.move(1, 0); + break; + case SDLK_RIGHT: + if(editmode && (!view3d || event.key.keysym.mod&KMOD_SHIFT)) + feld.move(0, 1); + break; + case SDLK_LEFT: + if(editmode && (!view3d || event.key.keysym.mod&KMOD_SHIFT)) + feld.move(0, -1); + break; + default: + + break; + } + break; + case SDL_VIDEORESIZE: + + break; + } + } else { + // Set scene stuff + lastframe = thisframe; + thisframe = SDL_GetTicks(); + float sec = (thisframe-lastframe)/1000.0f; + if(view3d) { + Uint8 *keystate = SDL_GetKeyState(NULL); + if(!keystate[SDLK_LSHIFT]&&!keystate[SDLK_RSHIFT]) + camera.handleKeys(sec); + } + + //Render scene + glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glLoadIdentity(); + + if(view3d) + camera.setCamera(); + + glLightfv(GL_LIGHT1, GL_POSITION, light_position); +// glLightfv(GL_LIGHT1, GL_POSITION, light1_position); + + feld.render(sec*(!paused)); + + + if(renderosd) { + if(view3d) { + glDisable(GL_LIGHTING); + fontengine.prepare2DbyPushingMatrix(); + } + + std::stringstream txt; + + glEnable(GL_TEXTURE_2D); + if(paused) + fontengine.renderLine(" Paused...", width/2, 0, true); + if(editmode) + fontengine.renderLine("Edit mode", width/2, 21, true); + txt << "Sec/Build: "; + if(feld.getBuildSec()!=0.0f) + txt << feld.getBuildSec(); + else + txt << "Off"; + fontengine.renderLine(txt.str(), width/3, height-21, true); + txt.str(""); + txt.clear(); + txt << "Sec/Tick: " << feld.getTickSec(); + fontengine.renderLine(txt.str(), width*2/3, height-21, true); + txt.str(""); + txt << "Generation: " << feld.getGeneration(); + if(!paused) + fontengine.renderLine(txt.str(), width/2, 0, true); + glDisable(GL_TEXTURE_2D); + + if(view3d) { + glEnable(GL_LIGHTING); + fontengine.regain3DbyPoppingMatrix(); + } + } + + SDL_GL_SwapBuffers(); + fpsman.delay(); + } + + } + return 0; +} + +void setVideo(bool view3d, int width, int height) { + glViewport(0, 0, (GLsizei)width, (GLsizei)height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + if(view3d) + gluPerspective(45.0f, (GLfloat)width/(GLfloat)height, 0.2f, 100.0f); + else + glOrtho(0, width, height, 0, -1, 1); + glMatrixMode(GL_MODELVIEW); +} + +void displayUsage() { + std::cout << "Usage: GameOfLife [options]" << std::endl << + std::endl << + "Options: " << std:: endl << + " -fx, --field-x Set field width (Default: 20)" << std::endl << + " -fy, --field-y Set field height (Default: 20)" << std::endl << + " -t, --torus <1/0> Enable/Disable Torus (Default: 1)" << std::endl << + " -l, --load Load field from textfile" << std::endl << + " -rd, --rand-dead Defines dead-cellratio for random fill (Default: 3)" << std::endl << + " -ra, --rand-alife Defines alife-cellratio for random fill (Default: 1)" << std::endl << + " -h, --help Shows this help and exits" << std::endl << + " -v, --version Displays versioninfo and exits" << std::endl << + std::endl << + "Read the readme.txt supplied with this program for further information" << std::endl; +} diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..d16ba11 --- /dev/null +++ b/readme.txt @@ -0,0 +1,27 @@ +Conway's "Game of Life" in 2d/3d +written by seba (www.seba-geek.de) + + - Write a field-file + Begin with a header in the first line + + For example "21 21 1" would be a 21x21 field torus + + After the header follows the field-definition, + col => x-axis, row => y-axis + 0 is a dead cell + 1 is a living cell + + Look at the example.fld for further explaination + + + - Controls + t Toggle 2d/3d mode + p Pause + o Toggle OSD + e Toggle Edit-Mode + Move with shift + arrows + Toggle fieldstate withs Space + Clear field with shift + c + b Toggle buildup of cells + -/+ In- or decrease speed + \ No newline at end of file diff --git a/start.fld b/start.fld new file mode 100644 index 0000000..32886bb --- /dev/null +++ b/start.fld @@ -0,0 +1,22 @@ +21 21 1 +000000000000000000000 +001000000000001000000 +011100000000011100000 +001000000000001000000 +000000000000000000000 +000000000000000000000 +000000000000000000000 +000000000111000000000 +000000000101000000000 +000000000101000000000 +000000000000000000000 +000000000101000000000 +000000000101000000000 +000000000111000000000 +000000000000000000000 +000000000000000000000 +001000000000000100000 +011100000000001110000 +001000000000000100000 +000000000000000000000 +000000000000000000000 diff --git a/waves.fld b/waves.fld new file mode 100644 index 0000000..a3ade37 --- /dev/null +++ b/waves.fld @@ -0,0 +1,7 @@ +20 6 1 +00000000010000000000 +00000000010000000000 +00000000010000000000 +00000000010000000000 +00000000010000000000 +00000000010000000000