为了单机打游戏不下载!!!

嘿嘿,“华容道”是一款比较老的游戏了,考验人的智力和逻辑思维。作为一款经典的游戏,各部分的设计都非常巧妙。
本文只实现了最简单的华容道,不喜勿喷!!!
废话不多说,上代码!!!

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Person extends JButton implements FocusListener{int number;Color c=new Color(255,245,170);Font font=new Font("宋体",Font.BOLD,12);Person(int number,String s) {super(s);setBackground(c);setFont(font);this.number=number;c=getBackground();addFocusListener(this);}public void focusGained(FocusEvent e) {setBackground(Color.red);}public void focusLost(FocusEvent e) {setBackground(c);}}

这一块主要是文字部分设计部分,懂得人可以自行修改。嘻嘻。

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Hua_Rong_Road extends JFrame implements MouseListener,KeyListener,ActionListener{Person person[]=new Person[10];JButton left,right,above,below;JButton restart=new JButton("重新开始");public Hua_Rong_Road() {init();setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setBounds(100,100,320,500);setVisible(true);validate();}public void init() {setLayout(null); add(restart);restart.setBounds(100,320,120,35);restart.addActionListener(this);String name[]={"曹操","关羽","张","刘","周","黄","兵","兵","兵","兵"};for(int k=0;k<name.length;k++) {person[k]=new Person(k,name[k]);person[k].addMouseListener(this);person[k].addKeyListener(this);add(person[k]);}person[0].setBounds(104,54,100,100); person[1].setBounds(104,154,100,50); person[2].setBounds(54, 154,50,100); person[3].setBounds(204,154,50,100); person[4].setBounds(54, 54, 50,100); person[5].setBounds(204, 54, 50,100);  person[6].setBounds(54,254,50,50);  person[7].setBounds(204,254,50,50); person[8].setBounds(104,204,50,50); person[9].setBounds(154,204,50,50); person[9].requestFocus();left=new JButton();  right=new JButton();above=new JButton(); below=new JButton();add(left); add(right);add(above); add(below);left.setBounds(49,49,5,260);right.setBounds(254,49,5,260);above.setBounds(49,49,210,5);below.setBounds(49,304,210,5);validate();} public void keyTyped(KeyEvent e){}public void keyReleased(KeyEvent e){}public void keyPressed(KeyEvent e) {Person man=(Person)e.getSource();if(e.getKeyCode()==KeyEvent.VK_DOWN)go(man,below);if(e.getKeyCode()==KeyEvent.VK_UP)go(man,above);if(e.getKeyCode()==KeyEvent.VK_LEFT)go(man,left);if(e.getKeyCode()==KeyEvent.VK_RIGHT)go(man,right);}public void mousePressed(MouseEvent e){Person man=(Person)e.getSource();int x=-1,y=-1;x=e.getX();y=e.getY();int w=man.getBounds().width;int h=man.getBounds().height;if(y>h/2)go(man,below); if(y<h/2)go(man,above);if(x<w/2)go(man,left);if(x>w/2)go(man,right);}public void mouseReleased(MouseEvent e) {}public void mouseEntered(MouseEvent e)  {}public void mouseExited(MouseEvent e)   {}public void mouseClicked(MouseEvent e)  {}public void go(Person man,JButton direction) {boolean move=true;Rectangle manRect=man.getBounds();int x=man.getBounds().x;int y=man.getBounds().y;if(direction==below)y=y+50;else if(direction==above)y=y-50;else if(direction==left)x=x-50;else if(direction==right)x=x+50;manRect.setLocation(x,y);Rectangle directionRect=direction.getBounds();for(int k=0;k<10;k++) {Rectangle personRect=person[k].getBounds();if((manRect.intersects(personRect))&&(man.number!=k))move=false;}if(manRect.intersects(directionRect))move=false;if(move==true)man.setLocation(x,y);}public void actionPerformed(ActionEvent e) {dispose(); new Hua_Rong_Road();}
}

华容道的主体部分,没有设计多余的窗口,只是为了打游戏,嘻嘻。

public class keep {public static void main(String[] args) {new Hua_Rong_Road();}
}

以上便是华容道的全部内容。因为只有一关,所以。。。没所以了,哈哈,祝君玩的欢乐。

