1. [代码]java 简单程序     跳至 [1] [全屏预览]
package com.snake;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
public class SnakeGame extends JFrame implements KeyListener{

private int stat=1,direction=0,bodylen=6,headx=7,heady=8,
tailx=1,taily=8,tail,foodx,foody,food;//初始化定义变量
public final int EAST=1,WEST=2,SOUTH=3,NORTH=4;//方向常量
int [][] fillblock=new int [20][20];//定义蛇身所占位置
public SnakeGame() {//构造函数 
super("贪吃蛇");
setSize(510,510);
setLocationRelativeTo(null);
setVisible(true);//设定窗口属性
addKeyListener(this);//添加监听
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
for(int i=1;i<=7;i++) fillblock[i][8]=EAST;//初始化蛇身属性   
direction=EAST;//方向初始化的设置
FoodLocate(); //定位食物  
while (stat==1){
fillblock[headx][heady]=direction;   
switch(direction)
{
 case 1:headx++;break;
 case 2:headx--;break;      
 case 3:heady++;break;
 case 4:heady--;break;  
}//蛇头的前进
if(heady>19||headx>19||tailx>19||taily>19||heady<0||headx<0||tailx<0||taily<0||fillblock[headx][heady]!=0)
{   
stat=0;     
break;  
} //判断游戏是否结束
try
{
Thread.sleep(100); 
}catch(InterruptedException e){}//延迟
fillblock[headx][heady]=direction;
    if(headx==foodx&&heady==foody)
    {//吃到食物  
 FoodLocate();
 food=2;
 try{  
 Thread.sleep(100); 

 catch(InterruptedException e){}//延迟
}
    if(food!=0)food--;    
    else{tail=fillblock[tailx][taily];
    fillblock[tailx][taily]=0;//蛇尾的消除  
    switch(tail)
    {
            case 1:tailx++;break; 
            case 2:tailx--;break; 
            case 3:taily++;break;  
            case 4:taily--;break; 
    }//蛇尾的前进
    }          
    repaint(); 
    }css3
if(stat==0)
 JOptionPane.showMessageDialog(null,"GAME OVER","Game Over",JOptionPane.INFORMATION_MESSAGE);
}http://www.huiyi8.com/moban/​
    public void keyPressed(KeyEvent e)
    {//按键响应
    int keyCode=e.getKeyCode();    
    if(stat==1) switch(keyCode)
    {  
        case KeyEvent.VK_UP:if(direction!=SOUTH) direction=NORTH;break;  
        case KeyEvent.VK_DOWN:if(direction!=NORTH)direction=SOUTH;break;         
        case KeyEvent.VK_LEFT:if(direction!=EAST)direction=WEST;break;    
        case KeyEvent.VK_RIGHT:if (direction!=WEST)direction=EAST;break;        
    }
    }
    public void keyReleased(KeyEvent e){}//空函数
    public void keyTyped(KeyEvent e){} //空函数   
    public void FoodLocate()
    {//定位食物坐标
    do{        
     Random r=new Random();   
     foodx=r.nextInt(20); 
     foody=r.nextInt(20);
      }
    while (fillblock[foodx][foody]!=0);
    }
    public void paint(Graphics g)
    {//画图  
    super.paint(g);
    g.setColor(Color.BLUE);
    for(int i=0;i<20;i++) 
    for(int j=0;j<20;j++)
    if (fillblock[i][j]!=0)
    g.fillRect(25*i+5,25*j+5,24,24);
    g.setColor(Color.RED);
    g.fillRect(foodx*25+5,foody*25+5,24,24);   
    }
    public static void main(String[] args) 
    {//主程序 
    SnakeGame application=new SnakeGame();  
    }
 }

java 简单贪吃蛇的更多相关文章

  1. java实现贪吃蛇游戏

