3D my objects move themselves

please help me ,this is my project to apply to teacher

I can’t post picture or link tell me how to post it pls T_T


#include<GL\glut.h>
float xx = 3,yy = 1,zz = 4;
void color(float rd,float gd,float bd,float ad,float ra,float ga,float ba,float sh)
{
    GLfloat mat_diffuse[] = {rd,gd,bd,ad};
    GLfloat mat_specular[] = {1.0f,1.0f,1.0f,1.0f};
    GLfloat mat_ambient[] = {ra,ga,ba,1.0f};
    GLfloat mat_shininess[] = {sh};

    glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient);
    glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse);
    glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);
    glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess);
}

void roundChair()
{

    //rounded chair

    GLUquadricObj *theObj;
    theObj = gluNewQuadric();
    gluQuadricDrawStyle(theObj,GLU_FILL);

    //top
    glPushMatrix();
    glTranslated(0.3,0.45,0.2);
    glRotated(90,1,0,0);
    gluCylinder(theObj,0.21,0.21,0.025,30,30);
    glPopMatrix();


    //close top
    glPushMatrix();
    glTranslated(0.3,0.45,0.2);
    glScaled(1,0.1,1);
    glutSolidSphere(0.21,30,30);
    glPopMatrix();

    //leg
    glPushMatrix();
    glTranslated(0.3,0.45,0.2);
    glRotated(90,1,0,0);
    gluCylinder(theObj,0.02,0.02,0.5,30,30);
    glPopMatrix();

    gluDeleteQuadric(theObj);
}



void wall(double thickness)
{
    glPushMatrix();
    glTranslated(0.5,0.5*thickness,0.5);
    glScaled(1.5,thickness,1.5);
    glutSolidCube(1);
    glPopMatrix();
}


