贪吃蛇游戏免费的 哪位能告诉我贪吃蛇游戏的全部代码

大家好,今天给各位分享贪吃蛇游戏免费的的一些知识,其中也会对哪位能告诉我贪吃蛇游戏的全部代码进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

//package main;

import java.awt.Color;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.BufferedReader;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStreamReader;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

public class TanChiShe implements KeyListener,ActionListener{

/**

*@param args

*/

int max= 300;//蛇长*大值

final int JianJu= 15;//设定蛇的运动网格间距(窗口*大32*28格)

byte fangXiang= 4;//控制蛇的运动方向,初始为右

int time= 500;//蛇的运动间隔时间

int jianTime= 2;//吃一个减少的时间

int x,y;//蛇的运动坐标,按网格来算

int x2,y2;//暂存蛇头的坐标

int jiFenQi= 0;//积分器

boolean isRuned= false;//没运行才可设级别

boolean out= false;//没开始运行?

boolean run= false;//暂停运行

String JiBie="中级";

JFrame f= new JFrame("贪吃蛇 V1.0");

JPanel show= new JPanel();

JLabel Message= new JLabel("级别:中级蛇长:5时间500ms分数:00");

// JButton play= new JButton("开始");

JLabel sheTou;

JLabel shiWu;

JLabel sheWei[]= new JLabel[max];

static int diJi= 4;//第几个下标的蛇尾要被加上

ImageIcon shang= new ImageIcon("tuPian\\isSheTouUp.png");//产生四个上下左右的蛇头图案

ImageIcon xia= new ImageIcon("tuPian\\isSheTouDown.png");

ImageIcon zhuo= new ImageIcon("tuPian\\isSheTouLeft.png");

ImageIcon you= new ImageIcon("tuPian\\isSheTouRight.png");

JMenuBar JMB= new JMenuBar();

JMenu file= new JMenu("开始游戏");

JMenuItem play= new JMenuItem("开始游戏");

JMenuItem pause= new JMenuItem("暂停游戏");

JMenu hard= new JMenu("游戏难度");

JMenuItem gao= new JMenuItem("高级");

JMenuItem zhong= new JMenuItem("中级");

JMenuItem di= new JMenuItem("低级");

JMenu about= new JMenu("关于");

JMenuItem GF= new JMenuItem("※高分榜");

JMenuItem ZZ= new JMenuItem("关于作者");

JMenuItem YX= new JMenuItem("关于游戏");

JMenuItem QK= new JMenuItem("清空记录");

static TanChiShe tcs= new TanChiShe();

public static void main(String[] args){

// TanChiShe tcs= new TanChiShe();

tcs.f();

}

public void f(){

f.setBounds(250,100,515,530);

f.setLayout(null);

f.setAlwaysOnTop(true);//窗口始终保持*前面

f.setBackground(new Color(0,0,0));

f.setDefaultCloseOperation(0);

f.setResizable(false);

f.setVisible(true);

// f.getContentPane().setBackground(Color.BLACK);

f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);//退出程序

}

});

f.setJMenuBar(JMB);

JMB.add(file);

file.add(play);

file.add(pause);

JMB.add(hard);

hard.add(gao);

hard.add(zhong);

hard.add(di);

JMB.add(about);

about.add(GF);

GF.setForeground(Color.blue);

about.add(ZZ);

about.add(YX);

about.add(QK);

QK.setForeground(Color****);

f.add(show);

show.setBounds(0,f.getHeight()-92,f.getWidth(),35);

// show.setBackground(Color.green);

// f.add(play);

// play.setBounds(240,240,80,25);

play.addActionListener(this);

pause.addActionListener(this);

gao.addActionListener(this);

zhong.addActionListener(this);

di.addActionListener(this);

GF.addActionListener(this);

ZZ.addActionListener(this);

YX.addActionListener(this);

QK.addActionListener(this);

show.add(Message);

Message.setForeground(Color.blue);

f.addKeyListener(this);

// show.addKeyListener(this);

play.addKeyListener(this);

sheChuShi();

}

