用JAVA语言实现赛马游戏

2023-10-31

       在大二下半学期,学校举办了一场编程比赛。其中一个选题就是:用JAVA语言实现一个赛马游戏程序。此程序即为当时的参赛完成的程序。

       程序界面风格在当时的情况下来看,算是比较美观的。但是,遗憾的是当时笔者对程序体系的认识有限,将数据库连接部分的代码嵌入到了各个类中,并没有封装出来,算是一个小小的遗憾吧。程序设计过程中主要使用了JAVA对进程之间的切换及对多线程管理的技术。并且,本程序对JAVA语言中的绘图函数的完成了很大的应用。另外,程序完成过程中,对主程序界面和游戏界面的管理应用了一个很有趣的思想:鸡生蛋,蛋生鸡。在后续中会具体阐述。

       首先展示出本程序的运行界面:

       1.登录界面:


2.注册界面


3.游戏主界面


4.游戏运行界面



4.单场比赛结束界面


在界面生成过程中,我们让主界面类实例化出游戏运行界面类,然后游戏运行结束后,再让游戏运行界面类实例化出主界面类。就类似于我们上述过程中提到鸡生蛋,蛋生鸡的想法。

工程中,各个类的说明如下所示:

      Framemain:程序主类;
      denglu:构造登陆界面类;
      JDT:对denglu类进行监听;
      JFrameFirst:构造二级界面;
      JT:对JDT类和JFrameFirst类进行监听;
      Competition:构造比赛场面的入口类;
      ImageLoad:加载各个ImageDate类;
      ImageProcess:构造动态马类;
      Framemain:对比赛结果进行处理;
      ImageClass:构造背景类;
      music:背景音乐类;
程序中链接到数据库(使用的数据库为SOQServer)的类:JTD、JT、FrameSecond、JFrameFirst;
程序中使用的默认数据库名为:TEXT1,登陆名为:申四,密码为:1234。
各个框体均由不同的类声明创建,有上一个窗体进行实例化,在日后维护时便于在两个窗体见再插入一个新窗体。
界面设计中,各个空间均用坐标放置指定位置,在日后维护中便于任意更改界面风格和格局。

马位移的控制均采用CPU产生的随机数进行控制,能够防止游戏中的作弊行为。