void slot(int rS,int gS,int bS,int rC,int gC,int bC)
{
    ////slot machine

    color(rS,gS,bS,1,0,0,0,10);
    GLUquadricObj *theObj;
    theObj = gluNewQuadric();
    gluQuadricDrawStyle(theObj,GLU_FILL);

    //cylinder and close end
    glPushMatrix();
    glTranslated(0,-.53,0);

        
        glPushMatrix();
        glScaled(1,.7,.7);
        glTranslated(-0.004,.85,-.05);
            
            color(1, 1, 0,1,0,0,0,200);

            glPushMatrix();
            glTranslated(0.3,2,0.2);
            glRotated(90,0,1,0);
            gluCylinder(theObj,0.31,0.31,0.15,30,30);
            glPopMatrix();

            color(1, 0.501, 0.752,1,0,0,0,200);
            
            glPushMatrix();
            glTranslated(0.5,2,0.2);
            glRotated(90,0,1,0);
            gluCylinder(theObj,0.31,0.31,0.15,30,30);
            glPopMatrix();

            color(0.909, 0.313, 0.141,1,0,0,0,200);

            glPushMatrix();
            glTranslated(0.7,2,0.2);
            glRotated(90,0,1,0);
            gluCylinder(theObj,0.31,0.31,0.15,30,30);
            glPopMatrix();

            //lid cylinder
    
            glPushMatrix();    
            glTranslated(0.85,2,0.2);
            glRotated(90,0,0,1);
            glScaled(1,0.1,1);
            gluSphere(theObj,0.31,31,30);
            glPopMatrix();

            glPushMatrix();
            glTranslated(0.3,2,0.2);
            glRotated(90,0,0,1);
            glScaled(1,0.1,1);
            gluSphere(theObj,0.31,31,30);
            glPopMatrix();

        glPopMatrix();
    
        color(rS,gS,bS,1,1,1,0,100);
        //upper cube 

        glPushMatrix();
        glTranslated(0.57,1.6,0.11);
        glScaled(1,0.5,.7);
        glutSolidCube(.62);
        glPopMatrix();

        //lower cube

        glPushMatrix();
        glTranslated(0.57,1,0.2);
        glScaled(1,1.5,1);
        glutSolidCube(.62);
        glPopMatrix();

        

        //intervention

        glPushMatrix();
        glTranslated(0.29,2,0.11);
        glScaled(.1,1,.7);
        glutSolidCube(.62);
        glPopMatrix();

        glPushMatrix();
        glTranslated(0.476,2,0.11);
        glScaled(.1,1,.7);
        glutSolidCube(.62);
        glPopMatrix();

        glPushMatrix();
        glTranslated(0.662,2,0.11);
        glScaled(.1,1,.7);
        glutSolidCube(.62);
        glPopMatrix();

        glPushMatrix();
        glTranslated(0.85,2,0.11);
        glScaled(.1,1,.7);
        glutSolidCube(.62);
        glPopMatrix();

        //surface lid

        glEnable(GL_BLEND);
        glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
        color(0, 1, 1,.25,1,1,1,500);

        glPushMatrix();
        glTranslated(.58,2,0.35);
        glScaled(1,.8,.05);
        glutSolidCube(.62);
        glPopMatrix();

        //beyond lid

        color(rS,gS,bS,1,1,1,0,100);

        glPushMatrix();
        glTranslated(0.57,2.3,0.09);
        glScaled(1,.2,1);
        glutSolidCube(.62);
        glPopMatrix();


        color(1, 0, 1,1,0,0,0,5);
        //button

        glPushMatrix();
        glTranslated(0.78,1.45,0.42);
        glutSolidCube(.08);
        glPopMatrix();

        color(0.501, 1, 0.501,1,0,0,0,5);

        glPushMatrix();
        glTranslated(0.58,1.45,0.42);
        glutSolidCube(.08);
        glPopMatrix();

        color(0, 0, 1,1,0,0,0,5);

        glPushMatrix();
        glTranslated(0.38,1.45,0.42);
        glutSolidCube(.08);
        glPopMatrix();

        //side bar

        color(0, 0, 0,1,0,0,0,5);

        glPushMatrix();
            glTranslated(.88,1.6,0.2);
            glRotated(90,0,1,0);
            gluCylinder(theObj,0.1,0.1,0.05,30,30);
        glPopMatrix();

        glPushMatrix();    
            glTranslated(.93,1.6,0.2);
            glRotated(90,0,0,1);
            glScaled(1,0.3,1);
            gluSphere(theObj,0.1,31,30);
        glPopMatrix();

        glPushMatrix();
            glTranslated(.95,1.6,0.2);
            glRotated(250,1,0,0);
            gluCylinder(theObj,0.03,0.03,0.5,30,30);
        glPopMatrix();

        glPushMatrix();    
            glTranslated(0.95,2.11,0.03);
            gluSphere(theObj,0.05,31,30);
        glPopMatrix();

        color(0, 0, 0,1,0,0,0,200);
        //drawer
        glPushMatrix();
            glRotated(-10,1,0,0);
            glTranslated(.58,1,0.75);
            glScaled(1,.8,.05);
            glutSolidCube(.62);
        glPopMatrix();

        color(rC,gC,bC,1,0,0,0,200);

        glPushMatrix();
            glScaled(1.5,1.5,1.5);
            glTranslated(0.09,.4,0.5);
            roundChair();
        glPopMatrix();
        gluDeleteQuadric(theObj);

}
//end slot
void dart()
{
    glPushMatrix();
    glTranslated(1.2,1.7,0);
    glScaled(0.7,0.7,0.7);

        GLUquadricObj *theObj;
        theObj = gluNewQuadric();
        gluQuadricDrawStyle(theObj,GLU_FILL);

        color(1,0,0,1,1,1,1,10);
        gluPartialDisk(theObj,0,0.5,70,70,0,20);
        gluDeleteQuadric(theObj);

        color(0,1,0,1,1,1,1,10);
            
        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,21,20);
        gluDeleteQuadric(theObj);

        color(0,0,1,1,1,1,1,10);

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,41,20);
        gluDeleteQuadric(theObj);

        color(1,0,0,1,1,1,1,10);

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,61,20);
        gluDeleteQuadric(theObj);
        
        color(0,1,0,1,1,1,1,10);

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,81,20);
        gluDeleteQuadric(theObj);
        
        color(0,0,1,1,1,1,1,10);

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,101,20);
        gluDeleteQuadric(theObj);
        color(1,0,0,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,121,20);
        gluDeleteQuadric(theObj);
        color(0,1,0,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,141,20);
        gluDeleteQuadric(theObj);
        color(0,0,1,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,161,20);
        gluDeleteQuadric(theObj);
        color(1,0,0,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,181,20);
        gluDeleteQuadric(theObj);
        color(0,1,0,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,201,20);
        gluDeleteQuadric(theObj);
        color(0,0,1,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,221,20);
        gluDeleteQuadric(theObj);
        color(1,0,0,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,241,20);
        gluDeleteQuadric(theObj);
        color(0,1,0,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,261,20);
        gluDeleteQuadric(theObj);
        color(0,0,1,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,281,20);
        gluDeleteQuadric(theObj);
        color(1,0,0,1,1,1,1,10);


        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,301,20);
        gluDeleteQuadric(theObj);
        color(0,1,0,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,321,20);
        gluDeleteQuadric(theObj);
        color(0,0,1,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,341,20);
        gluDeleteQuadric(theObj);
        
        //frame

        color (1,1,1,1,1,1,1,100);
        glutSolidTorus(0.02,0.5,50,50);

        color (1,1,1,1,1,1,1,100);
        glPushMatrix();
        glTranslated(0,0,0);
        glScaled(1,1,.05);
        glutSolidSphere(0.2,50,50);

        glPopMatrix();

    
    //arrow

        glPushMatrix();
            color(0,0,0,1,1,1,1,10);
            glRotated(30,1,0,1);
            theObj = gluNewQuadric();
            gluCylinder(theObj,.016,.016,.9,30,30);
        
            color(1,0,0,1,1,1,1,10);
            glPushMatrix();
                glTranslated(0,0,.9);
                glScaled(.07,.5,.2);
                glutSolidCube(0.5);
            glPopMatrix();
        glPopMatrix();

        glPushMatrix();
            color(0,0,0,1,1,1,1,10);
            glTranslated(0,0.1,0);
            glRotated(-50,1,0,1);
            theObj = gluNewQuadric();
            gluCylinder(theObj,.016,.016,.9,30,30);
        
            color(1,0,0,1,1,1,1,10);
            glPushMatrix();
                glTranslated(0,0,.9);
                glScaled(.07,.5,.2);
                glutSolidCube(0.5);
            glPopMatrix();
        glPopMatrix();

    
        glPushMatrix();
            color(0,0,0,1,1,1,1,10);
            glTranslated(0.1,-.07,0);
            glRotated(90,1,0,1);
            theObj = gluNewQuadric();
            gluCylinder(theObj,.016,.016,.9,30,30);
        
            color(1,0,0,1,1,1,1,10);
            glPushMatrix();
                glTranslated(0,0,.84);
                glScaled(.07,.5,.2);
                glutSolidCube(0.5);
            glPopMatrix();
        glPopMatrix();
    
        glPushMatrix();
            color(0,0,0,1,1,1,1,10);
            glTranslated(-0.1,0,0);
            glRotated(-60,1,1,1);
            theObj = gluNewQuadric();
            gluCylinder(theObj,.016,.016,.9,30,30);
        
            color(1,0,0,1,1,1,1,10);
            glPushMatrix();
                glTranslated(0,0,.9);
                glScaled(.07,.5,.2);
                glutSolidCube(0.5);
            glPopMatrix();
        glPopMatrix();

        color(0.501, 0.250, 0,1,1,1,1,10);

    // arrow bucket
        glPushMatrix();
            glTranslated(-1,-1.5,0.5);
            glRotated(90,1,0,0);
            theObj = gluNewQuadric();
            gluCylinder(theObj,.2,.2,.9,30,30);

        
        glPopMatrix();
    // arrows
            glPushMatrix();
        
                glTranslated(-1,-1,0.5);
                glRotated(90,1,0,0);
                    color(0,0,0,1,0,0,0,100);
                    theObj = gluNewQuadric();
                    gluCylinder(theObj,.016,.016,.9,30,30);
            glPopMatrix();

        color(1,0,0,1,0,0,0,100);

        //tail
            glPushMatrix();
                glTranslated(-1,-1,0.5);
                glScaled(2.4,1.17,0.7);
                    glutSolidCube(0.1);
            glPopMatrix();

            glPushMatrix();
                glTranslated(-.75,0.3,0.7);
                glRotated(30,1,0,1);
                glPushMatrix();
        
                    glTranslated(-1,-1,0.5);
                    glRotated(90,1,0,0);
                        color(0,0,0,1,0,0,0,100);
                        theObj = gluNewQuadric();
                        gluCylinder(theObj,.016,.016,.9,30,30);
                glPopMatrix();

                color(1,0,0,1,0,0,0,100);

                //tail
                glPushMatrix();
                    glTranslated(-1,-1,0.5);
                    glScaled(2.4,1.17,0.7);
                    glutSolidCube(0.1);
                glPopMatrix();
            glPopMatrix();

            glPushMatrix();
                glTranslated(-.18,0.2,0);
                glRotated(5,0,0,1);
                glPushMatrix();
        
                    glTranslated(-1,-1,0.5);
                    glRotated(90,1,0,0);
                        color(0,0,0,1,0,0,0,100);
                        theObj = gluNewQuadric();
                        gluCylinder(theObj,.016,.016,.9,30,30);
                glPopMatrix();

                color(1,0,0,1,0,0,0,100);

                //tail
                glPushMatrix();
                    glTranslated(-1,-1,0.5);
                    glScaled(2.4,1.17,0.7);
                        glutSolidCube(0.1);
                glPopMatrix();
            glPopMatrix();

            glPushMatrix();
                glTranslated(.4,-0.3,-.3);
                glRotated(-20,1,0,1);
                glPushMatrix();
        
                    glTranslated(-1,-1,0.5);
                    glRotated(90,1,0,0);
                        color(0,0,0,1,0,0,0,100);
                        theObj = gluNewQuadric();
                        gluCylinder(theObj,.016,.016,.9,30,30);
                glPopMatrix();

                color(1,0,0,1,0,0,0,100);

                //tail
                glPushMatrix();
                    glTranslated(-1,-1,0.5);
                    glScaled(2.4,1.17,0.7);
                        glutSolidCube(0.1);
                glPopMatrix();
            glPopMatrix();

            color(0.501, 1, 0,1,0,0,0,100);

            //carpet
            glPushMatrix();
                    glTranslated(0,-2.4,1.6);
                    glScaled(25,0.2,30.4);
                        glutSolidCube(0.1);
            glPopMatrix();
        glPopMatrix();
}
//end dart

