java游戏——华容道
为了单机打游戏不下载!!!
嘿嘿,“华容道”是一款比较老的游戏了,考验人的智力和逻辑思维。作为一款经典的游戏,各部分的设计都非常巧妙。
本文只实现了最简单的华容道,不喜勿喷!!!
废话不多说,上代码!!!
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游戏——华容道相关推荐
- java华容道代码_华容道Java游戏源代码JAVA游戏源码下载
鉴于JAVA的华容道游戏源码,希望对研讨JAVA游戏的朋友有所帮助.最初运行于西门子是非屏手机上. 华容道Java游戏源代码 (1 folders, 2 files, 1.38 KB, 76.13 K ...
- Java游戏服务器系列之Netty详解
今天带大家来学习Java游戏服务器的相关知识,文中对Netty作了非常详细的介绍,对正在学习java的小伙伴们有很好的帮助,需要的朋友可以参考下 一.简介 Java的底层API逐渐复杂,而开发者面对的 ...
- java游戏移动_java - Java游戏 - 如何让敌人移动? - SO中文参考 - www.soinside.com
Java游戏 - 如何让敌人移动? 问题描述 投票:1回答:2 我正在做一个射击游戏,并添加了许多带阵列的敌人,然后在地图上给他们一个随机位置,但我不知道如何让他们在到达他们的位置后移动.这是我的敌人 ...
- JAVA游戏编程之三----j2me 手机游戏入门开发--俄罗斯方块_5_使用LUA脚本写游戏
该程序是基于07年底写的一个J2ME小游戏 俄罗斯方块,将全部逻辑绘制都放到LUA脚本里来做,J2ME方面仅作一个绘制库来使用! 建立J2ME程序这里就不说了, 详见我的BLOG http://blo ...
- Java游戏编程前篇 修改eclipse背景颜色
最近准备开始研究java游戏设计了.(不是安卓的游戏设计,关于安卓的游戏设计,我打算学完java之后直接学cocos2dx,学习java的原因是因为在公司里接触到了eclipse,所以打算顺便将jav ...
- java游戏开发基础Swing之JRadioButton
© 版权声明:本文为博主原创文章,转载请注明出处 1.按钮(JButton) Swing中的按钮是JButton,它是javax.swing.AbstractButton类的子类,Swing中的按钮可 ...
- Java游戏触屏处理,非触屏java游戏转换为触屏游戏工具使用方法
用下面软件可以把非触屏java游戏改为触屏游戏,不会遮挡屏幕,提供了9个可自设触摸键,真是玩rpg类游戏的大福音啊!方法如下: 一.下载HandyPartner.JavaMagic_60b.和halo ...
- [转]Java游戏引擎
JME(jMonkey Engine): JME是一个高性能的3D图形API,采用LWJGL作为底层支持.它的后续版本将支持JOGL.JME和Java 3D具有类似的场景结构,开发者必须以树状方式组织 ...
- 浅谈2011年上半年Java游戏领域动态
浅谈2011年上半年Java游戏领域动态 时间过得真快,转瞬已是 2011 年 6 月,仿佛都能听到 2012 正率领天启四骑士向我们快速冲锋的马蹄声了.所以趁着世界还没毁灭,我就先来谈谈 2011 ...
最新文章
- [16] 螺旋面(Spire)图形的生成算法
- Python踩坑指南(第一季)
- Notepad++ 异常崩溃 未保存的new *文件列表没了怎么办?
- 10 行 Java 代码实现 LRU 缓存
- Sublime Text 2配置强大的IDE开发环境,运行java
- 作为Java程序员,这些开源工具你应该要学习!
- GDB 命令详细解释
- Spring容器和Spring应用上下文的理解
- mysql隔离性与隔离级别
- ios重签工具避免双重认证
- ES查询中.keyword详解
- python爬虫笔记第一章(基于路飞学城课程)
- Android开机自启动服务的写法
- Xcelsius 访问webservice 需要配置
- python各类地图绘制
- 计算机无法连接到打印机主机,惠普打印机无法连接电脑解决方法
- 形式化方法-- petri net
- //利用 DirectoryInfo递归遍历文件夹,删除所有文件,文件夹
- 汽车SoC安全故障的自动识别(下):案例展示和指标分析
- Jmeter录制脚本fiddler fiddler录制jmeter脚本
热门文章
- 华硕安装linux windows7,windows+centos7双系统安装
- 微知库计算机应用基础,《现代职业教育》杂志2021年第2期改革探索实践栏目重点选题...
- 对txt文件中的文件内容进行断句
- Movist for Mac(媒体播放器)
- Python之Excel编辑-[小试牛刀]批量替换excel中字符串
- 删除 PDF 页面的 5 大方法(最新更新)
- Android版MT4使用方法,手机版MT4软件基本操作方法
- STM32F407+FreeRTOS+LwIP移植问题汇总
- 1G→2G→3G→4G→5G:一部波澜壮阔的移动通信史
- IT培训机构的那些坑