做效果图的网站有哪些软件有哪些/互联网营销师培训课程免费

做效果图的网站有哪些软件有哪些,互联网营销师培训课程免费,网站建站网站 小说,wordpress 本地化【问题描述】 九宫格,一款数字游戏,起源于河图洛书,与洛书是中国古代流传下来的两幅神秘图案,历来被认为是河洛文化的滥觞,中华文明的源头,被誉为"宇宙魔方"。九宫格游戏对人们的思维锻炼有着极大…

【问题描述】
九宫格,一款数字游戏,起源于河图洛书,与洛书是中国古代流传下来的两幅神秘图案,历来被认为是河洛文化的滥觞,中华文明的源头,被誉为"宇宙魔方"。九宫格游戏对人们的思维锻炼有着极大的作用,从古时起人们便意识到九宫的教育意义。千百年来影响巨大,在文学、影视中都曾出现过。九宫格最早叫“洛书”,现在叫“幻方” 。
【基本要求】
游戏包括界面,基本的控件,有文本框、选择框、按钮等。
用户信息:用户登录需要的账号和密码,新用户注册用到的信息;对玩家信息的记录、保存、读取。
界面信息:图片,九宫格规格;
交互信息:控制游戏的移动;
【问题分析】
本游戏主要完成:整幅图的现实,切换整幅图片、随机打乱图片、开始游戏,结束游戏。
【功能分析】
        游戏界面设计:用户登录,进入游戏界面,有良好的功能可视化界面,有游戏规则介绍。例如有计时和分数的显示,游戏图片替换和打乱图片的按键,显示游戏界面的图像画面,游戏玩家开始游戏、悔一步,重新开始的按键。
        原始图像的选择:游戏开始时,从准备好的图片中,选择想要拼的图片,要有不同难度的图片(可从相似度考虑);可选择重新开始;随机打乱图像:选择难度(1,2,3),根据难度将图片分成 3*3, 5*5,6*6 的规格,设计算法,随机打乱生成肯定有成功结果的初始化状态九宫格,要求有动态的打乱图片的显示过程(若产生的初始化九宫格无法到达最终状态,应该有提示 3 秒后自动刷新,重新生成);
        计时器的设计:动态显示玩家本局的时间,可选择限时挑战;移动:用户可以拖动模块进行交换,直到拼出原图像。
1)通过 w, s, a, d(或者上,下,左,右)进行平移操作,动态的展示每一步移动的结果。如果操作违法,应不做该操作;
2)能够刷新界面;
3)游戏过程中,允许选择悔一步(不可后退多步,若用户悔步>1,给出提示且不执行多次后退操作)或者终止游戏(正常),继续下一步;系统能自动检查到用户拼合出原图。
结束游戏:可以提前结束游戏,若成功结束游戏,总分=时间分数+移动正确率(正确数/移动正确率)*100,将本场的游戏时间加入到游戏记录中,并按照排序显示之前游戏的时间和该用户信息。上传分数以及获取排名,可以选择删除之前的成功记录,但是不可以用户随意增加记录。

《数据结构课程设计》

报告一.课程设计目的

通过课程设计,了解并初步掌握设计、实现较大系统的完整过程,包括系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。

二.问题描述

九宫格,一款数字游戏,起源于河图洛书,与洛书是中国古代流传下来的两幅神秘图案,历来被认为是河洛文化的滥觞,中华文明的源头,被誉为"宇宙魔方"。九宫格游戏对人们的思维锻炼有着极大的作用,从古时起人们便意识到九宫的教育意义。千百年来影响巨大,在文学、影视中都曾出现过。九宫格最早叫“洛书”,现在叫“幻方”

三.需求分析

(1)游戏包括界面,基本的控件,有文本框、选择框、按钮等。

(2)用户信息:用户登录需要的账号和密码,新用户注册用到的信息;对玩家信息的记录、保存、读取。

(3)界面信息:图片,九宫格规格

(4)交互信息:控制游戏的移动

(5)本游戏主要完成:整幅图的现实,切换整幅图片、随机打乱图片、开始游戏,结束游戏。

四.概要设计

4.1系统用到的抽象数据类型定义:

