ok, this is more the math side of the translating

Now, if i remember correct from pre-cal..

you use A and D to rotate around the Y axis, and you get an angle..

and, if you want it to move in a certain angle, you have to add an X and a Z. And, i remember that (on a 2d plane) COS is the x and SIN is the y

well why doesn't moving around just work if you do

x+=cos(yrotation);
z+=sin(yrotation);

and then glTranslatef(x,0,z); (since, you don't want to move up or down the y axis, just forward)

BUT that does not work at all, the moving is completely off and i have no idea why

here are the actual equations.. if it helps at all
Code:
                 if (keys['W'])  //if pressing forward
		{
			
			xmov += sin(yrot) / 1000;     //figure out how much to move x
			zmov += cos(yrot) / 1000;     //figure out how much to move z
		}
		if (keys['S'])     // if pressing back
		{
			xmov -= sin(yrot) / 1000;     //figure out how much to move x
			zmov -= cos(yrot) / 1000;     //figure out how much to move z
		}
		if (keys['A'])     // if rotating left
		{
			if (yrot > 359.9)     //if the yrot is getting too big
				yrot = 0;           //then reset it back to 0
			yrot+=0.14f;     //rotate it .14 deg
		}
		if (keys['D'])     //if rotating right
		{
			if (yrot < 0.1)     //if the yrot is getting too small
				yrot = 359.9;      //then reset it
			yrot-=0.14f;     //rotate it .14 deg
		}
and the translation

Code:
        glTranslatef(xmov,0,zmov);      //translate it with the distances

	glRotatef(yrot,0.0f,1.0f,0.0f);    //rotate it
the rotation works, but the moving is weird.

**i'm moving a box i've created using 6 squares

and heres the question: why doesn't that work, and how do you actually do it?