void coinRouleteRed()
{
    int ht = 0;
    color(1,1,1,1.0f,1,1,1,50.0f);

        glPushMatrix();
        glTranslated(-.12,0,0.2);
        glScaled(0.8,1,0.8);
            glPushMatrix();
                glTranslated(0,0.99,3);
                glScaled(1,0.15,1);
                glutSolidSphere(0.07,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(0,0.99,3);
                glRotated(90,1,0,0);
                color(0.980, 0.243, 0.113,1.0f,1,1,1,50.0f);
                glutSolidTorus(0.01,0.08,30,30);
            glPopMatrix();
        glPopMatrix();
    
        color(1,1,1,1.0f,1,1,1,50.0f);

        glPushMatrix();
        glTranslated(-.12,0.022,0.2);
        glScaled(0.8,1,0.8);
            glPushMatrix();
                glTranslated(0,0.99,3);
                glScaled(1,0.15,1);
                glutSolidSphere(0.07,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(0,0.99,3);
                glRotated(90,1,0,0);
                color(0.980, 0.243, 0.113,1.0f,1,1,1,50.0f);
                glutSolidTorus(0.01,0.08,30,30);
            glPopMatrix();
        glPopMatrix();

        color(1,1,1,1.0f,1,1,1,50.0f);

        glPushMatrix();
        glTranslated(-.12,.044,0.2);
        glScaled(0.8,1,0.8);
            glPushMatrix();
                glTranslated(0,0.99,3);
                glScaled(1,0.15,1);
                glutSolidSphere(0.07,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(0,0.99,3);
                glRotated(90,1,0,0);
                color(0.980, 0.243, 0.113,1.0f,1,1,1,50.0f);
                glutSolidTorus(0.01,0.08,30,30);
            glPopMatrix();
        glPopMatrix();

        color(1,1,1,1.0f,1,1,1,50.0f);
        glPushMatrix();
        glTranslated(-.12,.066,0.2);
        glScaled(0.8,1,0.8);
            glPushMatrix();
                glTranslated(0,0.99,3);
                glScaled(1,0.15,1);
                glutSolidSphere(0.07,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(0,0.99,3);
                glRotated(90,1,0,0);
                color(0.980, 0.243, 0.113,1.0f,1,1,1,50.0f);
                glutSolidTorus(0.01,0.08,30,30);
            glPopMatrix();
        glPopMatrix();

        color(1,1,1,1.0f,1,1,1,50.0f);
        glPushMatrix();
        glTranslated(-.12,.088,0.2);
        glScaled(0.8,1,0.8);
            glPushMatrix();
                glTranslated(0,0.99,3);
                glScaled(1,0.15,1);
                glutSolidSphere(0.07,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(0,0.99,3);
                glRotated(90,1,0,0);
                color(0.980, 0.243, 0.113,1.0f,1,1,1,50.0f);
                glutSolidTorus(0.01,0.08,30,30);
            glPopMatrix();
        glPopMatrix();
}
void coinRouleteBlue()
{
    color(1,1,1,1.0f,1,1,1,50.0f);

    glPushMatrix();
    glTranslated(-.26,0,0.3);
    glScaled(0.8,1,0.8);
        glPushMatrix();
            glTranslated(0,0.99,3);
            glScaled(1,0.15,1);
            glutSolidSphere(0.07,30,30);
        glPopMatrix();

        glPushMatrix();
            glTranslated(0,0.99,3);
            glRotated(90,1,0,0);
            color(0, 0, 0.913,1.0f,1,1,1,50.0f);
            glutSolidTorus(0.01,0.08,30,30);
        glPopMatrix();
    glPopMatrix();

    
        color(1,1,1,1.0f,1,1,1,50.0f);

        glPushMatrix();
        glTranslated(-.26,0.022,0.3);
        glScaled(0.8,1,0.8);
            glPushMatrix();
                glTranslated(0,0.99,3);
                glScaled(1,0.15,1);
                glutSolidSphere(0.07,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(0,0.99,3);
                glRotated(90,1,0,0);
                color(0, 0, 0.913,1.0f,1,1,1,50.0f);
                glutSolidTorus(0.01,0.08,30,30);
            glPopMatrix();
        glPopMatrix();

        color(1,1,1,1.0f,1,1,1,50.0f);

        glPushMatrix();
        glTranslated(-.26,.044,0.3);
        glScaled(0.8,1,0.8);
            glPushMatrix();
                glTranslated(0,0.99,3);
                glScaled(1,0.15,1);
                glutSolidSphere(0.07,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(0,0.99,3);
                glRotated(90,1,0,0);
                color(0, 0, 0.913,1.0f,1,1,1,50.0f);
                glutSolidTorus(0.01,0.08,30,30);
            glPopMatrix();
        glPopMatrix();

        color(1,1,1,1.0f,1,1,1,50.0f);
        glPushMatrix();
        glTranslated(-.26,.066,0.3);
        glScaled(0.8,1,0.8);
            glPushMatrix();
                glTranslated(0,0.99,3);
                glScaled(1,0.15,1);
                glutSolidSphere(0.07,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(0,0.99,3);
                glRotated(90,1,0,0);
                color(0, 0, 0.913,1.0f,1,1,1,50.0f);
                glutSolidTorus(0.01,0.08,30,30);
            glPopMatrix();
        glPopMatrix();

        color(1,1,1,1.0f,1,1,1,50.0f);
        glPushMatrix();
        glTranslated(-.26,.088,0.3);
        glScaled(0.8,1,0.8);
            glPushMatrix();
                glTranslated(0,0.99,3);
                glScaled(1,0.15,1);
                glutSolidSphere(0.07,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(0,0.99,3);
                glRotated(90,1,0,0);
                color(0, 0, 0.913,1.0f,1,1,1,50.0f);
                glutSolidTorus(0.01,0.08,30,30);
            glPopMatrix();
        glPopMatrix();
}
void coinRouleteYellow()
{
    color(1,1,1,1.0f,1,1,1,50.0f);

    glPushMatrix();
    glTranslated(-.45,0,0.3);
    glScaled(0.8,1,0.8);
        glPushMatrix();
            glTranslated(0,0.99,3);
            glScaled(1,0.15,1);
            glutSolidSphere(0.07,30,30);
        glPopMatrix();

        glPushMatrix();
            glTranslated(0,0.99,3);
            glRotated(90,1,0,0);
            color(1, 1, 0,1.0f,1,1,1,50.0f);
            glutSolidTorus(0.01,0.08,30,30);
        glPopMatrix();
    glPopMatrix();

    
        color(1,1,1,1.0f,1,1,1,50.0f);

        glPushMatrix();
        glTranslated(-.45,0.022,0.3);
        glScaled(0.8,1,0.8);
            glPushMatrix();
                glTranslated(0,0.99,3);
                glScaled(1,0.15,1);
                glutSolidSphere(0.07,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(0,0.99,3);
                glRotated(90,1,0,0);
                color(1, 1, 0,1.0f,1,1,1,50.0f);
                glutSolidTorus(0.01,0.08,30,30);
            glPopMatrix();
        glPopMatrix();

        color(1,1,1,1.0f,1,1,1,50.0f);

        glPushMatrix();
        glTranslated(-.45,.044,0.3);
        glScaled(0.8,1,0.8);
            glPushMatrix();
                glTranslated(0,0.99,3);
                glScaled(1,0.15,1);
                glutSolidSphere(0.07,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(0,0.99,3);
                glRotated(90,1,0,0);
                color(1, 1, 0,1.0f,1,1,1,50.0f);
                glutSolidTorus(0.01,0.08,30,30);
            glPopMatrix();
        glPopMatrix();

        color(1,1,1,1.0f,1,1,1,50.0f);
        glPushMatrix();
        glTranslated(-.45,.066,0.3);
        glScaled(0.8,1,0.8);
            glPushMatrix();
                glTranslated(0,0.99,3);
                glScaled(1,0.15,1);
                glutSolidSphere(0.07,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(0,0.99,3);
                glRotated(90,1,0,0);
                color(1, 1, 0,1.0f,1,1,1,50.0f);
                glutSolidTorus(0.01,0.08,30,30);
            glPopMatrix();
        glPopMatrix();

        color(1,1,1,1.0f,1,1,1,50.0f);
        glPushMatrix();
        glTranslated(-.45,.088,0.3);
        glScaled(0.8,1,0.8);
            glPushMatrix();
                glTranslated(0,0.99,3);
                glScaled(1,0.15,1);
                glutSolidSphere(0.07,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(0,0.99,3);
                glRotated(90,1,0,0);
                color(1, 1, 0,1.0f,1,1,1,50.0f);
                glutSolidTorus(0.01,0.08,30,30);
            glPopMatrix();
        glPopMatrix();

}
void coinRouleteBlack()
{
    color(1,1,1,1.0f,1,1,1,50.0f);

    glPushMatrix();
    glTranslated(-.64,0,0.22);
    glScaled(0.8,1,0.8);
        glPushMatrix();
            glTranslated(0,0.99,3);
            glScaled(1,0.15,1);
            glutSolidSphere(0.07,30,30);
        glPopMatrix();

        glPushMatrix();
            glTranslated(0,0.99,3);
            glRotated(90,1,0,0);
            color(0,0, 0,1.0f,1,1,1,50.0f);
            glutSolidTorus(0.01,0.08,30,30);
        glPopMatrix();
    glPopMatrix();

    
        color(1,1,1,1.0f,1,1,1,50.0f);

        glPushMatrix();
        glTranslated(-.64,0.022,0.22);
        glScaled(0.8,1,0.8);
            glPushMatrix();
                glTranslated(0,0.99,3);
                glScaled(1,0.15,1);
                glutSolidSphere(0.07,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(0,0.99,3);
                glRotated(90,1,0,0);
                color(0,0, 0,1.0f,1,1,1,50.0f);
                glutSolidTorus(0.01,0.08,30,30);
            glPopMatrix();
        glPopMatrix();

        color(1,1,1,1.0f,1,1,1,50.0f);

        glPushMatrix();
        glTranslated(-.64,.044,0.22);
        glScaled(0.8,1,0.8);
            glPushMatrix();
                glTranslated(0,0.99,3);
                glScaled(1,0.15,1);
                glutSolidSphere(0.07,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(0,0.99,3);
                glRotated(90,1,0,0);
                color(0,0, 0,1.0f,1,1,1,50.0f);
                glutSolidTorus(0.01,0.08,30,30);
            glPopMatrix();
        glPopMatrix();

        color(1,1,1,1.0f,1,1,1,50.0f);
        glPushMatrix();
        glTranslated(-.64,.066,0.22);
        glScaled(0.8,1,0.8);
            glPushMatrix();
                glTranslated(0,0.99,3);
                glScaled(1,0.15,1);
                glutSolidSphere(0.07,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(0,0.99,3);
                glRotated(90,1,0,0);
                color(0,0, 0,1.0f,1,1,1,50.0f);
                glutSolidTorus(0.01,0.08,30,30);
            glPopMatrix();
        glPopMatrix();

        color(1,1,1,1.0f,1,1,1,50.0f);
        glPushMatrix();
        glTranslated(-.64,.088,0.22);
        glScaled(0.8,1,0.8);
            glPushMatrix();
                glTranslated(0,0.99,3);
                glScaled(1,0.15,1);
                glutSolidSphere(0.07,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(0,0.99,3);
                glRotated(90,1,0,0);
                color(0,0, 0,1.0f,1,1,1,50.0f);
                glutSolidTorus(0.01,0.08,30,30);
            glPopMatrix();
        glPopMatrix();

}
void roulette()
{
    color(0.501, 0.250, 0,1.0f,1,1,1,50.0f);
    //table square
    

    //table

    glPushMatrix();
        glTranslatef(-.4,0.74,3);
        glScaled(.8,0.5,1.36);
        glutSolidCube(1);
    glPopMatrix();

    color(1,1,1,1.0f,1,1,1,50.0f);
    //pattern 1
    glPushMatrix();
    glTranslatef(-.02,0,0);
        glPushMatrix();
            glTranslatef(-.55,0.95,3.3);
            glScaled(.03,0.09,0.7);
            glutSolidCube(1);
        glPopMatrix();

        glPushMatrix();
            glTranslatef(-.45,0.95,3.3);
            glScaled(.03,0.09,0.7);
            glutSolidCube(1);
        glPopMatrix();

        glPushMatrix();
            glTranslatef(-.35,0.95,3.3);
            glScaled(.03,0.09,0.7);
            glutSolidCube(1);
        glPopMatrix();

        glPushMatrix();
            glTranslatef(-.25,0.95,3.3);
            glScaled(.03,0.09,0.7);
            glutSolidCube(1);
        glPopMatrix();
    glPopMatrix();

    //pattern 2
    
        glPushMatrix();
            glTranslatef(-.42,0.95,3.65);
            glScaled(.32,0.09,0.03);
            glutSolidCube(1);
        glPopMatrix();

        glPushMatrix();
            glTranslatef(-.42,0.95,3.55);
            glScaled(.32,0.09,0.03);
            glutSolidCube(1);
        glPopMatrix();

        glPushMatrix();
            glTranslatef(-.42,0.95,3.45);
            glScaled(.32,0.09,0.03);
            glutSolidCube(1);
        glPopMatrix();

        glPushMatrix();
            glTranslatef(-.42,0.95,3.35);
            glScaled(.32,0.09,0.03);
            glutSolidCube(1);
        glPopMatrix();

        glPushMatrix();
            glTranslatef(-.42,0.95,3.25);
            glScaled(.32,0.09,0.03);
            glutSolidCube(1);
        glPopMatrix();

        glPushMatrix();
            glTranslatef(-.42,0.95,3.15);
            glScaled(.32,0.09,0.03);
            glutSolidCube(1);
        glPopMatrix();

        glPushMatrix();
            glTranslatef(-.42,0.95,3.05);
            glScaled(.32,0.09,0.03);
            glutSolidCube(1);
        glPopMatrix();

        glPushMatrix();
            glTranslatef(-.42,0.95,2.95);
            glScaled(.32,0.09,0.03);
            glutSolidCube(1);
        glPopMatrix();

        

    color(0.501, 0.250, 0,1.0f,1,1,1,50.0f);

    glPushMatrix();
        glTranslatef(-0.2,0.18,.3);
            ////table round
            GLUquadricObj *theObj;
            theObj = gluNewQuadric();
            gluQuadricDrawStyle(theObj,GLU_FILL);

            glPushMatrix();
                glTranslatef(-.2,.8,2);
                glRotated(90,1,0,0);
                gluCylinder(theObj,0.4,0.4,0.5,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslatef(-.2,.8,3.4);
                glRotated(90,1,0,0);
                gluCylinder(theObj,0.4,0.4,0.5,30,30);
            glPopMatrix();

            //lid round two sides
        
            glPushMatrix();    
                glTranslated(-.2,0.8,2);
                glScaled(1,0.005,1);
                glutSolidSphere(0.4,50,50);
            glPopMatrix();

                
        
            glPushMatrix();    
                glTranslated(-.2,0.8,3.4);
                glScaled(1,0.005,1);
                glutSolidSphere(0.4,50,50);
            glPopMatrix();
            
            //lift up round

            color(0.501, 0, 0,1,1,1,1,200);
            glPushMatrix();
                glTranslatef(-.2,1,2);
                glRotated(90,1,0,0);
                gluCylinder(theObj,0.25,0.25,0.5,30,30);
            glPopMatrix();
            
            //close round high
        /*    color(0.501, 0.250, 0,1,1,1,1,200);
            glPushMatrix();
                
                glScaled(1,0.02,1);
                glRotated(90,1,0,0);
                glutSolidTorus(0.05,0.2,50,50);
            glPopMatrix();*/
        
        
        
        glPushMatrix();
        glTranslated(-.2,1,2);
        glRotated(-90,1,0,0);
        glScaled(0.5,0.5,0.5);

        
        theObj = gluNewQuadric();
        gluQuadricDrawStyle(theObj,GLU_FILL);

        color(0,0,0,1,1,1,1,10);
        gluPartialDisk(theObj,0,0.5,70,70,0,20);
        gluDeleteQuadric(theObj);

        color(1,1,1,1,1,1,1,10);
            
        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,21,20);
        gluDeleteQuadric(theObj);

        color(0,0,0,1,1,1,1,10);

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,41,20);
        gluDeleteQuadric(theObj);

        color(1,1,1,1,1,1,1,10);

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,61,20);
        gluDeleteQuadric(theObj);
        
        color(0,0,0,1,1,1,1,10);

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,81,20);
        gluDeleteQuadric(theObj);
        
        color(1,1,1,1,1,1,1,10);

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,101,20);
        gluDeleteQuadric(theObj);
        color(0,0,0,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,121,20);
        gluDeleteQuadric(theObj);
        color(1,1,1,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,141,20);
        gluDeleteQuadric(theObj);
        color(0,0,0,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,161,20);
        gluDeleteQuadric(theObj);
        color(1,1,1,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,181,20);
        gluDeleteQuadric(theObj);
        color(0,0,0,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,201,20);
        gluDeleteQuadric(theObj);
        color(1,1,1,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,221,20);
        gluDeleteQuadric(theObj);
        color(0,0,0,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,241,20);
        gluDeleteQuadric(theObj);
        color(1,1,1,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,261,20);
        gluDeleteQuadric(theObj);
        color(0,0,0,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,281,20);
        gluDeleteQuadric(theObj);
        color(1,1,1,1,1,1,1,10);

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,301,20);
        gluDeleteQuadric(theObj);
        color(0,0,0,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,321,20);
        gluDeleteQuadric(theObj);
        color(1,1,1,1,1,1,1,10);
        

        theObj = gluNewQuadric();
        gluPartialDisk(theObj,0,0.5,70,70,341,20);
        gluDeleteQuadric(theObj);
        
        

        glPopMatrix();
        
            color(0,0,0,1.0f,1,1,1,50.0f);
            glPushMatrix();
                glTranslated(-.2,1,2);
                glRotated(90,1,0,0);
                glutSolidTorus(0.02,0.25,50,50);
            glPopMatrix();

            color(0.854, 0.513, 0.047,1,1,1,1,200);
            //cone
            glPushMatrix();    
                glTranslated(-.199,1.01,2.01);
                glRotated(-90,1,0,0);
                glutSolidCone(.1,.06,30,10);
            glPopMatrix();
            
            color(0,0,0,1,1,1,1,200);
            glPushMatrix();
                glTranslated(-.199,1.05,2.01);
                glutSolidSphere(0.05,10,10);
            glPopMatrix();

            glPushMatrix();    
                glTranslated(-.199,1.1,2.01);
                glRotated(-90,1,0,0);
                glutSolidCone(.025,.15,30,10);
            glPopMatrix();

            //top of high round

            

            glPushMatrix();
                glTranslated(-.199,1.23,2.01);
                glutSolidSphere(0.04,10,10);
            glPopMatrix();

            glPushMatrix();
                glTranslatef(-.274,1.23,2.01);
                glRotated(90,0,1,0);
                gluCylinder(theObj,0.02,0.02,0.15,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslatef(-.2,1.23,1.95);
                gluCylinder(theObj,0.02,0.02,0.15,30,30);
            glPopMatrix();

            color(1,1,1,1,1,1,1,200);
            //ball
            glPushMatrix();
                glTranslated(-.235,1.05,2.1);
                glutSolidSphere(0.03,10,10);
            glPopMatrix();
            
    glPopMatrix();
    //leg

    color(0, 0, 0,1.0f,1,1,1,50.0f);
    glPushMatrix();
        glTranslatef(-.4,0.25,3.8);
        glScaled(3,5,1);
        glutSolidCube(.1);
    glPopMatrix();

    glPushMatrix();
        glTranslatef(-.4,0.25,2.2);
        glScaled(3,5,1);
        glutSolidCube(.1);
    glPopMatrix();

    coinRouleteRed();

    coinRouleteBlue();

    coinRouleteYellow();

    coinRouleteBlack();
}
void floorAndWall()
{
    //floor
    color(0.776, 0.023, 0.286,1.0f,1,1,1,50.0f);
    

    glPushMatrix();
    glTranslated(-0.3,0,0);
    glScaled(6,0.25,6);
    wall(0.02);
    glPopMatrix();

    //wall

    color(1, 1, 1,1.0f,1, 1, 1,50.0f);

    //glPushMatrix();
    //glScaled(1,.8,1);
    //glTranslated(-1.05,0.75,0);    
    //glRotated(90,0,0,1);
    //glScaled(3,0.25,3);
    //wall(0.02);
    //glPopMatrix();

    //glPushMatrix();
    //glScaled(1,.8,1);
    //glTranslated(3.45,0.75,0);    
    //glRotated(90,0,0,1);
    //glScaled(3,0.25,3);
    //wall(0.02);
    //glPopMatrix();

    glPushMatrix();
    glTranslated(-.3,0.52,-1.4);
    glScaled(1,2,1);
    glRotated(-90,1,0,0);
    glScaled(6,5,1);
    wall(0.02);
    glPopMatrix();

    /*glPushMatrix();
    glTranslated(-0.3,0,7.2);    
    glRotated(90,0,1,0);
    glScaled(1,.8,1);
    glTranslated(3.45,0.75,0);    
    glRotated(90,0,0,1);
    glScaled(3,0.25,3);
    wall(0.02);
    glPopMatrix();
*/
}
 void dice()
 {
     //tao
    color(1,1,1,1,1,1,1,20);
    glPushMatrix();
        
        glTranslated(0,.5,5);
        glRotated(45,0,1,0);
        glutSolidCube(1);

        // 4 dots

        color(0,0,0,1,0,0,0,10);
        glPushMatrix();
            glTranslated(-.2,.51,-.2);
            glScaled(1,0.1,1);
                glutSolidSphere(0.13,30,30);
        glPopMatrix();
        
        glPushMatrix();
            glTranslated(.2,.51,-.2);
            glScaled(1,0.1,1);
                glutSolidSphere(0.13,30,30);
        glPopMatrix();

        glPushMatrix();
            glTranslated(-.2,.51,.2);
            glScaled(1,0.1,1);
                glutSolidSphere(0.13,30,30);
        glPopMatrix();
        
        glPushMatrix();
            glTranslated(.2,.51,.2);
            glScaled(1,0.1,1);
                glutSolidSphere(0.13,30,30);
        glPopMatrix();

        // 6 dots
        glPushMatrix();
        glRotated(90,1,0,0);
            glPushMatrix();
                glTranslated(-.3,.51,-.2);
                glScaled(1,0.1,1);
                    glutSolidSphere(0.12,30,30);
            glPopMatrix();
        
            glPushMatrix();
                glTranslated(0,.51,-.2);
                glScaled(1,0.1,1);
                    glutSolidSphere(0.12,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(-.3,.51,.2);
                glScaled(1,0.1,1);
                    glutSolidSphere(0.12,30,30);
            glPopMatrix();
        
            glPushMatrix();
                glTranslated(0,.51,.2);
                glScaled(1,0.1,1);
                    glutSolidSphere(0.12,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(.3,.51,-.2);
                glScaled(1,0.1,1);
                    glutSolidSphere(0.12,30,30);
            glPopMatrix();
        
            glPushMatrix();
                glTranslated(.3,.51,.2);
                glScaled(1,0.1,1);
                    glutSolidSphere(0.12,30,30);
            glPopMatrix();
        glPopMatrix();

        // 1 dot

        glPushMatrix();
            glTranslated(0,-.18,-.2);
            glRotated(90,0,0,1);
            glTranslated(.2,.51,.2);
            glScaled(1,0.1,1);
                glutSolidSphere(0.15,30,30);
        glPopMatrix();

        // 2 dots
        glPushMatrix();
            glTranslated(0,.25,0);
            glRotated(-90,1,0,0);
            glPushMatrix();
                glTranslated(-.2,.51,-.2);
                glScaled(1,0.1,1);
                    glutSolidSphere(0.14,30,30);
            glPopMatrix();
        
            glPushMatrix();
                glTranslated(.2,.51,-.2);
                glScaled(1,0.1,1);
                    glutSolidSphere(0.14,30,30);
            glPopMatrix();
        glPopMatrix();

        //  3  dots
        glPushMatrix();
        glTranslated(0,-.2,0);
        glRotated(90,0,1,0);
        glRotated(90,1,0,0);
            glPushMatrix();
                glTranslated(-.3,.51,-.2);
                glScaled(1,0.1,1);
                    glutSolidSphere(0.12,30,30);
            glPopMatrix();
        
            glPushMatrix();
                glTranslated(0,.51,-.2);
                glScaled(1,0.1,1);
                    glutSolidSphere(0.12,30,30);
            glPopMatrix();

            
            glPushMatrix();
                glTranslated(.3,.51,-.2);
                glScaled(1,0.1,1);
                    glutSolidSphere(0.12,30,30);
            glPopMatrix();
        
        glPopMatrix();

        // 5 dots
        glPushMatrix();
        glRotated(180,0,0,1);
            glPushMatrix();
                glTranslated(-.21,.51,-.21);
                glScaled(1,0.1,1);
                    glutSolidSphere(0.12,30,30);
            glPopMatrix();
        
            glPushMatrix();
                glTranslated(.21,.51,-.21);
                glScaled(1,0.1,1);
                    glutSolidSphere(0.12,30,30);
            glPopMatrix();

            //center

            glPushMatrix();
                glTranslated(0,.51,0);
                glScaled(1,0.1,1);
                    glutSolidSphere(0.12,30,30);
            glPopMatrix();

            glPushMatrix();
                glTranslated(-.21,.51,.21);
                glScaled(1,0.1,1);
                    glutSolidSphere(0.12,30,30);
            glPopMatrix();
        
            glPushMatrix();
                glTranslated(.21,.51,.21);
                glScaled(1,0.1,1);
                    glutSolidSphere(0.12,30,30);
            glPopMatrix();
        glPopMatrix();
    glPopMatrix();

 }
 void mySpecialkey (int key,int x,int y)
 {
     switch (key)
     {
     case GLUT_KEY_LEFT:
         xx --;
         glutPostRedisplay();
         break;
     case GLUT_KEY_RIGHT:
         xx ++;
         glutPostRedisplay();
         break;
     case GLUT_KEY_UP:
         yy++;
         glutPostRedisplay();
         break;
     case GLUT_KEY_DOWN:
         yy--;
         glutPostRedisplay();
         break;
     case GLUT_KEY_HOME:
         zz--;
         glutPostRedisplay();
         break;
     case GLUT_KEY_INSERT:
         zz++;
         glutPostRedisplay();
         break;
     default:
         break;
     }
 }

void displaySolid(void)
{
    

    color(1,1,1,1.0f,1,1,1,50.0f);// gray
    
    // set the light source properties
    GLfloat lightIntensity[] = {0.996, 0.960, 0.729,1.0f};
    GLfloat light_position[] = {3, 3, 3,0.0f};

    glLightfv(GL_LIGHT0,GL_POSITION, light_position);
    glLightfv(GL_LIGHT0,GL_DIFFUSE, lightIntensity); // set the camera

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();

    double winHt =5.0;
    glOrtho(-winHt*64/48.0,winHt*64/48.0,-winHt,winHt,0.1,100);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    //gluLookAt(0,.8,2,1,0.5,2,0,1,0); // side -x
    //gluLookAt(1,10,2,1,0.5,2,1,0,0); //bird eye view
    //gluLookAt(3,1,4,3,1,2,0,1,0);   //in front low
    gluLookAt(7,.5,2,1,0.5,2,0,1,0);        //side x

    //gluLookAt(xx,yy,zz,3,0,3,0,1,0);
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

    floorAndWall();

    //roulette

    glPushMatrix();
        glTranslated(6,0,-.5);
        glScaled(1.3,1.3,1.3);
        roulette();    
    glPopMatrix();

    glPushMatrix();
        glTranslated(4,0,-1);
        dart();
        
    glPopMatrix();
    
    dice();
    
    //slot machine x
    glPushMatrix();
        glTranslated(0,0,-1.2);
        slot(1,0,0,0,1,0);
    glPopMatrix();

    glPushMatrix();
        glTranslated(1.5,0,0);
        
        slot(1,0,0,0,1,0);
    glPopMatrix();

    glPushMatrix();
        glTranslated(1.8,0,0);
        
        slot(1,0,0,0,1,0);
    glPopMatrix();

    
    glutSwapBuffers();
}
void main (int argc,char** argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH);
    glutInitWindowSize(1000,1000);
    glutInitWindowPosition(100,100);
    glutCreateWindow("3D project");
    glutDisplayFunc(displaySolid);
    glutSpecialFunc(mySpecialkey);

    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);
    glShadeModel(GL_SMOOTH);
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_NORMALIZE);

    glClearColor(0.1f,0.1f,0.1f,0.0f);
    glViewport(0,0,1000,1000);
    glutMainLoop();

}

this is code

when chang view point by press arrow keys you will see the problem

my objects are moved and decomposed.

tell me what should I do?

Please put code in [noparse]

...

or

...

[/noparse] blocks. Added that for you.

Also, that’s a ton of code. How about you whittle it down to the bare essence of the problem. This is not a debugging service. If you have a specific question though, we might be able to help you out.

If you add glGetError() calls to the code, you’ll find two things:

[ol]
[li] GL_INVALID_VALUE from the last glMaterialfv() call in color().
[/li][li] GL_STACK_OVERFLOW from glPushMatrix().
[/li][/ol]

The first one is mostly harmless, and is caused by shininess values in excess of 128. According to the manual page:

GL_INVALID_VALUE is generated if a specular exponent outside the range [0,128] is specified.

The second one is what’s causing the objects to move. Your glPushMatrix() and glPopMatrix() calls aren’t matched (the slot() function has one more push than pop). There are 351 calls in total, 176 for glPushMatrix() and 175 for glPopMatrix(). Which means that you’ll end up with at least an extra matrix on the stack after each frame; eventually the stack will overflow and a glPushMatrix() call will be ignored (and subsequent glPopMatrix() calls will pop the wrong matrix).

But there are quite a few places where the indentation doesn’t match the push/pop calls. Given how extensively you use these calls, you might want to use blocks so that the text editor will indent automatically, e.g.:


    glPushMatrix();
    {
	glTranslated(0.3,0.45,0.2);
	glScaled(1,0.1,1);
	glutSolidSphere(0.21,30,30);
    }
    glPopMatrix();

or:


    glPushMatrix(); {
	glTranslated(0.3,0.45,0.2);
	glScaled(1,0.1,1);
	glutSolidSphere(0.21,30,30);
    } glPopMatrix();

If you say that, people tend to leave out the bits which actually matter (which aren’t necessarily the bits that they think matter). At least this was a complete single-file program with no dependencies other than OpenGL and GLUT.

While that’s true, if I’m going to end up “debugging” the program anyhow, I’d rather just have the code than do the usual “twenty questions”, with the information that actually matters not showing up until you’re on page 5.