public void sheChuShi(){//蛇初始化

sheTou= new JLabel(you);//用向右的图来初始蛇头

f.add(sheTou);

sheTou.setBounds(JianJu*0,JianJu*0,JianJu,JianJu);

// System.out.println("ishere");

shiWu= new JLabel("■");

f.add(shiWu);

shiWu.setBounds(10*JianJu,10*JianJu,JianJu,JianJu);

for(int i=0;i<=diJi;i++){

sheWei[i]= new JLabel("■");

f.add(sheWei[i]);

sheWei[i].setBounds(-1*JianJu,0*JianJu,JianJu,JianJu);

}

while(true){

if(out== true){

yunXing();

break;

}

try{

Thread.sleep(200);

}catch(Exception ex){

ex.printStackTrace();

}

}

}

public void sheJiaChang(){//蛇的长度增加

if(diJi< max){

sheWei[++diJi]= new JLabel(new ImageIcon("tuPian\\isSheWei.jpg"));

f.add(sheWei[diJi]);

sheWei[diJi].setBounds(sheWei[diJi-1].getX(),sheWei[diJi-1].getY(),JianJu,JianJu);

// System.out.println("diJi"+diJi);

}

}

public void pengZhuanJianCe(){//检测蛇的碰撞情况

if(sheTou.getX()<0|| sheTou.getY()<0||

sheTou.getX()>f.getWidth()-15|| sheTou.getY()>f.getHeight()-105){

gameOver();

// System.out.println("GameOVER");

}

if(sheTou.getX()== shiWu.getX()&& sheTou.getY()== shiWu.getY()){

out: while(true){

shiWu.setLocation((int)(Math.random()*32)*JianJu,(int)(Math.random()*28)*JianJu);

for(int i=0;i<=diJi;i++){

if(shiWu.getX()!= sheWei[i].getX()&& shiWu.getY()!=sheWei[i].getY()

&& sheTou.getX()!=shiWu.getX()&& sheTou.getY()!= shiWu.getY()){//如果食物不在蛇身上则退出循环,产生食物成功

break out;

}

}

}

sheJiaChang();

// System.out.println("吃了一个");

if(time>100){

time-= jianTime;

}

else{}

Message.setText("级别:"+JiBie+"蛇长:"+(diJi+2)+"时间:"+time+"ms分数:"+(jiFenQi+=10)+"");

}

for(int i=0;i<=diJi;i++){

if(sheTou.getX()== sheWei[i].getX()&& sheTou.getY()== sheWei[i].getY()){

gameOver();

// System.out.println("吃到尾巴了");

}

}

}

public void yunXing(){

while(true){

while(run){

if(fangXiang== 1){//上

y-=1;

}

if(fangXiang== 2){//下

y+=1;

}

if(fangXiang== 3){//左

x-=1;

}

if(fangXiang== 4){//右

x+=1;

}

x2= sheTou.getX();

y2= sheTou.getY();

sheTou.setLocation(x*JianJu,y*JianJu);//设置蛇头的坐标网格数*间隔

for(int i=diJi;i>=0;i--){

if(i==0){

sheWei[i].setLocation(x2,y2);

// System.out.println(i+""+sheTou.getX()+""+sheTou.getY());

}

else{

sheWei[i].setLocation(sheWei[i-1].getX(),sheWei[i-1].getY());

// System.out.println(i+""+sheWei[i].getX()+""+sheWei[i].getY());

}

}

pengZhuanJianCe();

try{

Thread.sleep(time);

}catch(Exception e){

e.printStackTrace();

}

}

Message.setText("级别:"+JiBie+"蛇长:"+(diJi+2)+"时间:"+time+"ms分数:"+(jiFenQi+=10)+"");

try{

Thread.sleep(200);

}catch(Exception e){

e.printStackTrace();

}

}

}

