JAVA程序源代码(贪吃蛇)(共13页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《JAVA程序源代码(贪吃蛇)(共13页).doc》由会员分享,可在线阅读,更多相关《JAVA程序源代码(贪吃蛇)(共13页).doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上贪吃蛇源代码将Location、LocationRO、SnakeFrame、SnakeModel、SnakePanel放到命名为snake的文件夹里,主函数MainApp放到外面运行主函数即可实现。主函数package snake;import javax.swing.*;import snake.*;public class MainApp public static void main(String args) JFrame.setDefaultLookAndFeelDecorated(true);SnakeFrame frame=new SnakeFrame()
2、;frame.setSize(350,350);frame.setResizable(false);frame.setLocation(330,220);frame.setTitle(贪吃蛇);frame.setVisible(true);package snake;public class Location private int x;private int y;Location(int x,int y)this.x=x;this.y=y;int getX()return x; int getY()return y;void setX(int x)this.x=x;void setY(int
3、 y)this.y=y;public boolean equalOrRev(Location e)return (e.getX()=getX()&(e.getY()=getY()|(e.getX()=getX()&(e.getY()=-1*getY()|(e.getX()=-1*getX()&(e.getY()=getY();public boolean equals(Location e)return(e.getX()=getX()&(e.getY()=getY();public boolean reverse(Location e)return (e.getX()=getX()&(e.ge
4、tY()=-1*getY()|(e.getX()=-1*getX()&(e.getY()=getY();package snake;public class LocationRO private int x;private int y;LocationRO(int x,int y)this.x=x;this.y=y;int getX()return x; int getY()return y;public boolean equalOrRev(LocationRO e)return (e.getX()=getX()&(e.getY()=getY()|(e.getX()=getX()&(e.ge
5、tY()=-1*getY()|(e.getX()=-1*getX()&(e.getY()=getY();public boolean equals(LocationRO e)return(e.getX()=getX()&(e.getY()=getY();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.*;
6、import javax.swing.*;class SnakeFrame extends JFrame implements ActionListenerfinal 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(继续);JMenuIte
7、m exititem=new JMenuItem(退出); /设置菜单JMenu optionMenu=new JMenu(设置); /等级选项 ButtonGroup groupDegree = new ButtonGroup(); JRadioButtonMenuItem oneItem= new JRadioButtonMenuItem(初级); JRadioButtonMenuItem twoItem= new JRadioButtonMenuItem(中级); JRadioButtonMenuItem threeItem= new JRadioButtonMenuItem(高级);
8、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 :单
9、击菜单文件-开始开始游戏.+ n3 :单击菜单文件-暂停或者单击键盘空格键暂停游戏.+ n4 :单击菜单文件-继续继续游戏.+ n5 :单击菜单设置-等级可以设置难度等级.+ n6 :单击菜单设置-显示网格可以设置是否显示网格.+ n7 :红色为食物,吃一个得10分同时蛇身加长.+ n8 :蛇不可以出界或自身相交,否则结束游戏.; SnakeFrame() setJMenuBar(menubar); fileMenu.add(newgameitem); fileMenu.add(stopitem); fileMenu.add(runitem); fileMenu.add(exititem);
10、menubar.add(fileMenu); oneItem.setSelected(true); groupDegree.add(oneItem); groupDegree.add(twoItem); groupDegree.add(threeItem); degreeMenu.add(oneItem); degreeMenu.add(twoItem); degreeMenu.add(threeItem); optionMenu.add(degreeMenu); / 风格选项 showGridItem.setSelected(true); optionMenu.add(showGridIte
11、m); menubar.add(optionMenu); helpMenu.add(helpitem); menubar.add(helpMenu);Container contentpane=getContentPane(); contentpane.setLayout(new FlowLayout();contentpane.add(p);scorelabel=new JLabel(得 分: );scoreField=new JTextField(0,15);scoreField.setEnabled(false);scoreField.setHorizontalAlignment(0);
12、JPanel toolPanel=new JPanel();toolPanel.add(scorelabel);toolPanel.add(scoreField);contentpane.add(toolPanel);oneItem.addActionListener(this); twoItem.addActionListener(this); threeItem.addActionListener(this); newgameitem.addActionListener(this); stopitem.addActionListener(this); runitem.addActionLi
13、stener(this); exititem.addActionListener(this); helpitem.addActionListener(this); showGridItem.addActionListener(this);public void actionPerformed(ActionEvent e) try if(e.getSource()=helpitem) JOptionPane.showConfirmDialog(p,helpstr,操纵说明,JOptionPane.PLAIN_MESSAGE); else if(e.getSource()=exititem)Sys
14、tem.exit(0); else if(e.getSource()=newgameitem)p.newGame(speedtime); else if(e.getSource()=stopitem)p.stopGame(); else if(e.getSource()=runitem)p.returnGame(); else if(e.getSource()=showGridItem)if(!showGridItem.isSelected()p.setBackground(Color.lightGray);elsep.setBackground(Color.darkGray); else i
15、f(e.getSource()=oneItem) speedtime=200; else if(e.getSource()=twoItem) speedtime=100; else if(e.getSource()=threeItem) speedtime=50; catch(Exception ee)ee.printStackTrace(); package snake;import java.util.*;import javax.swing.JOptionPane;public class SnakeModel private int rows,cols;/行列数private Loca
16、tion snakeHead,runingDiriction;/运行方向private LocationRO locRO;/LocationRO类数组private LinkedList snake,playBlocks;/蛇及其它区域块private LocationRO snakeFood;/目标食物private int gameScore=0; /分数private boolean AddScore=false;/加分 /获得蛇头public LocationRO getSnakeHead() return (LocationRO)(snake.getLast();/蛇尾public
17、LocationRO getSnakeTail()return (LocationRO)(snake.getFirst();/运行路线public Location getRuningDiriction()return runingDiriction;/获得蛇实体区域public LinkedList getSnake()return snake;/其他区域public LinkedList getOthers()return playBlocks;/获得总分public int getScore()return gameScore;/获得增加分数public boolean getAddSc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 程序 源代码 贪吃 13
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内