    最简单的4个java类就可以实现贪吃蛇: main函数: package tcs; public class GreedSnake { public static void main(String[] ...

  2. Java实现贪吃蛇游戏【代码】

    花了两个下午写了一个贪吃蛇小游戏,本人想写这游戏很长时间了.作为以前诺基亚手机上的经典游戏,贪吃蛇和俄罗斯方块一样,都曾经在我们的童年给我们带来了很多乐趣.世间万物斗转星移,诺基亚曾经作为手机业的龙头 ...

  3. Java实现贪吃蛇游戏(含账号注册登录,排行榜功能)

    这是我第一次工程实践的作业,选题很多,但我只对其中的游戏开发感兴趣,可游戏就两三个类型,最终还是选择了贪吃蛇.其实就贪吃蛇本身的代码实现还算是比较简单的,可是实践要求代码行达到一定数量,所以我就额外给 ...

  4. 用OpenGL简单编写的一个最简单贪吃蛇游戏

    刚学OpenGL的时候,写的一个最简单的贪吃蛇游戏代码 如下: //贪吃蛇游戏 #include<stdio.h> #include<stdlib.h> #include< ...

  5. 用Java开发贪吃蛇游戏

    贪吃蛇游戏的设计步骤: Part 1: 设计游戏图纸 画出900*700的白色窗口 在窗口上添加画布 在画布上添加标题 在画布上添加黑色游戏区 Part 2: 放置静态的蛇:一个头.两个身体 加上开始 ...

  6. ege图形库之简单贪吃蛇(c++)

    第二次做动画显示效果的小程序,心血来潮想做下儿时的经典游戏----贪吃蛇.由于时间有限,只是简单地做了基本功能,有时间后再完善更多功能. 由于个人水平有限,可能代码有些地方可以改进.不足之处敬请指出. ...

  7. Python实例:贪吃蛇(简单贪吃蛇编写)🐍

    d=====( ̄▽ ̄*)b 叮~ Python -- 简易贪吃蛇实现 目录: 1.基本原理 2.需要学习的库 3.代码实现 1.基本原理 基本贪吃蛇所需要的东西其实很少,只需要有一块让蛇动的屏幕, 在 ...

  8. Java实现贪吃蛇

    游戏界面基本布局 贪吃蛇是基于JFrame的一款小游戏.它主要有两部分组成,一个是显示区域,一个是按钮区域.这两个区域都用JPanel来实现. 首先需要创建一个基于JFrame的类,例如创建一个MyF ...

  9. 用GUI实现java版贪吃蛇小游戏

    项目结构 新建一个JFrame窗口,作为程序入口 public class GameStart{ public static void main(String[] args) { JFrame jFr ...

随机推荐

  1. PatentTips - Blending a Graphic over a Video

    Television broadcasts of events can be enhanced by providing graphics that are blended with other im ...

  2. 让Mac OS X专用高速移动硬盘在Linux下也能被读写

    MacBook Pro以及iMac等设备都具备雷电接口和USB 3.0接口,配合使用Mac OS X格式化的专用高速移动硬盘读写数据都非常快.那么这种硬盘可以在Linux下被读写吗?其实,Mac OS ...

  3. 表单form-input标签禁止聚焦输入

    1.input标签禁止聚焦输入(针对小程序) <input type="text" disabled /> input标签禁止聚焦输入(针对网页html) 1).< ...

  4. 马蜂窝ABTest多层分流系统的设计与实现

      什么是 ABTest 产品的改变不是由我们随便「拍脑袋」得出,而是需要由实际的数据驱动,让用户的反馈来指导我们如何更好地改善服务.正如马蜂窝 CEO 陈罡在接受专访时所说:「有些东西是需要 Sen ...

  5. mysql主从库

    http://wangwei007.blog.51cto.com/68019/965575 一.mysql主从的原理 1.Replication 线程 Mysql的 Replication 是一个异步 ...

  6. Ajax向前后台传递json和转换

    学生管理系统MVC模式设计心得: jquery .ajax提交data数据格式 jquery 的Ajax方法提交数据,但是是多个参数,具体data的格式如下: data提交的数据类型为:Object  ...

  7. HttpServletRequest接口是怎么实现的

    request只是规范中的一个名称而已.不是SUN提供的,这是由各个不同的Servlet提供商编写的,SUN只是规定这个类要实现HttpServletRequest接口,并且规定了各个方法的用途,但具 ...

  8. How to resolve 'Potential Leak' issue

    -1 down vote favorite I am using the 'analyze' tool in xcode to check for potential leakages in my a ...

  9. 若菜acmer感觉自己智商全然被碾压了QAQ~~

    题目大意是:输入n,m,给出n*m(n.m<=100)的不是正规的布满棋子的棋盘,求最少改几个棋子能够使得棋盘正规,正规的棋盘必须是每一个相邻的棋子颜色都不同(仅仅有黑白两种,用0,1取代) 比 ...

  10. cocos2d-x 3.0 final 移植 android

    准备工作 你仅仅要依照上一篇的 cocos2d-x 3.0 final 环境搭建 完毕就能够了 1.编辑proj.android\jni\Android.mk,更改内容例如以下 LOCAL_PATH ...