华容道小游戏

华容道代码:

package ytu.jsj.com.cn;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;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();}}
人物:

package ytu.jsj.com.cn;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Person extends JButton implements FocusListener{int number;Color c=new Color(255,254,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);}}

测试类:

package ytu.jsj.com.cn;
public class test {public static void main(String[] args) {new Hua_Rong_Road();}}

图片结果:



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1620979.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【180927】华容道游戏源码

本源码是一个采用winform进行开发的华容道游戏源码&#xff0c;华容道游戏作为一个经典游戏&#xff0c;各部分设计都恰到好处&#xff0c;非常巧妙&#xff0c;因此成为世界游戏界的三大不可思议。华容道游戏源于三国时期著名的历史故事。东汉末年&#xff0c;曹操、孙权以及刘…

28连局华容道游戏

华容道游戏取材于三国时期,关羽在华容道放走曹操的故事。这个游戏一共28局,是根据一款手机游戏编写的,希望大家能够喜欢。一个益智类的小游戏,大家可以在工作之余作为消遣之乐。 玩不过去没有关系,我们可以把游戏进度存储起来,下次玩的时候读取进度文件就可以了,我们可以…

华容道游戏VB.NET 2010 版28连局

这一版的华容道游戏,有玩法演示,局数、步数、时间提示完善。新增加了关数名字。 托动处理的更加完美,当鼠标手动图片后图片消失,鼠标变成你托动的图片,产生一种立体的感觉。 请大家查看新版的华容道游戏VB.NET 2010 版28连局。 下载地址:http://blog.sina.com.cn/…

经典华容道游戏(含bfs求解)

前言 这是数据结构的课设作业&#xff0c;也是我第一次写的千行代码小游戏。 学习EasyX图形库写完程序一共用了三天时间&#xff0c;可以说是相当熬人了。 当然&#xff0c;第一次写&#xff0c;难免不怎么好&#xff0c;比如无动画、无音乐、丑得不行的ui等等&#xff0c;体…

206. 反转链表 (简单系列)

给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 示例 2&#xff1a; 输入&#xff1a;head [1,2] 输出&#xff1a;[2,1] 示例 3&#xff1a; 输…

DebugInfo 模块功能系统介绍 文本上色 文本与表格对齐 分隔线 秒表计算器 语义日期

背景 今天系统性的为大家介绍一下 DebugInfo 模块。这个模块提供了一些丰富的基本功能的封装&#xff0c;希望能给有需要的人带来些许帮助。 文本上色 DebugInfo 模块引入了 colorama提供文本颜色支持。 # -*- coding:UTF-8 -*-# region 引入必要依赖 from DebugInfo.DebugI…

数字时钟器

数字时钟器 一、实现功能&#xff1a; 实现基本的时钟样式实现时间日期的文本显示实现仿真秒针走动时候的音效支持设置时间&#xff0c;点击时钟中间设置时间&#xff0c;点击边缘恢复系统时间。 二、效果截屏&#xff1a; 三、github源码地址 GitHub - LxNoMi/DigitalClock…

FPGA数字时钟

FPGA数字时钟1 本代码借鉴了一些&#xff0c;网上资源。 1.设计目的 &#xff08;1&#xff09;掌握数字电子钟的设计方法&#xff1b; &#xff08;2&#xff09;掌握常用数字集成电路的功能和使用&#xff1b; &#xff08;3&#xff09;巩固数字电路理论知识&#xff0c;掌握…

HSP高度敏感的人应该了解的内容(附图书资源)

推荐图书:《高敏感是种天赋》 在爆炸的信息海中希望你慢慢看&#xff0c;细细品~ 什么是高敏感人群&#xff1f; &#xff08;Highly Sensitive Person&#xff0c;简称HSP&#xff09;是指那些对外界刺激和情绪变化非常敏感&#xff0c;容易受到情绪的影响&#xff0c;并且需…

基于Arduino的多功能数字时钟

实现功能&#xff1a; 显示时间、日期和星期断电保存时间通过按钮设置时间、日期整点响铃自定义闹钟显示温度自定义报警温度按键功能&#xff1a;按选择键进入设置时间功能&#xff1b;同时按 - 键进入闹钟和报警温度设置功能&#xff1b;再按选择键光标跳动&#xff0c;光标…

