`
宁辉522
  • 浏览: 15642 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

贪吃蛇小程序

阅读更多
贪吃蛇小程序
自己已经运行过。没有问题!
第一个文件ShellMain.java
import javax.swing.JFrame;

public class ShellMain extends JFrame {
    public ShellWin win;
    public ShellMain()
    {
    this.win=new ShellWin();
    this.setTitle("贪吃蛇");
    this.setSize(800,800);
    this.setVisible(true);
    this.add(win);
    this.setLocation(200, 100);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
public static void main(String[] args) {
new ShellMain();
}

}
第二个文件ShellWin.java
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.IOException;
import java.text.BreakIterator;

import javax.crypto.spec.IvParameterSpec;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.text.html.CSS;

public class ShellWin extends JPanel implements ActionListener,Runnable,KeyListener{
    JButton startGame=new JButton("开始");
    JButton stopGame=new JButton("停止");
    int fang;
    int chang;
    int fen=0;
    int[] xs=new int[400];
    int[] ys=new int[400];
    int douX;int douY;
    Thread nThread;
    public ShellWin()
    {
    nThread=new Thread(this);
       this.add(startGame);this.add(stopGame);
       this.startGame.addActionListener(this);
       this.addKeyListener(this);
       造蛇();
       造豆();
    }
    public void paintComponent(Graphics g)
    {
    super.paintComponent(g);
    g.drawString("分数:"+fen, 50, 50);
    g.drawRect(100,100, 600, 600);
    显示蛇(g);
    显示豆(g);
    }
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==startGame)
{
this.requestFocus();
nThread.start();
   this.repaint();
}
}
//能不能吃豆,能不能死
void 死()
{
System.out.println("死了!");
}
void 吃()
{
chang++;
this.fen+=100;
造豆();
}
boolean 能出界死吗()
{
if(xs[0]==70||xs[0]==700||ys[0]==70||ys[0]==700)
{
return true;
}
return false;
}
void 转向(int 新方向)
{
  if(fang%2!=新方向%2)
  {
  fang=新方向;
  }
}
boolean 吃自己了吗()
{
for (int i = 1; i < chang; i++) {
if(xs[0]==xs[i]&&ys[0]==ys[i])
{
return true;
}
}
return false;
}
boolean 能吃豆吗()
{
if(xs[0]==douX&&ys[0]==douY)
{
return true;
}
return false;
}
void 造蛇()
{
fang=2;chang=5;
for (int i = 0; i < chang; i++) {
xs[i]=400;
ys[i]=400+30*i;
}
}
void 造豆()
{
   douX=30*(int)(Math.random()*19)+100;
   douY=30*(int)(Math.random()*19)+100;
   for (int i = 0; i < chang; i++) {
   if(xs[i]==douX&&ys[i]==douY)
   {
   造豆();
   return;
   }
   }
}
    void 显示豆(Graphics g)
    {
    g.setColor(Color.RED);
    g.fillOval(douX, douY, 30, 30);
    }
void 爬()
{
for (int i = chang-1; i >0; i--) {
xs[i]=xs[i-1];
ys[i]=ys[i-1];
}
switch (fang) {
case 1:
xs[0]=xs[0]+30;
break;
case 2:
ys[0]=ys[0]-30;
break;
        case 3:
        xs[0]=xs[0]-30;
break;
case 4:
ys[0]=ys[0]+30;
break;
default:
break;
}
}
void 显示蛇(Graphics g)
{
for (int i = 0; i < chang; i++) {
g.setColor(Color.BLUE);
g.drawRect(xs[i], ys[i], 30, 30);
}
}
@Override
public void run() {
while(true)
{
try {
if(能吃豆吗())
{
   吃();
}
if(能出界死吗())
{
死();
return;
}
if(吃自己了吗())
{
死();
return;
}
爬();
Thread.sleep(80);
repaint();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
void 转向()
{

}
@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_UP:
转向(2);
break;
case KeyEvent.VK_DOWN:
转向(4);
break;
case KeyEvent.VK_LEFT:
转向(3);
break;
case KeyEvent.VK_RIGHT:
转向(1);
break;
default:
break;
}
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub

}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub

}
}

2
7
分享到:
评论

相关推荐

    贪吃蛇小程序源码

    【贪吃蛇小程序源码】是一款基于微信小程序开发的简单而有趣的游戏应用。这款源码提供了完整的代码结构,便于开发者直接部署和使用,无需复杂的配置和设计,是学习微信小程序开发和游戏编程的一个良好起点。 在微信...

    stm32f103 贪吃蛇小程序

    这个贪吃蛇小程序是利用STM32F103的性能开发的一个有趣的项目,旨在展示如何在嵌入式系统上实现游戏功能。 首先,我们要理解STM32F103的基本结构。它拥有高速的闪存、SRAM存储器,以及一系列的外设接口,如UART、...

    C语言OpenGL贪吃蛇小程序

    **C语言OpenGL贪吃蛇小程序**是一门基于C语言实现的、使用OpenGL图形库开发的简单游戏项目。OpenGL是开放图形库,是一个跨语言、跨平台的编程接口,用于渲染2D、3D矢量图形。这个小程序旨在帮助学习者理解和掌握...

    vc 贪吃蛇小程序

    《VC贪吃蛇小程序详解与开发实践》 贪吃蛇是一款经典的电子游戏,以其简单易上手、趣味性十足的特点深受玩家喜爱。在VC++环境下,利用MFC(Microsoft Foundation Classes)框架,我们可以构建出一个自己的贪吃蛇...

    VC 贪吃蛇小程序源代码

    【VC 贪吃蛇小程序源代码】是一个基于Visual C++(VC)开发的小型游戏,它实现了经典的“贪吃蛇”玩法。贪吃蛇游戏是计算机游戏中的一种经典,玩家控制一条蛇在有限的区域内移动,通过吃食物来增长长度,同时避免撞...

    基于C语言的贪吃蛇小程序

    本项目“基于C语言的贪吃蛇小程序”是为初学者设计的一个实践项目,旨在帮助他们通过实现一个经典游戏——贪吃蛇,来巩固C语言的基础知识和编程思维。 贪吃蛇游戏是一款简单而有趣的电子游戏,玩家需要控制一条蛇在...

    C语言贪吃蛇小程序代码

    一个C语言写的贪吃蛇代码 不是EXE程序 使用时需要自己生成程序运行

    贪吃蛇小程序~

    在这个“贪吃蛇小程序”中,开发者使用了C++编程语言,并且运用了链表的数据结构来实现游戏逻辑。 链表是一种线性数据结构,它的每个元素(节点)包含数据和指向下一个节点的指针。在贪吃蛇游戏中,链表非常适合...

    Java做贪吃蛇小程序

    本项目"Java做贪吃蛇小程序"旨在利用Java语言实现一个经典的休闲游戏——贪吃蛇,对于初学者来说,这是一个很好的实战练习,能够帮助理解和运用Java的基础知识,同时也可锻炼逻辑思维和问题解决能力。贪吃蛇游戏虽然...

    MFC 贪吃蛇 小程序

    《MFC贪吃蛇小程序深度解析》 在编程领域,MFC(Microsoft Foundation Classes)是微软提供的一套C++库,用于构建Windows应用程序。而贪吃蛇游戏,作为一款经典的休闲游戏,深受广大程序员和玩家的喜爱。将MFC与...

    C语言版贪吃蛇小程序

    使用C语言开发的贪吃蛇小游戏,贪吃蛇撞墙会死亡,本游戏一共分为4个关卡,每个关卡都有不同的规则

    简单贪吃蛇小程序

    void SnackColor_Fresh (void) { cur = lhead-&gt;next; sEt_Color(SNACK_COLOR); while(cur-&gt;next!=NULL) { sEt_Cursor(cur-&gt;coord.X,cur-&gt;coord.Y); putchar(BL); cur = cur-&gt;next;...}//蛇身颜色的刷新

    贪吃蛇小程序winform、C#|贪吃蛇

    【贪吃蛇小程序——WinForm与C#的完美结合】 贪吃蛇是一款经典的电子游戏,其简单易上手的操作和不断挑战自我的玩法深受玩家喜爱。在这个项目中,我们将使用C#编程语言和Windows Forms(WinForm)框架来实现一个...

    简单的verilog贪吃蛇小程序

    在“简单的Verilog贪吃蛇小程序”中,我们看到Verilog被用来实现一个游戏——贪吃蛇。这个程序的核心是通过Verilog代码来构建电路逻辑,使得游戏的运行能够在硬件平台上得以实现。 【贪吃蛇游戏逻辑】 贪吃蛇游戏...

    window下利用C语言编写的贪吃蛇小程序

    【标题】:“window下利用C语言编写的贪吃蛇小程序”揭示了这是一个使用C语言编程在Windows操作系统环境下实现的经典游戏——贪吃蛇。C语言是一种基础且强大的编程语言,适用于开发系统级软件、游戏和各种应用程序。...

    Java实现贪吃蛇小程序

    下载后是一个txt,txt内有百度云链接和直链 包含完整代码,是用eclipse写的,下载即可运行,当时是看了一个机构的网文,但是网文有点问题,所以按照思路自己撸了一个,新手可以参考下 如有问题,请联系邮箱:aliulf@...

Global site tag (gtag.js) - Google Analytics