java面向对象实验——扫雷+24点

扫雷

窗口绘制:

GameWin

package com.sxt;import javax.swing.*;public class GameWin extends JFrame {void launch(){this.setVisible(true);this.setSize(500, 500);this.setLocationRelativeTo(null);this.setTitle("SWE23070扫雷游戏");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public static void main(String[] args) {GameWin gameWin = new GameWin();gameWin.launch();}
}
//窗口绘制

雷区绘制: 

GameWin

package com.sxt;import javax.swing.*;
import java.awt.*;public class GameWin extends JFrame {MapBottom mapBottom = new MapBottom();void launch(){this.setVisible(true);this.setSize(500, 500);this.setLocationRelativeTo(null);this.setTitle("SWE23070扫雷游戏");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}@Overridepublic void paint(Graphics g) {mapBottom.paintSelf(g);}public static void main(String[] args) {GameWin gameWin = new GameWin();gameWin.launch();}
}

MapBottom 

package com.sxt;import java.awt.*;public class MapBottom {void paintSelf(Graphics g){for (int i = 0; i < 500; i=i+50) {g.setColor(Color.red);g.drawLine(0,i,500,i);g.drawLine(i,0,i,500);}}
}

界面规划:

GameWin

package com.sxt;import javax.swing.*;
import java.awt.*;public class GameWin extends JFrame {int width = 2*GameUtil.OFFSET+GameUtil.MAP_W*GameUtil.SQUARE_LENGTH;int height = 4*GameUtil.OFFSET+GameUtil.MAP_H*GameUtil.SQUARE_LENGTH;MapBottom mapBottom = new MapBottom();void launch(){this.setVisible(true);this.setSize(width, height);this.setLocationRelativeTo(null);this.setTitle("SWE23070扫雷游戏");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}@Overridepublic void paint(Graphics g) {mapBottom.paintSelf(g);}public static void main(String[] args) {GameWin gameWin = new GameWin();gameWin.launch();}
}

MapBottom

package com.sxt;import java.awt.*;public class MapBottom {void paintSelf(Graphics g){g.setColor(Color.red);//画竖线for(int i = 0; i<= GameUtil.MAP_W; i++){g.drawLine(GameUtil.OFFSET+i*GameUtil.SQUARE_LENGTH,3*GameUtil.OFFSET,GameUtil.OFFSET+i*GameUtil.SQUARE_LENGTH,3*GameUtil.OFFSET+GameUtil.MAP_H*GameUtil.SQUARE_LENGTH);}//画横线for(int i = 0; i<= GameUtil.MAP_H; i++){g.drawLine(GameUtil.OFFSET,3*GameUtil.OFFSET+i*GameUtil.SQUARE_LENGTH,GameUtil.OFFSET+GameUtil.MAP_W*GameUtil.SQUARE_LENGTH,3*GameUtil.OFFSET+i*GameUtil.SQUARE_LENGTH);}}
}

GameUtil

package com.sxt;public class GameUtil {//地图的宽static int MAP_W = 11;//地图的高static int MAP_H = 11;//雷区偏移量static int OFFSET = 45;//格子边长static int SQUARE_LENGTH = 50;
}

底层地图:

GameWin

package com.sxt;import javax.swing.*;
import java.awt.*;public class GameWin extends JFrame {int width = 2*GameUtil.OFFSET+GameUtil.MAP_W*GameUtil.SQUARE_LENGTH;int height = 4*GameUtil.OFFSET+GameUtil.MAP_H*GameUtil.SQUARE_LENGTH;MapBottom mapBottom = new MapBottom();void launch(){this.setVisible(true);this.setSize(width, height);this.setLocationRelativeTo(null);this.setTitle("SWE23070扫雷游戏");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}@Overridepublic void paint(Graphics g) {mapBottom.paintSelf(g);}public static void main(String[] args) {GameWin gameWin = new GameWin();gameWin.launch();}
}

MapBottom

package com.sxt;import java.awt.*;public class MapBottom {void paintSelf(Graphics g){g.setColor(Color.red);//画竖线for(int i = 0; i<= GameUtil.MAP_W; i++){g.drawLine(GameUtil.OFFSET+i*GameUtil.SQUARE_LENGTH,3*GameUtil.OFFSET,GameUtil.OFFSET+i*GameUtil.SQUARE_LENGTH,3*GameUtil.OFFSET+GameUtil.MAP_H*GameUtil.SQUARE_LENGTH);}//画横线for(int i = 0; i<= GameUtil.MAP_H; i++){g.drawLine(GameUtil.OFFSET,3*GameUtil.OFFSET+i*GameUtil.SQUARE_LENGTH,GameUtil.OFFSET+GameUtil.MAP_W*GameUtil.SQUARE_LENGTH,3*GameUtil.OFFSET+i*GameUtil.SQUARE_LENGTH);}for(int i = 1; i<= GameUtil.MAP_W; i++){for(int j = 1; j<= GameUtil.MAP_H; j++){g.drawImage(GameUtil.lei,GameUtil.OFFSET+(i-1)*GameUtil.SQUARE_LENGTH+1,GameUtil.OFFSET*3+(j-1)*GameUtil.SQUARE_LENGTH+1,GameUtil.SQUARE_LENGTH-2,GameUtil.SQUARE_LENGTH-2,null);}}}
}

GameUtil

package com.sxt;import java.awt.*;public class GameUtil {//地图的宽static int MAP_W = 11;//地图的高static int MAP_H = 11;//雷区偏移量static int OFFSET = 45;//格子边长static int SQUARE_LENGTH = 50;//底层元素 -1 雷 0 空 1-8 表示对应数字static int[][] MAP_BOTTOM = new int[MAP_W+2][MAP_H+2];//载入图片static Image lei = Toolkit.getDefaultToolkit().getImage("imgs/lei.png");}

 

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

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

相关文章

GPU 调度策略架构与CUDA运行机制(二)

市面上有很多GPU厂家&#xff0c;他们产品的软硬件架构各不相同&#xff0c;但是核心往往差不多&#xff0c;整明白了一个基本上就可以触类旁通了。针对当前gpu底层的一些架构以及硬件层一些调度策略的话估计大部分人就很难说的上熟悉了&#xff0c;这个不是大家的错&#xff0…

ddos攻击防御的方法有哪些

DDoS攻击&#xff0c;即分布式拒绝服务攻击(Distributed Denial of Service)&#xff0c;是一种恶意的网络攻击方式&#xff0c;旨在通过发送大量流量或请求到目标服务器、服务或网络&#xff0c;使其资源耗尽&#xff0c;无法处理合法用户的请求&#xff0c;从而导致服务中断或…

Python + Playwright:集成 Applitools 进行视觉回归测试(快速入门)

集成 Applitools 进行视觉回归测试(快速入门) 简介Applitools 的核心特点Applitools 的应用场景1. 准备工作2. 获取示例项目2.1 下载示例代码2.2 安装依赖2.3 选择测试运行方式3. 代码解析3.1 测试用例示例4. 运行测试4.1 设置 Applitools API 变量4.2 设置 Applitools Eyes …

RuoYi中数据分页功能实现的步骤(nvliz)

目录 前言 数据分页的作用 RuoYi中的实现步骤 前端的显示界面(实例介绍) 源码分析&#xff08;前端&#xff09; Pagination&#xff08;分页组件&#xff09;介绍 前端&#xff1a;getList()(方法源码分析) 源码分析&#xff08;后端&#xff09; 后端&#xff1a;List()…

HarmonyOS 5.0应用开发——全局广播的使用

【高心星出品】 文章目录 全局广播的使用公共事件接受系统公共事件原理 发布与订阅自定义公共事件订阅系统事件 全局广播的使用 全局广播可以用来做应用间通信&#xff0c;进程间通信&#xff0c;包含订阅、发布等功能。 公共事件 CES&#xff08;Common Event Service&…

ceph存储池

1、存储池 1、存储池的概念 存储池就是ceph的逻辑分区&#xff0c;专门用来存储对象的 特点 将文件切片成对象&#xff0c;通过hash算法&#xff0c;找到存储池中的pg&#xff0c;池中的pg根据crush算法找到osd节点 存储中的PG数量对性能有重要的影响&#xff0c;过多和过少…

Ollama记录

先在官网下载Ollama 模型下载 ollama run qwen2:0.5b 可以快速部署很多模型 方便 可以替换openai api key from openai import OpenAIclient OpenAI(base_url https://127.0.0.1:11434/v1,api_keyollama, # required, but unused )response client.chat.completions.…

锻造船用发动机动力系统,铸强船舶“心脏”

船舶是海洋、湖泊及河流中重要的水上交通工具&#xff0c;不仅能够促进海上经济的发展&#xff0c;还能够保卫国家的制海权。船舶动力装置&#xff0c;也就是船舶的核心动力源——船用发动机动力系统对船舶的重要作用不言自明&#xff0c;关系到船舶的性能质量&#xff0c;能够…

LIN状态管理

文章目录 前言一、状态管理二、实现过程三、response_error信号的变化条件四、节点内部报告五、测试应用方式1&#xff1a;LIN ISC方式2&#xff1a;CAPL脚本方式 前言 在LIN专栏的文章中&#xff0c;我们介绍了 LIN的网络管理&#xff1a;LIN网络管理&#xff1a;休眠&唤…

云帆在线学习考试系统对国产化数据库的支持情况说明

云帆在线学习考试系统对国产化数据库的支持情况说明 云帆学习考试系统是一款优秀的学习和考试系统&#xff01;多年以来一直深耕在线教育板块&#xff0c;积累了丰富的行业经验&#xff0c;多年来的产品和技术沉淀&#xff0c;服务了众多政府机构、知名高校、企事业单位。 今…

反向传播算法中的误差项

背景 在反向传播算法中&#xff0c;我们需要计算每个神经元的误差项&#xff0c;以便更新网络中的权重。对于输出层的神经元&#xff0c;误差项的计算公式如下&#xff1a; 其中&#xff1a; E是损失函数&#xff08;例如均方误差&#xff09;。 zk 是输出层神经元的加权输入&a…

如何高效整合金蝶云星辰采购入库单与聚水潭系统

星辰-采购入库单集成到聚水潭的技术实现 在企业信息化管理中&#xff0c;数据的高效流转和准确对接至关重要。本文将分享一个实际案例&#xff1a;如何通过轻易云数据集成平台&#xff0c;将金蝶云星辰V2系统中的采购入库单数据无缝集成到聚水潭系统中&#xff0c;实现业务流程…

Uniapp的App环境下使用Map获取缩放比例

概述 目前我试过的就是你用vue后缀是拿不到比例的你可以用nvue当然uniapp的uvue应该是更加可以的我使用的是高德所以你得在高德的后台声请原生的Android的key才可以如果是vue3的开发模式的话不用使用this来获取当前对象使用scale对象来接受和改变缩放比例会比较友好然后直接走…

C++入门项目:Linux下C++轻量级Web服务器 项目详解(小白篇)

拿到一个项目首先先跑通&#xff0c;然后再慢慢来看代码&#xff0c;关于怎么将这个项目跑通&#xff0c;上一篇已经讲过&#xff0c;感兴趣的小伙伴可以移步下面的链接&#xff0c;或者其他博主的教程。 C入门项目&#xff1a;Linux下C轻量级Web服务器 跑通|运行|测试&#xf…

RuoYi集成Drools,并实现数据库获取规则

Drools是一个开源的业务规则管理系统&#xff08;BRMS&#xff09;和规则引擎&#xff0c;它允许开发者以接近自然语言的形式定义业务规则&#xff0c;并将这些规则应用到应用程序中&#xff0c;实现业务逻辑的自动化和决策过程的优化。Drools基于Java语言开发&#xff0c;使用…

什么是API接口?如何调用API接口?

一、什么是 API 接口 定义 API&#xff08;Application Programming Interface&#xff09;即应用程序编程接口。它是一组定义好的规则和协议&#xff0c;允许不同的软件应用程序之间进行通信和交互。可以把 API 想象成是餐厅的服务员&#xff0c;当顾客&#xff08;一个软件应…

BurpSuite-6(验证码识别)

声明&#xff1a;学习视频来自b站up主 泷羽sec&#xff0c;如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址&#xff1a;burp(6)暴力破解与验证码识别绕过_哔哩哔哩_bilibili 一、下载 github地址&#xff1a;GitHub - f0ng/captcha-killer-modified: captcha-killer…

【JavaEE】多线程(7)

一、JUC的常见类 JUC→java.util.concurrent&#xff0c;放了和多线程相关的组件 1.1 Callable 接口 看以下从计算从1加到1000的代码&#xff1a; public class Demo {public static int sum;public static void main(String[] args) throws InterruptedException {Thread …

Go 程序编译的步骤

Go程序编译的步骤 词法分析&#xff08;Lexical Analysis&#xff09; Go编译器首先对源代码进行词法分析&#xff0c;将代码拆分成标记&#xff08;tokens&#xff09;&#xff0c;这些标记是编程语言的最小单位&#xff0c;如关键字、变量名、操作符等。 作用&#xff1a;生…