1.ADT LoginFrame{

   用途用户登录的一些按钮

   基本操作:

  1. public LoginFrame(String title);
  2. private void addComponent();
  3. private void addListener();
  4. public boolean test()

}

  1. ADT PreviewPanel{

  用途:图片预览区设计

    基本操作:

  1. public void paint(Graphics g)

}

  1. ADT GameFrame{

用途:游戏所有功能界面的实现

基本操作:

  1. public GameFrame(String user);
  2. public void gameOptions() ;
  3. private void addListener();
  4. public void top();
  5. public void limit()

}

  1. ADT EasyGame{

      用途:实现九宫格游戏的主要代码

基本操作:

  1. public EasyGame(String user_name,boolean limit);
  2. public void addComponentNorth();
  3. public void addComponentCenter();
  4. public void addActionListener();
  5. public void start();
  6. public GamePanel(String picture_path);
  7. public void splitImage(String picture_path);
  8. public void createGame();
  9. public void actionPerformed(ActionEvent e);
  10. public void swap(String direction);
  11. public TopPanel();
  12. public boolean isFinish()

}

  1. ADT GameTimer{

   用途:游戏计时

   基本操作:

  1. public GameTimer(boolean limit);
  2. public void run() ;
  3. public void stopRunning()

}

4.2系统中子程序及功能要求:

  1. public void top():用于显示排行榜窗口并从文件中读取排行榜数据进行显示。
  2. public void start():初始化游戏的一些参数,创建游戏界面,为游戏按钮添加事件监听器,并启动游戏计时器。

3.public void splitImage(String picture_path):对一张图片进行分割,并创建按钮来打乱图像的顺序,以初始化一个拼图游戏的初始状态。

4.public void createGame():是根据打乱后的图像按钮的顺序,将这些按钮放置在界面上,并创建一个空白的按钮作为拼图的空位。这样就完成了拼图游戏界面的初始化。5.public void actionPerformed(ActionEvent e):处理了拼图游戏中按钮被点击的事件,并根据按钮的移动情况来更新游戏状态,计算得分,显示提示信息,并将玩家的成绩记录写入文件。

6.public void swap(String direction):实现了按钮位置的交换,用于在拼图游戏中实现按钮的移动。

7public TopPanel()实现了一个菜单面板,包括"开始"按钮和用于显示步数、计时器和分数的标签。

8.public boolean isFinish():用于判断游戏是否结束。它通过检查游戏面板上的按钮的位置是否符合特定的条件来确定游戏是否结束。

8.public void run():实现了一个游戏计时器线程,用于在游戏中计时并根据需要终止计时器。

五.详细设计

5.1 创建拼图游戏的界面的伪码描述如下:

public void createGame(){

    this.setLayout(null);  //将布局设置为null,表示不使用任何布局管理器,而是手动设置组件的位置和大小。

for(int i = 0; i < rank*rank -1; i++) {

然后,通过一个循环,将打乱顺序后的图像按钮按照一定的规则放置在界面上。具体来说,它通过计算每个按钮的位置,使用`setLocation`方法将按钮放置在指定的位置,并通过`add`方法将按钮添加到界面上。

            }

    buttons[rank*rank-1] = new JButton();  //创建一个新的按钮`buttons[rank*rank-1]`

    buttons[rank*rank-1].setBackground(new Color(0xd9d9d9))    //并设置其背景颜色为灰色(`new Color(0xd9d9d9)`)

buttons[rank*rank-1].setSize(image_width,image_height);    //然后,设置该按钮的大小和位置                                        buttons[rank*rank-1].setLocation(20+image_width*(rank-1),20+image_height*(rank-1));this.add(buttons[rank*rank-1]);      //并将其添加到界面上。

}

5.2 交换两个按钮实现拼图的移动伪码描述如下:

     public void swap(方法接受一个字符串参数`direction`,用于指示按钮的移动方向) {        

//根据`direction`的取值,分别处理上、下、左、右四个方向的移动。

        // 在每个分支中,通过调用`setLocation`方法,改变`clicked_button`和`gray_button`的位置,从而实现按钮的移动。

        //具体来说,当`direction`为"up"时,表示向上移动,

        // 交换了`clicked_button`和`gray_button`的位置;

        // 当`direction`为"down"时,表示向下移动;

        // 当`direction`为"right"时,表示向右移动

        // 当`direction`为"left"时,表示向左移动。

        }