程序源码下载地址:https://github.com/XiaoYaoNet/SaiMa

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用JAVA语言实现赛马游戏 的相关文章

  • 将 jar 作为 Linux 服务运行 - init.d 脚本在启动应用程序时卡住

    我目前正在致力于在 Linux VM 上实现一个可运行的 jar 作为后台服务 我已经使用了找到的例子here https gist github com shirish4you 5089019作为工作的基础 并将 start 方法修改为
  • “_加载小部件时出现问题”消息

    加载小部件时 如果找不到资源或其他内容 则会显示 加载小部件时出现问题 就这样 惊人的 此消息保留在主屏幕上 甚至没有说明加载时遇到问题的小部件 我通过反复试验弄清楚了这一点 但我想知道发生这种情况时是否有任何地方可以找到错误消息 Andr
  • 使用cameltestsupport进行Camel单元测试,模板始终为空

    我正在用 Camel 做一个简单的单元测试 我想做的就是从文件 在资源下 读取 JSON 内容 将其发送到 Java 类进行验证 这是我试图测试的路线 无论我做什么 模板 我用来发送正文 json 始终为空 这是我的代码 public cl
  • 来自数据库的 jfreechart 散点图

    如何使用java中的jfreechart绘制mysql数据库表中数据的散点图 我使用过 Swing 库 任何链接都会有帮助 我搜索了谷歌但找不到理解的解决方案 如果您有代码 请提供给我 实际上我确实做了条形图并使用 jfreechart 绘
  • 在文本文件中搜索单词并返回其频率

    如何在包含单词文本的文本文件中搜索特定单词并返回其频率或出现次数 使用扫描仪 String text Question how to search for a particular word in a text file containin
  • Java套接字:在连接被拒绝异常时重试的最佳方法?

    现在我正在这样做 while true try SocketAddress sockaddr new InetSocketAddress ivDestIP ivDestPort downloadSock new Socket downloa
  • 具有共享依赖项的多模块项目的 Gradle 配置

    使用 gradle 制作第一个项目 所以我研究了 spring gradle hibernate 项目如何组织 gradle 文件 并开始制作自己的项目 但是 找不到错误 为什么我的配置不起作用 子项目无法解决依赖关系 所以项目树 Root
  • Java 8 中函数式接口的使用

    这是来自的后续问题Java 8 中的 双冒号 运算符 https stackoverflow com questions 20001427 double colon operator in java 8其中 Java 允许您使用以下方式引用
  • RSA OAEP、Golang 加密、Java 解密 -BadPaddingException:解密错误

    我正在尝试解密使用 RSA OAEP 在 Golang 中加密的字符串 但出现 BadPaddingException 解密错误 很难弄清楚我错过了什么 这是Golang加密方法 func encryptString rootPEM io
  • Git 无法识别重命名和修改的包文件

    我有一个名为的java文件package old myfile java 我已经通过 git 提交了这个文件 然后我将我的包重命名为new所以我的文件在package new myfile java 我现在想将此文件重命名 和内容更改 提交
  • Cloudfoundry:如何组合两个运行时

    cloundfoundry 有没有办法结合两个运行时环境 我正在将 NodeJS 应用程序部署到 IBM Bluemix 现在 我还希望能够执行独立的 jar 文件 但应用程序失败 APP 0 bin sh 1 java not found
  • 如何记录来自 Akka (Java) 的所有传入消息

    在 Scala 中 您可以使用 LoggingReceive 包装接收函数 如何通过 Java API 实现相同的目标 def receive LoggingReceive case x do something Scala API 有Lo
  • Dispatcher-servlet 无法映射到 websocket 请求

    我正在开发一个以Spring为主要框架的Java web应用程序 特别使用Spring core Spring mvc Spring security Spring data Spring websocket 像这样在 Spring 上下文
  • Espresso 和 Proguard 的 Java.lang.NoClassDefFoundError

    我对 Espresso 不太有经验 但我终于成功地运行了它 我有一个应用程序需要通过 Proguard 缩小才能处于 56K 方法之下 该应用程序以 3 秒的动画开始 因此我需要等到该动画结束才能继续 这就是我尝试用该方法做的事情waitF
  • 尝试使用等于“是”或“否”的字符串变量重新启动 do-while 循环

    计算行程距离的非常简单的程序 一周前刚刚开始 我有这个循环用于解决真或假问题 但我希望它适用于简单的 是 或 否 我为此分配的字符串是答案 public class Main public static void main String a
  • 对象锁定私有类成员 - 最佳实践? (爪哇)

    I asked 类似的问题 https stackoverflow com questions 10548066 multiple object locks in java前几天 但对回复不满意 主要是因为我提供的代码存在一些人们关注的问题
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • 解决错误javax.mail.AuthenticationFailedException

    我不熟悉java中发送邮件的这个功能 我在发送电子邮件重置密码时遇到错误 希望你能给我一个解决方案 下面是我的代码 public synchronized static boolean sendMailAdvance String emai
  • 如何在Java中正确删除数组[重复]

    这个问题在这里已经有答案了 我刚接触 Java 4 天 从我搜索过的教程来看 讲师们花费了大量精力来解释如何分配二维数组 例如 如下所示 Foo fooArray new Foo 2 3 但我还没有找到任何解释如何删除它们的信息 从内存的情
  • 在android中跟踪FTP上传数据?

    我有一个运行 Android 的 FTP 系统 但我希望能够在上传时跟踪字节 这样我就可以在上传过程中更新进度条 安卓可以实现这个功能吗 现在 我正在使用org apache common net ftp我正在使用的代码如下 另外 我在 A