public void gameOver(){//游戏结束时处理

int in= JOptionPane.showConfirmDialog(f,"游戏已经结束!\n是否要保存分数","提示",JOptionPane.YES_NO_OPTION);

if(in== JOptionPane.YES_OPTION){

// System.out.println("YES");

String s= JOptionPane.showInputDialog(f,"输入你的名字:");

try{

FileInputStream fis= new FileInputStream("GaoFen.ini");//先把以前的数据读出来加到写的数据前

InputStreamReader isr= new InputStreamReader(fis);

BufferedReader br= new BufferedReader(isr);

String s2,setOut="";

while((s2=br.readLine())!= null){

setOut=setOut+s2+"\n";

}

FileOutputStream fos= new FileOutputStream("GaoFen.ini");//输出到文件流

s= setOut+s+":"+jiFenQi+"\n";

fos.write(s.getBytes());

}catch(Exception e){}

}

System.exit(0);

}

public void keyTyped(KeyEvent arg0){

// TODO自动生成方法存根

}

public void keyPressed(KeyEvent arg0){

// System.out.println(arg0.getSource());

if(arg0.getKeyCode()== KeyEvent.VK_UP){//按上下时方向的值相应改变

if(fangXiang!= 2){

fangXiang= 1;

// sheTou.setIcon(shang);//设置蛇的方向

}

// System.out.println("UP");

}

if(arg0.getKeyCode()== KeyEvent.VK_DOWN){

if(fangXiang!= 1){

fangXiang= 2;

// sheTou.setIcon(xia);

}

// System.out.println("DOWN");

}

if(arg0.getKeyCode()== KeyEvent.VK_LEFT){//按左右时方向的值相应改变

if(fangXiang!= 4){

fangXiang= 3;

// sheTou.setIcon(zhuo);

}

// System.out.println("LEFT");

}

if(arg0.getKeyCode()== KeyEvent.VK_RIGHT){

if(fangXiang!= 3){

fangXiang= 4;

// sheTou.setIcon(you);

}

// System.out.println("RIGHT");

}

}

public void keyReleased(KeyEvent arg0){

// TODO自动生成方法存根

}

public void actionPerformed(ActionEvent arg0){

// TODO自动生成方法存根

JMenuItem JI=(JMenuItem)arg0.getSource();

if(JI== play){

out= true;

run= true;

isRuned= true;

gao.setEnabled(false);

zhong.setEnabled(false);

di.setEnabled(false);

}

if(JI== pause){

run= false;

}

if(isRuned== false){//如果游戏还没运行,才可以设置级别

if(JI== gao){

time= 200;

jianTime= 1;

JiBie="高级";

Message.setText("级别:"+JiBie+"蛇长:"+(diJi+2)+"时间:"+time+"ms分数:"+jiFenQi);

}

if(JI== zhong){

time= 400;

jianTime= 2;

JiBie="中级";

Message.setText("级别:"+JiBie+"蛇长:"+(diJi+2)+"时间:"+time+"ms分数:"+jiFenQi);

}

if(JI== di){

time= 500;

jianTime= 3;

JiBie="低级";

Message.setText("级别:"+JiBie+"蛇长:"+(diJi+2)+"时间:"+time+"ms分数:"+jiFenQi);

}

}

if(JI== GF){

try{

FileInputStream fis= new FileInputStream("GaoFen.ini");

InputStreamReader isr= new InputStreamReader(fis);

BufferedReader br= new BufferedReader(isr);

String s,setOut="";

while((s=br.readLine())!= null){

setOut=setOut+s+"\n";

}

if(setOut.equals("")){

JOptionPane.showMessageDialog(f,"暂无保存记录!","高分榜",JOptionPane*****RMATION_MESSAGE);

}

else{

JOptionPane.showMessageDialog(f,setOut);

}

}catch(Exception e){

e.printStackTrace();

}

}

if(JI== ZZ){//关于作者

JOptionPane.showMessageDialog(f,"软件作者:申志飞\n地址:四川省绵阳市\nQQ:898513806\nE-mail:shenzhifeiok@126****","关于作者",JOptionPane*****RMATION_MESSAGE);

}

if(JI== YX){//关于游戏

JOptionPane.showMessageDialog(f,"贪吃蛇游戏\n游戏版本 V1.0","关于游戏",JOptionPane*****RMATION_MESSAGE);

}

if(JI== QK){

try{

int select= JOptionPane.showConfirmDialog(f,"确实要清空记录吗?","清空记录",JOptionPane.YES_OPTION);

if(select== JOptionPane.YES_OPTION){

String setOut="";

FileOutputStream fos= new FileOutputStream("GaoFen.ini");//输出到文件流

fos.write(setOut.getBytes());

}

}catch(Exception ex){}

}

}

}