5.3实现拼图游戏的初始化过程的伪码描述如下:  

     public void splitImage(String picture_path) {

            try {

                /*首先通过`ImageIO.read`方法读取指定路径的图片,并将其存储在`BufferedImage`对象中。*/

                this.split_images = new Image[rank*rank];

                this.image_width = bufferedImage.getWidth()/rank;    //分割单元图像宽度

                this.image_height = bufferedImage.getHeight()/rank;   //分割单元图像高度

                  // 然后计算出每个分割后的图像单元的宽度和高度,并将这些分割后的图像通过两个for循环嵌套保存到一个一维数组`split_images`中。

                    }

                }

                /*接下来创建了`rank*rank`个按钮,并为每个按钮设置对应的图像。然后将这些按钮存储在一个集合`images_list`中,并通过`Collections.shuffle`方法来打乱这些按钮的顺序。*/

                }

                //将按钮写入集合,用集合的方式打乱分割后的图像

                }

                /*在打乱按钮顺序后,代码使用一个while循环来检查打乱后的顺序是否是可解的。它通过比较按钮的顺序来计算逆序数的个数,然后判断逆序数的奇偶性来确定图像是否可以被正确还原。如果逆序数为偶数,则拼图可以被正确还原;如果逆序数为奇数,则需要重新打乱按钮的顺序,直到找到一个可解的顺序。*/

} catch (IOException e) {

 最后,通过异常处理来捕获可能发生的`IOException`异常。

}

六.测试分析

1. 用户登录功能:

  1. 当我们从键盘输入已经记录的账号和密码时,可以弹出游戏开始界面,并且会在界面上显示登录成功,若输入没有经过注册的账号密码则会出现登录失败
  2. 当我们注册的时候可以自己输入账号和密码,密码要确认两次,注册成功的账号密码会保存在user_message.txt里面

2. 游戏功能:

(1)  当我们登录成功之后,可以看到简单模式(3X3),普通模式(5X5),困难模式(6X6),限时模式,历史记录,游戏规则,点击可以正常进入相应界面。

(2)  通过鼠标操作,动态的展示每一步移动的结果。

(3)  能够刷新界面;

(4)   结束游戏:可以提前结束游戏,若成功结束游戏,总分=时间分数+移动正确率(正确数/移动正确率)*100,将本场的游戏时间加入到游戏记录中,并按照排序显示之前游戏的时间和该用户信息。上传分数以及获取排名,不可以用户随意增加记录。

七.使用说明

1.运行程序,首先出现主界面。主界面为用户登录界面,需要用户输入账号和密码才能登录进入游戏,没有设立账号或者想设立多个账号可以点击注册。

2.游戏预选界面包括6个选项:”简单模式(3X3),普通模式(5X5),困难模式(6X6),限时模式,历史记录,游戏规则,可以自行选择哪个难度,

3.进入游戏界面,左边是拼图区,右边是预览区,通过鼠标移动灰色方块,使得拼图区的其他八个小块恢复成右边预览区的样子即为游戏胜利,上面有步数,时间,分数的信息。

4.  限时模式游戏规则一样,但是在固定时间之内没完成会显示游戏失败

5   历史记录只能查看前十次的游戏记录

八.测试数据

游戏登录成功界面截图:

简单模式(3X3)游戏成功界面截图:

限时模式失败的界面截图:

历史记录的界面截图:

九.源代码实现

具体源代码可以到我资源区下载,压缩包里包括《数据结构课程设计报告》,《课程设计报告PPT》,《程序说明文件》和源代码文件夹

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GPT-4.5 怎么样?如何升级使用ChatGPTPlus/Pro? GPT-4.5设计目标是成为一款非推理型模型的巅峰之作

GPT-4.5 怎么样&#xff1f;如何升级使用ChatGPTPlus/Pro? GPT-4.5设计目标是成为一款非推理型模型的巅峰之作 今天我们来说说上午发布的GPT-4.5&#xff0c;接下来我们说说GPT4.5到底如何&#xff0c;有哪些功能&#xff1f;有哪些性能提升&#xff1f;怎么快速使用到GPT-4.…