【Proteus】多功能数字时钟设计

ZQQQ 2021.12.27 课设一:各芯片引脚介绍:1:数码管:[^1]2:CD4511(译码显示):[^2]3:CD4518(计数器)[^3]3:555定时器4:CD4011和CD4012 二:各部分电路图搭建1:校正时间电路2:整点报时电路3:分频电路4:进制电路 课设 我们将该电路分为几个部分: 1:显示电路(用6个共阴数码管来显示) 2…

单片机:数字式时钟—日历

单片机&#xff1a;数字式时钟—日历 功能要求&#xff1a; &#xff08;1&#xff09;显示时分秒&#xff0c;年月日 &#xff08;2&#xff09;具有&#xff1a;启动&#xff08;按下此键后单片机才开始工作&#xff09;、暂停、继续、清零、设置时间/年月日/闹钟的功能 &am…

Quartus ii 13.1 数字时钟

内容摘要&#xff1a; 使用计数器和数据选择器等器件实现数字时钟电路。电路最终在开发板上显示的是时钟的秒和分&#xff08;开发板所限&#xff0c;当然如果开发板支持8位显示的话也可以自己加到小时位的显示&#xff09;。电路包四个部分&#xff1a;时钟信号分频电路&#…

FPGA-Verilog多功能数字时钟

一&#xff0e;数字时钟设计 1.硬件资源&#xff1a;共阴极数码管一块&#xff0c;FPGA开发板一块&#xff08;EP4CE40F23C8&#xff09;&#xff1b; 2. 开发板资源&#xff1a;3颗独立按键&#xff0c;数码管接口&#xff1b; 3. 功能设计&#xff1a;三种功能&#xff1a…

【Java】Java数字时钟

应用名称&#xff1a;Java数字时钟 用到的知识&#xff1a;Java GUI编程&#xff0c;线程 开发环境&#xff1a;win8eclipsejdk1.8 功能说明&#xff1a;可以显示当前系统的年月日、星期以及准确时间&#xff0c;并实时更新显示。 效果图&#xff1a; 源代码&#xff1a; i…

51单片机入门——(新)简易数字时钟

文章目录 设计要求原理图按键部分介绍 代码解析 设计要求 实现正确稳定地显示小时(两位数)、分钟(两位数)、秒钟(两位数)&#xff0c;同时数码管应无闪烁问题。通过按键分别实现时、分信息的调整&#xff0c;方便用户对时间的校准。加入闹铃功能在&#xff08;本设计中用LED代…

基于FPGA的数字时钟verilog开发

目录 一、理论基础 二、案例背景 1.问题描述 2.思路流程 三、verilog核心仿真 四、仿真结论分析 五、参考文献 一、理论基础 整个程序分为以下三大部分&#xff1a; 时钟控制部分&#xff0c;分为调整分&#xff0c;秒功能&#xff0c;秒清零功能&#xff1b; 暂停功…

51单片机数字时钟

我们学单片机&#xff0c;一般都会写数字时钟编程。它能帮助我们&#xff1a; a&#xff0e; 能够系统性地总结掌握的知识&#xff0c;将单元模块知识有机的结合在一起。 b&#xff0e; 能够充分协调好硬件与软件之间的相互结合&#xff0c;合理设计硬件电路。 c&#xff0…

多功能数字时钟(VHDL)

文章目录 一、课程设计内容二、实验方案分析与设计1.功能要求2.各个模块描述 三、具体实现过程描述1、小时计时2、分计时3、秒计时4、闹钟小时计时5、闹钟分计时6、闹钟比较模块7、控制器模块&#xff08;设置状态转换&#xff09;8、控制显示模块&#xff08;显示时间以及校时…

基于FPGA的简易数字时钟

基于FPGA的可显示数字时钟&#xff0c;设计思路为自底向上&#xff0c;包括三个子模块&#xff1a;时钟模块&#xff0c;进制转换模块&#xff0c;led显示模块。所用到的FPGA晶振频率为50Mhz&#xff0c;首先利用它得到1hz的时钟然后然后得到时钟模块&#xff0c;把时钟模块输出…