随机推荐

  • hyper-v虚拟机的创建时间总是是1601的问题。

    解决办法 1 在虚拟机正在运行时 点击停止服务 虚拟机不会关闭 2 同意强制关闭后 在重新启动服务即可 3 虚拟机的创建时间将正确显示
  • 2015中国各地区最佳大学排行榜 报考首选前五强

    艾瑞深中国校友会网最新发布2015中国各地区最佳大学排行榜 2015中国各地区最佳独立学院排行榜和2015中国各地区最佳民办大学排行榜等榜单 旨在让两岸四地高考考生及家长了解中国各地区高校的办学水平和办学实力 2015中国各地区最佳大学排行
  • 数据库常见知识点

    数据库 Mysql的金额用什么数据类型表示 在mysql中 金额用 DECIMAL 类型 DECIMAL类型是专门为财务相关问题而设计的数据类型 能够解决数据的范围和精度的问题 常用于货币数据 如价格 工资 帐户余额等 它实际上是以字符串的
  • 经典分类算法——感知机算法

    文章目录 经典分类算法 感知机算法 1 感知机算法思想 错误修正 2 感知机算法 原始形式 形式化表示 3 感知机算法 对偶形式 形式化表示 4 感知机算法 随机梯度下降 SGD 5 感知机算法 一种变形 6 感知器算法 示例 7 感知器算
  • 代码审计及工具

    代码审计 是对应用程序源代码进行系统性检查的工作 它的目的是为了找到并且修复应用程序在开发阶段存在的一些漏洞或者程序逻辑错误 避免程序漏洞被非法利用给企业带来不必要的风险 代码审计不是简单的检查代码 审计代码的原因是确保代码能安全的做到对信
  • python之多线程并发

    前言 今天呢笔者想和大家来聊聊python多线程的并发 废话就不多说了咱们直接进入主题哟 一 线程执行 python的内置模块提供了两个内置模块 thread和threading thread是源生模块 threading是扩展模块 在th
  • boost::python::converter::as_to_python_function相关的测试程序

    boost python converter as to python function相关的测试程序 boost python是一个用于将C 代码集成到Python中的强大工具库 其中的converter模块提供了将C 对象转换为Pyth
  • java-IDEA常用插件

    1 JRebel 热部署插件 1 IDEA 中搜索并安装插件 JRebel 重启 2 获取UUID https www guidgen com 3 按下图填写信息 https jrebel qekang com UUID 把UUID替换成上
  • 基于深度学习的商品推荐系统(Web)

    基于深度学习的商品推荐系统 ECRS Web 项目简介 技术栈 项目用到的技术如下 语言 Python3 Java Web端 Layui Flask Nginx Gevent Flask Cache 模型训练 PaddleRec Paddl
  • js反爬中如何如何处理无限debugger

    有时候在爬取网站时 遇到无限debugger的情况 一种是constructor中的debugger 还有一种是eval中的debugger 可以通过hook的方式绕过无限debugger 处理eval中无限debugger var eva
  • 26. selenium:浏览器自动测试模块——一款方便且能装X的爬虫工具(附多个实例)

    目录 前言 什么是selenium 配置selenium 安装selenium库 安装浏览器驱动 以Chrome为例 使用selenium库 例1 实现打开网页拿取网页标题 运行效果 例2 实现抓取某招聘网站Python岗位的职位信息 运行
  • setImageResource和setImageDrawable区别

    ImageView设置图片的方式有很多钟 可以在xml里面写android src drawable xxx 也可以在java代码里面设置 在java里面的设置方式也有多种 方法包括 setImageResource setImageDra
  • Xilinx ISE系列教程(3):关联第三方编辑器Notepad++/VS Code/UltraEdit/Sublime Text/Emacs/Vim

    文章目录 toc 1 ISE关联Notepad 编辑器 2 ISE关联VS Code编辑器 3 ISE关联UltraEdit编辑器 4 ISE关联Sublime Text3编辑器 5 ISE关联Emacs编辑器 6 ISE关联Vim编辑器
  • VMware中Centos Linux 8虚拟机安装过程

    VMware Workstation的安装过程已经有博文分享 本文是VMware安装成功后虚拟机安装的过程 在安装前需要下载CentOS镜像文件 阿里云地址为 https mirrors aliyun com centos 我下载的是8 即
  • 下载百度网盘资源不限速的两种方法

    下载百度网盘资源不限速的两种方法 方法1 适合文件大小4g以下的下载 由于直接用proxpee down下载资源文件时出现 error code 31090 error msg package is too large request id
  • 神仙文献管理软件Mendeley 保姆级教程

    神仙文献管理软件Mendeley 保姆级教程 英国文文的文章 知乎 https zhuanlan zhihu com p 65992720 Mendeley是一款Elsevier公司旗下的免费文献管理软件 集文献的搜集 管理 搜索 阅读 标
  • 云计算与大数据-虚拟化与容器技术题库

    第2章 虚拟化与容器技术习题 2 1 选择题 1 典型的虚拟化架构不包括 D A 宿主机操作系统 B 虚拟机 C 虚拟化层 D 虚拟内存 2 虚拟化技术的研究目的包括 D A 降低管理成本 B 增强可移植性 C 提高软件开发效率 D 以上都
  • 用java PreparedStatement就不用担心sql注入了吗?

    http www cnblogs com iyangyuan archive 2015 09 15 4809494 html 用java PreparedStatement就不用担心sql注入了吗 言归正传 对java有了解的同学基本上都体
  • Flutter 画笔(Paint)、drawRect(绘制矩形)、PaintingStyle

    观察走在你前面的人 看看他为何领先 学习他的做法 drawRect rect paint rect 矩形 paint 画笔 PaintingStyle fill 用画笔填充绘制 Rect fromCircle Offset center d
  • 用JAVA语言实现赛马游戏

    在大二下半学期 学校举办了一场编程比赛 其中一个选题就是 用JAVA语言实现一个赛马游戏程序 此程序即为当时的参赛完成的程序 程序界面风格在当时的情况下来看 算是比较美观的 但是 遗憾的是当时笔者对程序体系的认识有限 将数据库连接部分的代码