//是我自己写的,本来里面有图片的,但无法上传,所以把图片去掉了,里面的ImageIcon等语句可以去掉。能正常运行。

**版贪吃蛇游戏规则

一、游戏概述

**版贪吃蛇是一款基于团队协作和策略的游戏。玩家分为“蛇”和“食物”两个角色,通过模拟贪吃蛇的玩法,在限定空间内展开对抗。游戏的目标是“蛇”角色尝试触碰到尽可能多的“食物”,同时避免触碰到边界或自身身体。

二、具体规则

1.游戏场地:设定一个室内或室外场地作为游戏区域,可以是一个封闭的空地或室内体育馆等。

2.角色分配:参与者分为“蛇”和“食物”两个角色。“蛇”的任务是尽可能地触碰到更多的“食物”,而“食物”则需要躲避被“蛇”触碰到。

3.游戏玩法:“蛇”通过团队成员之间的协作,模拟蛇的移动方式来触碰场地上的“食物”。“食物”则通过快速移动和变换位置来躲避“蛇”。

4.胜负判定:当“蛇”触碰到自身身体或游戏场地的边界时,游戏结束。此时,计算“蛇”所触碰到的“食物”数量,数量多的团队获胜。若时间结束仍未发生上述情况,则根据触碰到食物的数量进行评分,决定胜负。

三、注意事项

1.安全**:确保游戏过程中参与者的****,避免发生碰撞和摔倒等情况。

2.团队协作:游戏需要团队成员之间的紧密协作,通过沟通与合作来完成任务。

3.策略制定:玩家需要根据场地和队友的情况制定相应的策略,提高触碰到食物的概率。

四、游戏准备

游戏前需要准备足够的标记物作为食物,并确定好游戏场地和边界线。确保参与者明确规则并做好准备后,即可开始游戏。通过**版贪吃蛇游戏,玩家可以在团队协作和策略对抗中体验乐趣。

五、结束阶段计分规则简介:游戏结束后,根据所触碰到的标记物数量进行计分,数量多的团队获胜。同时,也可以根据其他因素进行额外评分或奖励。*终得分将决定游戏的胜负结果。

幼儿园的体育游戏有很多种类,其中*受小朋友欢迎的就是贪吃蛇了,今天我们就来介绍一下贪吃蛇游戏以及规则:

【游戏玩法】:

在空旷的场地摆好障碍物,让小朋友分成两队,两名名小朋友当蛇头绕着障碍走,遇到场地中的小朋友轻轻摸下头,被摸头的小朋友随即跟到蛇头后面,继续绕障碍物走,直至将所有的小朋友邀请到队伍中来走出场地一队为胜。

【游戏规则】:

1、幼儿要一个跟着一个走不能掉队。

2、行走过程中不能碰到障碍物,蛇头不能碰到蛇身、蛇尾,碰到者将退出队伍回到场地,等待再次蛇头邀请。