【vscode-解决方案】vscode 无法登录远程服务器的两种解决办法

解决方案一&#xff1a; 查找原因 命令 ps ajx | grep vscode 可能会看到一下这堆信息&#xff08;如果没有大概率不是这个原因导致&#xff09; 这堆信息的含义&#xff1a;当你使用 vscode 远程登录服务器时&#xff0c;我们远程机器服务端要给你启动一个叫做 vscode serv…

一、对4*3按键模块编程分析

一、4*3键盘模块实物分析 说明&#xff1a; 1、横着4排&#xff0c;竖着3列&#xff0c;加起来共7组&#xff0c;所以对外引出7根线。 2、根据排针终端引脚又可分两类。即横排和竖列对应的引脚。 二、代码编写构想&#xff1a; 1、使用7个gpio输入中断&#xff0c;检测7个…

DeepSeek实战

DeepSeek 接入实战&#xff1a;从零开始快速上手 引言 在当今的 AI 领域&#xff0c;DeepSeek 作为一个强大的自然语言处理&#xff08;NLP&#xff09;平台&#xff0c;提供了丰富的 API 接口&#xff0c;帮助开发者快速实现智能对话、文本生成、语义分析等功能。本文将带你…

【告别双日期面板!一招实现el-date-picker智能联动日期选择】

告别双日期面板&#xff01;一招实现el-date-picker智能联动日期选择 1.需求背景2.DateTimePicker 现状图3.日期选择器实现代码4.日期选择器实现效果图5.日期时间选择器实现代码6.日期时间选择器实现效果图 1.需求背景 在用户使用时间查询时&#xff0c;我们经常需要按月份筛选…

Linux(ftrace)__mcount的实现原理

Linux 内核调试工具ftrace 之&#xff08;_mcount的实现原理&#xff09; ftrace 是 Linux 内核中的一种跟踪工具&#xff0c;主要用于性能分析、调试和内核代码的执行跟踪。它通过在内核代码的关键点插入探针&#xff08;probe&#xff09;来记录函数调用和执行信息。这对于开…

tauri2+typescript+vue+vite+leaflet等的简单联合使用(一)

项目目标 主要的目的是学习tauri。 流程 1、搭建项目 2、简单的在项目使用leaflet 3、打包 准备项目 环境准备 废话不多说&#xff0c;直接开始 需要有准备能运行Rust的环境和Node&#xff0c;对于Rust可以参考下面这位大佬的文章&#xff0c;Node不必细说。 Rust 和…

关于流水线的理解

还是不太理解&#xff0c;我之前一直以为&#xff0c;对axis总线&#xff0c;每一级的寄存器就像fifo一样&#xff0c;一级一级的分级存储最后一级需要的数据。 像这张图&#xff0c;一开始是在解析axis流形式的数据包&#xff0c;数据包一直都能输入&#xff0c;所以valid一直…

Python代码之美:从规范到艺术

基础规范&#xff1a;代码的"颜值"很重要 &#x1f449;大礼包&#x1f381;&#xff1a;&#x1f448; PEP 8&#xff1a;不只是规范&#xff0c;是写作艺术 良好的代码格式就像优美的书法&#xff0c;让人赏心悦目。比如&#xff1a; # 不推荐的写法 def calcul…

8 SpringBoot进阶(上):AOP(面向切面编程技术)、AOP案例之统一操作日志

文章目录 前言1. AOP基础1.1 AOP概述: 什么是AOP?1.2 AOP快速入门1.3 Spring AOP核心中的相关术语(面试)2. AOP进阶2.1 通知类型2.1.1 @Around:环绕通知,此注解标注的通知方法在目标方法前、后都被执行(通知的代码在业务方法之前和之后都有)2.1.2 @Before:前置通知,此…

七星棋牌 6 端 200 子游戏全开源修复版源码(乐豆 + 防沉迷 + 比赛场 + 控制)

七星棋牌源码 是一款运营级的棋牌产品&#xff0c;覆盖 湖南、湖北、山西、江苏、贵州 等 6 大省区&#xff0c;支持 安卓、iOS 双端&#xff0c;并且 全开源。这个版本是 修复优化后的二开版本&#xff0c;新增了 乐豆系统、比赛场模式、防沉迷机制、AI 智能控制 等功能&#…

