int main(){ int x=0; int y=0; int a=0; tabla(); do{ printf("\n\t\t\t\t\tAJEDREZ\n"); if(y==1) printf("\t\t\t\tMOVIMIENTO INVALIDO\n"); pantalla(); a=menu(); tabla(); printf("\n\tx: "); scanf("%d",&x); printf("\ty: "); scanf("%d",&y); switch(a){ case 1:torre (x,y);break; case 2:reyna (x,y);break; case 3:arfil (x,y);break; case 4:y=peon (x,y);break; case 5:caballo (x,y);break; case 6:rey (x,y);break; } system("cls"); }while(a<7); }
void display(void) { // ****** declaracoes internas 'a funcao display() ****** float temp; GLUquadric* glQ; // nec. p/ criar sup. quadraticas (cilindros, esferas...) // ****** fim de todas as declaracoes da funcao display() ****** glQ = gluNewQuadric(); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); camara_control(camera_select); /*// permissao de atribuicao directa de cores // para objectos que nao tem material atribuido, como // e' o caso dos eixos e da esfera que simboliza a fonte de luz... glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); glEnable(GL_COLOR_MATERIAL); // cilindro representativo do eixo X glColor3f(1.0,0.0,0.0); // vermelho glPushMatrix(); glRotated(90.0, 0.0,1.0,0.0 ); gluCylinder(glQ, axis_radius_begin, axis_radius_end, axis_lenght, axis_nslices, axis_nstacks); // nao tem bases glPopMatrix(); // cilindro representativo do eixo Y glColor3f(0.0,1.0,0.0); // verde glPushMatrix(); glRotated(-90.0, 1.0,0.0,0.0 ); gluCylinder(glQ, axis_radius_begin, axis_radius_end, axis_lenght, axis_nslices, axis_nstacks); // nao tem bases glPopMatrix(); // cilindro representativo do eixo Z glColor3f(0.0,0.0,1.0); // azul glPushMatrix(); // nao necessita rotacao... glRotated(...); gluCylinder(glQ, axis_radius_begin, axis_radius_end, axis_lenght, axis_nslices, axis_nstacks); // nao tem bases glPopMatrix();*/ // Actualizacao da posicao da fonte de luz... light0_position[0] = light0x; // por razoes de eficiencia, os restantes light0_position[1] = light0y; // parametros _invariaveis_ da LIGHT0 mantem os valores light0_position[2] = light0z; // definidos na funcao de inicializacao glLightfv(GL_LIGHT0, GL_POSITION, light0_position); glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, light0_direction); // ... e da esfera que a simboliza glColor3f(1.0,1.0,0.0); // cor amarela gluQuadricOrientation( glQ, GLU_INSIDE); glPushMatrix(); glTranslated(light0x,light0y,light0z); gluSphere(glQ, symb_light0_radius, symb_light0_slices, symb_light0_stacks); glPopMatrix(); gluQuadricOrientation( glQ, GLU_OUTSIDE); // SEGUEM-SE ALGUNS EXEMPLOS DE UTILIZACAO DE OPENGL (GL, GLU, GLUT) // GLU: funcoes para desenhar Quadraticas // Permitem desenhar alguns objectos: disco, cilindro/cone, esfera // O parametro do tipo GLUquadric (variavel glQ, declarada acima) passa, // em argumento da funcao de desenho respectiva, algumas propriedades // que esta tem em conta durante o desenho (estilo de desenho, calculo e // orientacao de normais, mapeamento de texturas... // Funcoes para definicao dessas propriedades em glQ gluQuadricDrawStyle(glQ, GLU_LINE); // GLU_FILL, GLU_LINE, GLU_SILHOUETTE, GLU_POINT gluQuadricNormals(glQ, GLU_SMOOTH); // GLU_NONE, GLU_FLAT, GLU_SMOOTH gluQuadricOrientation(glQ, GLU_OUTSIDE); // GLU_OUTSIDE, GLU_INSIDE gluQuadricTexture(glQ, GL_FALSE); // GL_TRUE, GL_FALSE //gluQuadricCallback(glQ, GLU_ERROR, <CallBackFunc>); // inibicao de atribuicao directa de cores; os objectos que se seguem DEVEM // possuir materiais associados glDisable(GL_COLOR_MATERIAL); // Definicao de material a usar daqui em diante (valores declarados em materias.h) material1(); //Terreno e árvores; glCallList(1); //Hospital (com telhado e letreiro incluídos); glCallList(2); //Heliporto (área de aterragem e holofotes). glCallList(3); hangar(); torre(); helicoptero(); // swapping the buffers causes the rendering above to be shown glutSwapBuffers(); glFlush(); }
void reyna(int x,int y){ arfil(x,y); torre(x,y); tablero[y][x]='R'; }