相关文章
  • 问道好玩吗 问道有什么好玩的

    大家好,感谢邀请,今天来为大家分享一下问道好玩吗的问题,以及和问道有什么好玩的的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧! 问题一:问道有什么好玩的玩问道有时间你什么也不用花我从1级玩到140级还没花过一毛钱 玩这游戏主要是要有大量时间,我一般玩起来一天起码12小时左右,多练几个号,全部到130了那样*钱快

  • 米霍克有什么技能 海贼王鹰眼米霍克的技能

    其实米霍克有什么技能的问题并不复杂,但是又很多的朋友都不太了解海贼王鹰眼米霍克的技能,因此呢,今天小编就来为大家分享米霍克有什么技能的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧! 黑刀·夜 所属系列:无上大快刀十二工 “乱刃重花丁字,号称“世界*强之黑刀”。索隆说是一把柔软的刀,米霍克能以夜释放强力且长距离的斩击,动画中斩击的颜色为绿色。 十字架刀

  • 萨维斯攻略 0翡翠梦魇萨维斯怎么打

    大家好,今天来为大家解答萨维斯攻略这个问题的一些问题点,包括0翡翠梦魇萨维斯怎么打也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

  • 炉石传说纳克萨玛斯攻略 炉石传说纳克萨玛斯军事区英雄模式怎么过及通关攻略

    大家好,今天小编来为大家解答以下的问题,关于炉石传说纳克萨玛斯攻略,炉石传说纳克萨玛斯军事区英雄模式怎么过及通关攻略这个很多人还不知道,现在让我们一起来看看吧! 保证自己场上有大量嘲讽,并且这些嘲讽随从的血量一定要超过4,也就是说这些随从不能被BOSS的一个技能就消灭掉。因为BOSS只要有机会使用符文剑砍到你脸一下,那么你就已经死掉了,后续BOSS的英雄技能会完全打脸,无视其他随从

  • 冰结师觉醒 dnf冰结师的觉醒任务是什么

    大家好,如果您还对冰结师觉醒不太了解,没有关系,今天就由本站为大家分享冰结师觉醒的知识,包括dnf冰结师的觉醒任务是什么的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧! 1、达到Lv50,找导师接觉醒任务。 2、原难度是通关死亡之塔,现在韩服只需30层死亡之塔即可。死亡之塔改版后进入级别为50级。完成这个任务送觉醒武器。 3

  • dnf11 DNF强化怎么上11

    很多朋友对于dnf11和DNF强化怎么上11不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧! 上加8的方法]准备几件+5的布衣, 现在不要急着丢,换频道,然后把+5的布衣一件一件丢进去, 只要出现有一把失败回4时,就可以丢+7的主武器了,凯利会告诉你成功了[这个方法可以说100*成功] 三: [上加9的方法]准备好几件+4的布衣,换频道来,把+4的布衣一件一件丢进去

  • 挂机打怪升级的手游 可以挂机打怪升级的手游有哪些2023

    大家好,今天小编来为大家解答以下的问题,关于挂机打怪升级的手游,可以挂机打怪升级的手游有哪些2023这个很多人还不知道,现在让我们一起来看看吧! 下面小编为大家带来几款好玩的挂机游戏,可以在玩家繁忙的时候为玩家自动挂机打怪,掌握不同的乐趣,发现不同的内容进行体验,**可以为玩家带来丰富的体验,掌握不同的方式来进行游玩,通过挂机来获取不同的资源进行体验,发现不一样的内容来进行体验

  • 狼神 神话中的狼神叫什么名字

    大家好,狼神相信很多的网友都不是很明白,包括神话中的狼神叫什么名字也是一样,不过没有关系,接下来就来为大家分享关于狼神和神话中的狼神叫什么名字的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧! 神话中的狼神叫乌洛波洛斯。 详细解释如下: 一、狼神乌洛波洛斯的概念 乌洛波洛斯是众多神话传说中的狼神,形象上通常描绘为拥有神秘力量和超凡智慧的狼。在不同文化背景下

  • 战地2142免cd补丁 求个战地2142的单机武器解锁补丁

    大家好,今天小编来为大家解答以下的问题,关于战地2142免cd补丁,求个战地2142的单机武器解锁补丁这个很多人还不知道,现在让我们一起来看看吧! BF2142里面有的武器是要升级后才能用的,单机解锁模组就是**了升级,令你不用升级就能使用这些**武器. BF2142中的单机地图都是15个BOT的地图,而且是只允许玩家在地图中部分范围活动,而原版大地图单机模组就是将地图全开

  • 机动风暴 机动风暴三部曲顺序

    大家好,机动风暴相信很多的网友都不是很明白,包括机动风暴三部曲顺序也是一样,不过没有关系,接下来就来为大家分享关于机动风暴和机动风暴三部曲顺序的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧! 顺序是机动风暴、武装风暴、星战风暴1、机动风暴:是三部曲的**部,讲述的是一名怀有将军梦的普通高三**,在一日被流星砸中后,生活改变,走上了一条不平凡的道路。 2、武装风暴