哪位能告诉我贪吃蛇游戏的全部代码
//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.red);
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.INFORMATION_MESSAGE);
}
else{
JOptionPane.showMessageDialog(f,setOut);
}
}catch(Exception e){
e.printStackTrace();
}
}
if(JI== ZZ){//关于作者
JOptionPane.showMessageDialog(f,"软件作者:申志飞\n地址:四川省绵阳市\nQQ:898513806\nE-mail:shenzhifeiok@126.com","关于作者",JOptionPane.INFORMATION_MESSAGE);
}
if(JI== YX){//关于游戏
JOptionPane.showMessageDialog(f,"贪吃蛇游戏\n游戏版本 V1.0","关于游戏",JOptionPane.INFORMATION_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等语句可以去掉。能正常运行。
百度app贪吃蛇小游戏在哪里玩的
今天给大家介绍一下百度app中的贪吃蛇小游戏在哪里玩的具体操作步骤。
1.解锁手机后,找到桌面上的百度app,打开。
2.进入主页面后,点击页面右下角的我的选项。
3.在打开的个人中心页面,找到游戏大厅选项,打开。
4.如图,进入百度游戏中心页面,点击页面左上角的搜索图标。
5.输入贪吃蛇,进行搜索,在下方的结果中,点击秒玩即可进行游戏了。
以上就是百度app中的贪吃蛇小游戏在哪里玩的具体操作步骤。
真人版贪吃蛇游戏规则
真人版贪吃蛇游戏规则
一、游戏概述
真人版贪吃蛇是一款基于团队协作和策略的游戏。玩家分为“蛇”和“食物”两个角色,通过模拟贪吃蛇的玩法,在限定空间内展开对抗。游戏的目标是“蛇”角色尝试触碰到尽可能多的“食物”,同时避免触碰到边界或自身身体。
二、具体规则
1.游戏场地:设定一个室内或室外场地作为游戏区域,可以是一个封闭的空地或室内体育馆等。
2.角色分配:参与者分为“蛇”和“食物”两个角色。“蛇”的任务是尽可能地触碰到更多的“食物”,而“食物”则需要躲避被“蛇”触碰到。
3.游戏玩法:“蛇”通过团队成员之间的协作,模拟蛇的移动方式来触碰场地上的“食物”。“食物”则通过快速移动和变换位置来躲避“蛇”。
4.胜负判定:当“蛇”触碰到自身身体或游戏场地的边界时,游戏结束。此时,计算“蛇”所触碰到的“食物”数量,数量多的团队获胜。若时间结束仍未发生上述情况,则根据触碰到食物的数量进行评分,决定胜负。
三、注意事项
1.安全第一:确保游戏过程中参与者的人身安全,避免发生碰撞和摔倒等情况。
2.团队协作:游戏需要团队成员之间的紧密协作,通过沟通与合作来完成任务。
3.策略制定:玩家需要根据场地和队友的情况制定相应的策略,提高触碰到食物的概率。
四、游戏准备
游戏前需要准备足够的标记物作为食物,并确定好游戏场地和边界线。确保参与者明确规则并做好准备后,即可开始游戏。通过真人版贪吃蛇游戏,玩家可以在团队协作和策略对抗中体验乐趣。
五、结束阶段计分规则简介:游戏结束后,根据所触碰到的标记物数量进行计分,数量多的团队获胜。同时,也可以根据其他因素进行额外评分或奖励。最终得分将决定游戏的胜负结果。