public boolean reverse(LocationRO e){
return ((e.getX()==getX())&&(e.getY()==-1*getY()))
||((e.getX()==-1*getX())&&(e.getY()==getY()));
}
}
package snake;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class SnakeFrame extends JFrame implements ActionListener{
final SnakePanel p=new SnakePanel(this);
JMenuBar menubar=new JMenuBar();
JMenu fileMenu=new JMenu("文件");
JMenuItem newgameitem=new JMenuItem("开始");
JMenuItem stopitem=new JMenuItem("暂停");
JMenuItem runitem=new JMenuItem("继续");
JMenuItem exititem=new JMenuItem("退出");
//"设置"菜单
JMenu optionMenu=new JMenu("设置");
//等级选项
ButtonGroup groupDegree = new ButtonGroup();
JRadioButtonMenuItem oneItem= new JRadioButtonMenuItem("初级");
JRadioButtonMenuItem twoItem= new JRadioButtonMenuItem("中级");
JRadioButtonMenuItem threeItem= new JRadioButtonMenuItem("高级");
JMenu degreeMenu=new JMenu("等级");
JMenu helpMenu=new JMenu("帮助");
JMenuItem helpitem=new JMenuItem("操作指南");
final JCheckBoxMenuItem showGridItem = new JCheckBoxMenuItem("显示网格");
JLabel scorelabel;
public JTextField scoreField;
private long speedtime=200;
private String helpstr = "游戏说明:\n1 :方向键控制蛇移动的方向."+
"\n2 :单击菜单'文件->开始'开始游戏."+
"\n3 :单击菜单'文件->暂停'或者单击键盘空格键暂停游戏."+
"\n4 :单击菜单'文件->继续'继续游戏."+
"\n5 :单击菜单'设置->等级'可以设置难度等级."+