Ejemplo n.º 1
0
void display(void)
{
	int i;
	glClearColor(1.0f,1.0f,1.0f,1.0f);

	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	
	glPointSize(1.0);

	glBegin(GL_POINTS);
	
	init_buffer();		//initialize buffer
	rotate_all();		//rotate object
	project_data();		//project object
	drawPoly_zbuffer();	//draws cube
	performUpdate();	//moves balls and handles collisions

	//draws the balls
	for(i=0;i<no_balls;i++)
	{
		find_intersect(Balls[i].pos[0],Balls[i].pos[1],Balls[i].pos[2],Balls[i].r);
		fill_color(Balls[i].pos[0],Balls[i].pos[1],Balls[i].pos[2],i%6);
	}
	//draws the z-buffer	
	disp_zbuf();
		
	glEnd();
	glutSwapBuffers();
}
Ejemplo n.º 2
0
int main()
{
	int num, now, pw;
	int i;
	int action;
	int total = 0;

	scanf("%d", &num);
	scanf("%d", &now);
	scanf("%d", &pw);

	size = num;

	a_now = (int*)malloc(num * sizeof(int));
	a_pw = (int*)malloc(num * sizeof(int));
	a_result = (int*)malloc(num * sizeof(int));

	assign(num, a_now, now, 0);
	assign(num, a_pw, pw, 0);

	for(i=0; i<size; i++)
	{
		if(a_now[i] == a_pw[i])
		{
			a_result[i] = 0;
			continue;
		}
		
		else
		{
			action = calc(a_now[i], a_pw[i]);
			rotate_all(action, i, a_now);
			a_result[i] = action;
		}
	}

	for(i=0; i<size; i++)
	{
		if(a_result[i] == 0)
			continue;

		else
		{
			if(a_result[i] < 0)
				total += (a_result[i] * -1);

			else
				total += a_result[i];
		}
	}
	
	printf("%d\n", total);

	for(i=0; i<size; i++)
		printf("%d %d\n", i+1, a_result[i]);

	return 0;
}