/**
*贪吃蛇原始版:让单字母贪吃蛇C动起来,并根据玩家光标键更改运动方向
*/
import static javaconsole.JavaConsole.*;
public class SimpleSnake
{
public static void main(String[] args)
{
final int ESC = 27; //ESC键
final int UP = 72; //向上的光标键
final int DOWN = 80; //向下的光标键
final int LEFT = 75; //向左的光标键
final int RIGHT = 77; //向右的光标键
final int RIGHT_DIR = 1; //蛇的运动方向:1右2下3左4上
final int DOWN_DIR = 2;
final int LEFT_DIR = 3;
final int UP_DIR = 4;
int dir = RIGHT_DIR; //蛇的初始运动方向向右
set_size(80,25);
set_title("简单原始版贪吃蛇游戏!");
set_color(0,0x3);
cls();
int x = 40;//贪吃蛇的x坐标
int y = 11;//贪吃蛇的y坐标
gotoxy(x,y);
System.out.print("C");
getkey();
while(true)
{
if(kbhit()) //如果玩家按下键
{
//1.接收按键(上下左右光标键和ESC键)
int key = getkey();
switch(key)
{
case UP:
dir = UP_DIR; //向上
break;
case DOWN:
dir = DOWN_DIR; //向下
break;
case LEFT:
dir = LEFT_DIR; //向左
break;
case RIGHT:
dir = RIGHT_DIR; //向右
break;
case ESC: //ESC退出游戏
System.exit(0);
}
}
//擦除原来的贪吃蛇
delay(100);
gotoxy(x,y);
System.out.print(" ");
//没有按键,让蛇沿着原来的方向运动
switch(dir)
{
case RIGHT_DIR: //向右运动
x = x + 1;
if(x >= 79)
{
x = 79;
}
break;
case DOWN_DIR: //向下运动
y = y + 1;
if(y >= 24)
{
y = 24;
}
break;
case LEFT_DIR: //向左运动
x = x - 1;
if(x <= 0)
{
x = 0;
}
break;
case UP_DIR: //向上运动
y = y - 1;
if(y <= 0)
{
y = 0;
}
}
//在新的位置处绘制贪吃蛇
gotoxy(x,y);
System.out.print("C");
}
}
}