百度360必应搜狗淘宝本站头条
当前位置:资源首页 > 电脑系统 > 正文

java小游戏源代码(Java 小游戏源代码合集)

swdejp 2026-06-26 07:40 132 浏览 0 评论

一、贪吃蛇

方向键控制,吃到食物变长,撞墙或撞自己结束。空格暂停,R 键重开。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.LinkedList;
import java.util.Random;

public class Snake extends JPanel implements ActionListener {
    static final int SIZE = 25, COLS = 30, ROWS = 22;
    LinkedList<Point> snake = new LinkedList<>();
    Point food;
    char dir = 'R';
    boolean run = true, pause = false;
    int score;
    Random rnd = new Random();

    Snake() {
        setPreferredSize(new Dimension(SIZE*COLS, SIZE*ROWS));
        setBackground(new Color(30,30,30));
        setFocusable(true);
        int cx=COLS/2, cy=ROWS/2;
        for(int i=2;i>=0;i--) snake.add(new Point(cx-i,cy));
        spawn();
        addKeyListener(new KeyAdapter(){
            public void keyPressed(KeyEvent e){
                int k=e.getKeyCode();
                if(k==KeyEvent.VK_UP||k==KeyEvent.VK_W) {if(dir!='D')dir='U';}
                if(k==KeyEvent.VK_DOWN||k==KeyEvent.VK_S) {if(dir!='U')dir='D';}
                if(k==KeyEvent.VK_LEFT||k==KeyEvent.VK_A) {if(dir!='R')dir='L';}
                if(k==KeyEvent.VK_RIGHT||k==KeyEvent.VK_D) {if(dir!='L')dir='R';}
                if(k==KeyEvent.VK_SPACE) pause=!pause;
                if(k==KeyEvent.VK_R) restart();
            }
        });
        new Timer(100,this).start();
    }

    void spawn(){ do{food=new Point(rnd.nextInt(COLS),rnd.nextInt(ROWS));}while(snake.contains(food)); }
    void restart(){ snake.clear(); int cx=COLS/2,cy=ROWS/2;
        for(int i=2;i>=0;i--) snake.add(new Point(cx-i,cy));
        dir='R';run=true;pause=false;score=0;spawn(); }
    public void actionPerformed(ActionEvent e){
        if(!run||pause)return;
        Point h=snake.getFirst(); int nx=h.x,ny=h.y;
        switch(dir){case'U':ny--;break;case'D':ny++;break;case'L':nx--;break;case'R':nx++;}
        if(nx<0||nx>=COLS||ny<0||ny>=ROWS){run=false;((Timer)e.getSource()).stop();repaint();return;}
        Point nh=new Point(nx,ny);
        if(snake.contains(nh)&&!nh.equals(snake.getLast())){run=false;((Timer)e.getSource()).stop();repaint();return;}
        snake.addFirst(nh);
        if(nh.equals(food)){score+=10;spawn();}else snake.removeLast();
        repaint();
    }
    protected void paintComponent(Graphics g){
        super.paintComponent(g);
        g.setColor(new Color(45,45,45));
        for(int x=0;x<=COLS;x++)g.drawLine(x*SIZE,0,x*SIZE,SIZE*ROWS);
        for(int y=0;y<=ROWS;y++)g.drawLine(0,y*SIZE,SIZE*COLS,y*SIZE);
        g.setColor(new Color(255,80,80));
        g.fillOval(food.x*SIZE+2,food.y*SIZE+2,SIZE-4,SIZE-4);
        for(int i=0;i<snake.size();i++){ Point p=snake.get(i);
            if(i==0)g.setColor(new Color(100,200,100));
            else{int gv=180-Math.min(i*3,100);g.setColor(new Color(60,gv,60));}
            g.fillRoundRect(p.x*SIZE+1,p.y*SIZE+1,SIZE-2,SIZE-2,6,6);
        }
        g.setColor(new Color(255,255,255,180));g.setFont(new Font("",0,14));
        g.drawString("得分:"+score,12,22);
        if(pause)g.drawString("[暂停]",SIZE*COLS/2-30,22);
        if(!run){g.setColor(new Color(0,0,0,160));g.fillRect(0,0,SIZE*COLS,SIZE*ROWS);
            g.setColor(Color.WHITE);g.setFont(new Font("",1,28));g.drawString("游戏结束",SIZE*COLS/2-56,SIZE*ROWS/2-10);
            g.setFont(new Font("",0,16));g.drawString("按R重新开始",SIZE*COLS/2-48,SIZE*ROWS/2+20);}
    }
    public static void main(String[]a){SwingUtilities.invokeLater(()->{
        JFrame f=new JFrame("贪吃蛇");f.setDefaultCloseOperation(3);f.setResizable(false);
        Snake s=new Snake();f.add(s);f.pack();f.setLocationRelativeTo(null);f.setVisible(true);
    });}
}