java游戏——华容道相关推荐

  1. java华容道代码_华容道Java游戏源代码JAVA游戏源码下载

    鉴于JAVA的华容道游戏源码,希望对研讨JAVA游戏的朋友有所帮助.最初运行于西门子是非屏手机上. 华容道Java游戏源代码 (1 folders, 2 files, 1.38 KB, 76.13 K ...

  2. Java游戏服务器系列之Netty详解

    今天带大家来学习Java游戏服务器的相关知识,文中对Netty作了非常详细的介绍,对正在学习java的小伙伴们有很好的帮助,需要的朋友可以参考下 一.简介 Java的底层API逐渐复杂,而开发者面对的 ...

  3. java游戏移动_java - Java游戏 - 如何让敌人移动? - SO中文参考 - www.soinside.com

    Java游戏 - 如何让敌人移动? 问题描述 投票:1回答:2 我正在做一个射击游戏,并添加了许多带阵列的敌人,然后在地图上给他们一个随机位置,但我不知道如何让他们在到达他们的位置后移动.这是我的敌人 ...

  4. JAVA游戏编程之三----j2me 手机游戏入门开发--俄罗斯方块_5_使用LUA脚本写游戏

    该程序是基于07年底写的一个J2ME小游戏 俄罗斯方块,将全部逻辑绘制都放到LUA脚本里来做,J2ME方面仅作一个绘制库来使用! 建立J2ME程序这里就不说了, 详见我的BLOG http://blo ...

  5. Java游戏编程前篇 修改eclipse背景颜色

    最近准备开始研究java游戏设计了.(不是安卓的游戏设计,关于安卓的游戏设计,我打算学完java之后直接学cocos2dx,学习java的原因是因为在公司里接触到了eclipse,所以打算顺便将jav ...

  6. java游戏开发基础Swing之JRadioButton

    © 版权声明:本文为博主原创文章,转载请注明出处 1.按钮(JButton) Swing中的按钮是JButton,它是javax.swing.AbstractButton类的子类,Swing中的按钮可 ...

  7. Java游戏触屏处理,非触屏java游戏转换为触屏游戏工具使用方法

    用下面软件可以把非触屏java游戏改为触屏游戏,不会遮挡屏幕,提供了9个可自设触摸键,真是玩rpg类游戏的大福音啊!方法如下: 一.下载HandyPartner.JavaMagic_60b.和halo ...

  8. [转]Java游戏引擎

    JME(jMonkey Engine): JME是一个高性能的3D图形API,采用LWJGL作为底层支持.它的后续版本将支持JOGL.JME和Java 3D具有类似的场景结构,开发者必须以树状方式组织 ...

  9. 浅谈2011年上半年Java游戏领域动态

    浅谈2011年上半年Java游戏领域动态 时间过得真快,转瞬已是 2011 年 6 月,仿佛都能听到 2012 正率领天启四骑士向我们快速冲锋的马蹄声了.所以趁着世界还没毁灭,我就先来谈谈 2011 ...

最新文章

  1. [16] 螺旋面(Spire)图形的生成算法
  2. Python踩坑指南(第一季)
  3. Notepad++ 异常崩溃 未保存的new *文件列表没了怎么办?
  4. 10 行 Java 代码实现 LRU 缓存
  5. Sublime Text 2配置强大的IDE开发环境,运行java
  6. 作为Java程序员,这些开源工具你应该要学习!
  7. GDB 命令详细解释
  8. Spring容器和Spring应用上下文的理解
  9. mysql隔离性与隔离级别
  10. ios重签工具避免双重认证
  11. ES查询中.keyword详解
  12. python爬虫笔记第一章(基于路飞学城课程)
  13. Android开机自启动服务的写法
  14. Xcelsius 访问webservice 需要配置
  15. python各类地图绘制
  16. 计算机无法连接到打印机主机,惠普打印机无法连接电脑解决方法
  17. 形式化方法-- petri net
  18. //利用 DirectoryInfo递归遍历文件夹,删除所有文件,文件夹
  19. 汽车SoC安全故障的自动识别(下):案例展示和指标分析
  20. Jmeter录制脚本fiddler fiddler录制jmeter脚本

热门文章

  1. 华硕安装linux windows7,windows+centos7双系统安装
  2. 微知库计算机应用基础,《现代职业教育》杂志2021年第2期改革探索实践栏目重点选题...
  3. 对txt文件中的文件内容进行断句
  4. Movist for Mac(媒体播放器)
  5. Python之Excel编辑-[小试牛刀]批量替换excel中字符串
  6. 删除 PDF 页面的 5 大方法(最新更新)
  7. Android版MT4使用方法,手机版MT4软件基本操作方法
  8. STM32F407+FreeRTOS+LwIP移植问题汇总
  9. 1G→2G→3G→4G→5G:一部波澜壮阔的移动通信史
  10. IT培训机构的那些坑