【人工智能】Deepseek 与 Kimi 联袂:重塑 PPT 创作,开启智能演示新纪元

我的个人主页 我的专栏&#xff1a;人工智能领域、java-数据结构、Javase、C语言&#xff0c;希望能帮助到大家&#xff01;&#xff01;&#xff01;点赞&#x1f44d;收藏❤ 前言 在当今快节奏的工作与学习场景中&#xff0c;PPT 制作常常是一项耗时耗力的任务。从前期的资…

基于JAVA+Spring+mysql_快递管理系统源码+设计文档

文末获取源码数据库文档 感兴趣的可以先收藏&#xff0c;有毕设问题&#xff0c;项目以及论文撰写等问题都可以和博主沟通&#xff0c;尽最大努力帮助更多的人&#xff01; 摘 要 随着物流行业信息化的深入使得物流过程中货物的状态和变化透明化&#xff0c;现代信息化的接入使…

Python----数据分析(Numpy:安装,数组创建,切片和索引,数组的属性,数据类型,数组形状,数组的运算,基本函数)

一、 Numpy库简介 1.1、概念 NumPy(Numerical Python)是一个开源的Python科学计算库&#xff0c;旨在为Python提供 高性能的多维数组对象和一系列工具。NumPy数组是Python数据分析的基础&#xff0c;许多 其他的数据处理库&#xff08;如Pandas、SciPy&#xff09;都依赖于Num…

【SQL】MySQL中的字符串处理函数:concat 函数拼接字符串,COALESCE函数处理NULL字符串

MySQL中的字符串处理函数&#xff1a;concat 函数 一、concat &#xff08;&#xff09;函数 1.1、基本语法1.2、示例1.3、特殊用途 二、COALESCE&#xff08;&#xff09;函数 2.1、基本语法2.2、示例2.3、用途 三、进阶练习 3.1 条件和 SQL 语句3.2、解释 一、concat &…

JAVA面试常见题_基础部分_Dubbo面试题(上)

Dubbo 支持哪些协议&#xff0c;每种协议的应用场景&#xff0c;优缺点&#xff1f; • dubbo&#xff1a; 单一长连接和 NIO 异步通讯&#xff0c;适合大并发小数据量的服务调用&#xff0c;以及消费者远大于提供者。传输协议 TCP&#xff0c;异步&#xff0c;Hessian 序列化…

StableDiffusion打包 项目迁移 项目分发 1

文章目录 SD项目迁移前置知识webui-user.batwebui.batlaunch_utils.py 下一篇开始实践 SD项目迁移 显卡驱动更新&#xff1a;https://www.nvidia.cn/geforce/drivers/ 下载安装三个程序&#xff1a; python3.10.6: https://www.python.org/downloads/release/python-3106/gi…

vscode使用豆包MARSCode----集成doubao1.5 DeepSeekR1 DeepseekV3模型的ai编程插件

引入扩展 打开VSCode扩展窗口&#xff0c;在搜索窗口搜索MarsCode&#xff0c;找到MarsCode 插件单击「install」&#xff0c;完成安装&#xff0c;登录即可使用MarsCode 编程助手。 主要功能 主要快捷键 / explain 解释项目代码&#xff0c;AI 返回的内容有结构分类&#…

uni小程序wx.switchTab有时候跳转错误tab问题,解决办法

在一个子页面里面使用uni.switchTab或者wx.switchTab跳转到tab菜单的时候&#xff0c;先发送了一个请求&#xff0c;然后执行跳转到tab菜单&#xff0c;但是这个时候&#xff0c;出错了........也是非常的奇怪&#xff0c;不加请求就没问题......但是业务逻辑就是要先执行某个请…

【Kimi】自动生成PPT-并支持下载和在线编辑--全部免费

【Kimi】免费生成PPT并免费下载 用了好几个大模型&#xff0c;有些能生成PPT内容&#xff1b; 有些能生成PPT&#xff0c;但下载需要付费&#xff1b; 目前只有Kimi生成的PPT&#xff0c;能选择模板、能在线编辑、能下载&#xff0c;关键全部免费&#xff01; 一、用kimi生成PP…