Hello guys , I just wrote a code of Cellular Automata using OpenGl
but I need your help in converting this code to a C++ code
here is the code :

#include <windows.h>
#include <math.h>
#include <gl/Gl.h>
#include <gl/Glu.h>
#include <gl/glut.h>
#include<iostream>
#include<cstdlib>
using namespace std;
GLsizei Height= 800;
GLsizei Width= 600;
#define WAIT 1000
int  i,j,b[50][50]={0},a[50][50]={0},count=0;

void Display()
{
	glColor3f(0,0,0);
	glClear(GL_COLOR_BUFFER_BIT);
	for(i=1;i<49;i++)
		for( j=1;j<49;j++)
		{
			count=0;
			if(b[i-1][j+1]==1)
				count++;
			if(b[i-1][j]==1)
				count++;
			if(b[i-1][j-1]==1)
				count++;
			if(b[i][j+1]==1)
				count++;
			if(b[i][j-1]==1)
				count++;
			if(b[i+1][j+1]==1)
				count++;
			if(b[i+1][j]==1)
				count++;
			if(b[i+1][j-1]==1)
				count++;

			if(a[i][j]==1)
			{
				glColor3f(1,0,0);
				glBegin(GL_POLYGON);
				glVertex2f(i*10, j*10);
				glVertex2f((i*10)+10,j*10);
				glVertex2f((i*10)+10, (j*10)+10);
				glVertex2f(i*10, (j*10)+10);
				glVertex2f(i*10, j*10);
				glEnd();
				

			}
			else if(a[i][j]==0)
			{
				glColor3f(0,0,0);
				glBegin(GL_LINE_STRIP);
				glVertex2f(i*10,j*10);
				glVertex2f((i*10)+10,j*10);
				glVertex2f((i*10)+10, (j*10)+10);
				glVertex2f(i*10, (j*10)+10);
				glVertex2f(i*10, j*10);
				glEnd();
			}
			if(b[i][j]==0&&count==3)
			{
				a[i][j]=1;	
			}
			else if(b[i][j]==1&&(count==0||count==1||count>=4))
			{
				a[i][j]=0;		
			}
			else if(b[i][j]==0&&count!=3)
				a[i][j]=0;
			else if(b[i][j]==1&&(count==3||count==2))
				a[i][j]=1;
			if(i==48&&j==48)
				for(i=1;i<49;i++)
					for( j=1;j<49;j++)
					{
						b[i][j]=a[i][j];
					}				
		}
		glFlush();
}
void myReshape (int w, int h)
{
	glViewport (0, 0, (GLsizei) w, (GLsizei) h);
	glMatrixMode (GL_PROJECTION);
	glLoadIdentity ();
	gluOrtho2D (0.0, (GLdouble)w , 0.0, (GLdouble) h);
	Height=h;
	Width=w;

}

void myinit(int red,int green,int blue)
{
	glClearColor(red,green,blue,0.0);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	gluOrtho2D(0.0, Width,0.0,Height);

}
void waitAndRedraw (int foo) 
{
	glutPostRedisplay();
	glutTimerFunc(WAIT,waitAndRedraw,0);
}

void main(int argc, char **argv)
{
	b[25][25]=1;
	b[26][25]=1;
	b[27][25]=1;
	b[25][26]=1;
	b[27][26]=1;
	b[25][27]=1;
	b[26][27]=1;
	b[27][27]=1;
	a[25][25]=1;
	a[26][25]=1;
	a[27][25]=1;
	a[25][26]=1;
	a[27][26]=1;
	a[25][27]=1;
	a[26][27]=1;
	a[27][27]=1;
	
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
	glutInitWindowPosition(100,100);
	glutInitWindowSize(Width, Height);
	glutCreateWindow("Artificial Intelligence");
	glutDisplayFunc(Display);
	glutReshapeFunc(myReshape);
	glutTimerFunc(WAIT,waitAndRedraw,0);
	myinit(1.0,1.0,1.0);
	glutMainLoop();
}
Member Avatar for iamthwee

This question doesn't make sense?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.