Scripting movement and rotation?

Hello, I am somewhat new to unity and I have a question about player movement. I want to make a top an overhead view shooter (in the style of geometry wars). I am using the following code to move the player using WASD and it works fine, but how to I get the the player object to rotate. How can I get it to be like the ship in this game http://www.youtube.com/watch?v=Jhhocl7jf3o? So that when the A key is pressed and the ship moves left (it is moving along the ZX plane) it rotates so that the front of ship is facing left, etc. What script would accomplish this? Thank you.

var speed : float = 6.0;
var jumpSpeed : float = 8.0;
var gravity : float = 20.0;

private var moveDirection : Vector3 = Vector3.zero;

function Update() {
    var controller : CharacterController = GetComponent(CharacterController);
    if (controller.isGrounded) {
        // We are grounded, so recalculate
        // move direction directly from axes
        moveDirection = Vector3(Input.GetAxis("Horizontal"), 0,
                                Input.GetAxis("Vertical"));
        moveDirection = transform.TransformDirection(moveDirection);
        moveDirection *= speed;

        if (Input.GetButton ("Jump")) {
            moveDirection.y = jumpSpeed;
        }
    }

    // Apply gravity
    moveDirection.y -= gravity * Time.deltaTime;

    // Move the controller
    controller.Move(moveDirection * Time.deltaTime);
}

Input.GetAxis returns a value between -1 to 1 (left and right or up and down respectively).
You can make a parent to the game object that will control movement, and then rotate the object itself around the Y axis according to the return value of Input.GetAxis
Make sure you convert the rotation from Quaternion to Euler.

You must change the horizontal movement to rotation, and the vertical by forward movement, this way:

var speed : float = 6.0;
var jumpSpeed : float = 8.0;
var turnSpeed : float = 60;
var gravity : float = 20.0;

private var moveDirection : Vector3 = Vector3.zero;

function Update() {
    var controller : CharacterController = GetComponent(CharacterController);
    transform.Rotate(0, turnSpeed * Input.GetAxis("Horizontal") * Time.deltaTime, 0);
    if (controller.isGrounded) {
        moveDirection = transform.forward * Input.GetAxis("Vertical") * speed;
        if (Input.GetButton ("Jump")) {
            moveDirection.y = jumpSpeed;
        }
    }
    // Apply gravity
    moveDirection.y -= gravity * Time.deltaTime;
    // Move the controller
    controller.Move(moveDirection * Time.deltaTime);
}

It still can jump, but now it goes always forth or back, and turns in the direction you want with A-D.