相关推荐

怎么样设置电脑开机密码

怎么样设置电脑开机密码,打开设置,进入账户,点登录选项,选择密码并添加。输入新密码、确认密码和提示后保存,下次开机就要输入。别把提示写成真正密码,别人看到提示就能猜出来。公司电脑改密码要按Ctrl+A...

u盘格式化有写保护怎么办

U盘格式化提示写保护,先看U盘侧边有没有小锁扣,有就拨到解锁位置。没有锁扣时,按Win+R输入diskpart,依次输入listdisk、selectdisk编号、attributesdisk...

电脑硬盘如何分盘

右键此电脑,点管理,进入磁盘管理。右键已有分区选压缩卷,输入要分出的容量,再在未分配空间上右键新建简单卷。分盘前把重要文件拷走,别动带系统、恢复字样的小分区,避免开不了机。

电脑没有声音怎么办

电脑没声音,先点右下角喇叭,确认输出设备选的是扬声器或耳机。再右键开始菜单进设备管理器,查看声音设备有没有感叹号。驱动异常就卸载设备并重启,系统会重新安装声卡驱动。

电脑开不了机怎么办如何处理

电脑开不了机,先看电源灯。完全不亮就换插座、检查电源线;亮灯黑屏就拔掉U盘和外接设备再开。能看到品牌画面进不了桌面,连续强制关机三次,进自动修复后点启动修复,资料盘先别格式化。

u盘不能识别了怎么修复

U盘不能识别了怎么修复,先换一个接口,台式机优先插主机后面。还是没反应,右键此电脑进管理,打开磁盘管理,看有没有无盘符的磁盘。有就更改盘符。连容量都不显示,多半是硬件损坏,别反复格式化。

如何驱动打印机在电脑上

如何驱动打印机在电脑上,先把打印机接好电源和数据线,再打开设置里的打印机和扫描仪,点添加设备。系统找不到时,去打印机品牌官网下载对应型号驱动。别随便装通用驱动,能打印不代表扫描功能也能用。

网页无法访问怎么办

网页无法访问,先换一个网站测试。所有网页都打不开,按Win+R输入cmd,执行ipconfig/flushdns清理缓存,再重启路由器。只有一个网站打不开,就换浏览器或清理该网站缓存。

如何安装音频设备

如何安装音频设备,先把耳机、音箱或外置声卡接到电脑,再进设置里的声音页面选择输出设备。设备不显示,就打开设备管理器,更新声卡驱动。装好后播放音乐测试。插错孔最常见,台式机绿色口通常接音箱。

windows7还能用吗

Windows7还能开机运行旧软件,但联网使用安全风险高,很多新浏览器和驱动已经不再适配。只做离线打印、旧设备控制可以继续用;经常上网、登录网银或保存重要资料,换到新系统更稳。

如何用u盘重装系统

如何用U盘重装系统,先把U盘做成启动盘,再把电脑重要资料备份到别的盘。插上U盘开机,连续按F12或Esc选择U盘启动。进入安装界面后选系统盘格式化,再点下一步。中途别拔U盘,也别断电。

雨林木风系统安全吗

雨林木风系统安全吗,拿来临时装机能用,但不适合放重要资料的电脑。它属于第三方封装系统,里面改过哪些设置、带了哪些软件,用户很难看清。办公、网银、存照片的电脑,尽量用原版系统镜像,少碰来路不明的安装包。

苹果越狱有什么坏处吗

苹果越狱有什么坏处吗,主要是安全下降、系统更新麻烦,支付和银行类软件还会报风险。越狱后能装插件,但插件来源乱,手机卡顿、耗电、闪退都更常见。只是想换主题或装小工具,不值得拿账号安全去换。

如何重装系统最简单的方法

如何重装系统最简单的方法,就是用启动U盘安装。先把桌面和C盘资料拷走,再插上U盘,开机连续按F12或Esc选择U盘启动。进入安装界面后选系统盘格式化,点下一步等待完成。中途别断电,也别拔U盘。

电子邮件地址怎么写

电子邮件地址按用户名加邮箱后缀来写,中间用@连接,例如QQ邮箱就是QQ号加邮箱后缀。不要把空格、中文标点写进去。填表时复制邮箱地址最稳,手打时容易把点号和@写错。

取消回复欢迎 发表评论:

请填写验证码