视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
java简单贪吃蛇代码
2025-09-26 11:04:59 责编:小OO
文档
/*

 * 贪吃蛇

*/

i包含文件

import javax.swing.*;

import java.awt.event.*;

public class GreedSnack extends JFrame{

 定义WH_panel的实例

 定义菜单实例

 构造函数

  贪吃蛇-框架名称

  获得框架容器

  设置frame的大小

        c.setLayout(null);                                   //设置框架布局

        wh_bar=new JMenuBar();                            //定义菜单实例

        setJMenuBar(wh_bar);                               //设置菜单

  文件"),new JMenu("编辑"主菜单

  下拉菜单项

    开始"),new JMenuItem("退出")}, //设计菜单的内容

    分数"),new JMenuItem("记录分")}

 

  添加菜单

 

   添加下拉菜单

   小于菜单的长度

  

    添加

  

 

  设置菜单监听

 

     

  

   

   

     开始线程 

     直接执行right函数

   

    对线程进行捕获错误

  

 

 

 

   键盘监听

  

    监听左键

     执行left函数

    监听右键

     执行right函数

    监听上键

            panel.up();                                   //执行up函数

    监听下键

     执行down函数

           }                                                  //键盘事件

  

  

 

 

  布局

  添加panel

 主函数

  设置frame的实例

  关闭窗口

  设置成可见

c函数

{

 定义线程

 设置变量

 初始食物的位置

 定义行使方向

 定义食物数

 定义数组

 构造函数

  设置panel的大小

  创建线程thread

  给数组付初值

 

   列标小于20

  

    将数组赋为0

  

 

 函数

  假设现在向右行进

 

   为1

   标记左不能运行

  

   标记上可以运行

   标记下可以运行

 

  假设现在不是向右行进

 

   向左可以运行

 

 右键函数

  假设现在向左行进

 

   为2

  

   向右不可以运行

   向上可以运行

   向下可以运行

 

  假设没有向左行进

 

   向右可以运行

 

 向上键函数

  假设现在向下行进

 

   为3

   向上不可以运行

  

   向左可以行进

   向右可以运行

 

  假设现在没有向下运行

 

   可以向上行进

 

 向下键的函数

  如果现在向上运行

 

   为4

  

   现在不可向下行进

   现在可向右行进

   现在向左行进

 

  如果现在没有向上行进

 

   可以向下行进

 

 线程函数

  循环

 

   向左方

  

    规定范围

    当下一个有蛇身

   

    

   

    坐标减小变化

   

  

   向右方

  

    规定范围

    当下一个有蛇身

   

    

   

          x=x+20;                                       //x坐标增大变化

  

  

   向上方

  

    规定范围

    当下一个有蛇身

   

    

   

    坐标减小变化

   

  

   向下方

  

    规定范围

    当下一个有蛇身

   

    

   

    坐标增大变化

   

  

   蛇头的坐标与食物相同

  

    随机食物坐标X

    随机食物坐标Y

  

    刷新绘图

    食物数进行自加

  

   到达边界跳出循环

  

   

  

 

 蛇身行进函数

 

  此函数为贪吃蛇的重点函数,实现蛇身的各种变化,主要思路是:

  将面板分割成20X30的数组,并将其初始值赋为0,每次将蛇头

  值赋为1,然后对数组非0的数进行加1操作,若数组内的值大于

  蛇本身应有的长度,就将其值改为0,最后对数组不为0的进行绘

  图。

 

  当坐标满足数组范围时

 

    此时蛇头数组值为1

 

 检测整个数组

   小于20

 

    如果数组中含有不为0的值

   

           wh_array[i][j]=wh_array[i][j]+1;               //对其加1操作

   

 

        }                                                          //for

        repaint();                                                 //从绘窗口

        wh_sleep(200);                                             //睡眠

 给数组付初值

   小于20

 

    若蛇身长度大于食物数加1

   

     将值变为0

   

 

        }                                                          //for

 绘图函数  

  背景颜色

 

  检测数组

 

   坐标小于20

  

    在wh_array不为0时

   

    蛇身颜色

           g.fillRect(20*i, 20*j, 20, 20);                //画蛇身

           g.setColor(Color.lightGray);                   //蛇身外框颜色

           g.drawRect(20*i, 20*j, 20, 20);                //蛇身外框

   

  

 

  食物颜色

  画食物

  当蛇撞墙时

 

   背景颜色

   画矩形充当背景

   设置字符串颜色

   输出game over

 

 自定义sleep函数

 

 

   调用线程休眠

 

  捕获错误

 

  

   输出错误

 

}  下载本文

显示全文
专题