小游戏源码开发搭建技术栈和服务器配置流程
近些年各种场景小游戏开发搭建版本层出不穷,山东布谷科技拥有多年海内外小游戏源码开发经验,现为从事小游戏源码开发或游戏运营的朋友们详细介绍小游戏开发及服务器配置流程。
一、可以对接到app的小游戏是如何开发的
1、小游戏源码开发的需求分析:
明确目标:确定 app 的核心功能以及希望通过集成小游戏达到的目的,如增加用户粘性、提高用户参与度、获取广告收益等。同时要确定小游戏的类型、主题、玩法等,使其与 app 的整体风格和目标用户群体相契合。
用户研究:了解目标用户的喜好、行为模式以及对小游戏的接受程度,以便设计出更符合用户需求的游戏。
2、小游戏源码开发技术选型:
前端框架:选择适合的前端开发框架,如 React Native、Flutter 等,以便实现跨平台开发,降低开发成本和时间。如果是针对特定平台(如 iOS 或 Android),也可以选择原生开发技术(如 Swift 或 Java/Kotlin)。
游戏引擎(可选):对于较为复杂的游戏,可以选择合适的游戏引擎,如 Unity、Cocos2d-x 等,这些引擎提供了丰富的功能和工具,能够提高游戏的开发效率和性能。
小游戏广告 SDK:选择合适的广告平台,并获取其广告 SDK,以便在小游戏中展示广告。常见的广告平台有 Google AdMob、Facebook Audience Network、腾讯广点通等。
小游戏后端技术(可选):如果小游戏需要后端支持,如用户登录、数据存储、排行榜等功能,需要选择合适的后端技术,如 Node.js、Java、Python 等,并搭建相应的后端服务器。
3、小游戏设计与开发:
游戏框架搭建:使用选定的技术和工具搭建游戏的基本框架,包括游戏场景、角色、道具等元素的初始化。
游戏逻辑实现:根据游戏设计,编写代码实现游戏的核心玩法、规则、关卡等逻辑。例如,对于一款消除类游戏,需要实现方块的消除规则、关卡的生成和难度递增等逻辑。
UI/UX 设计:设计游戏的用户界面和用户体验,确保游戏界面美观、简洁、易用,操作流畅。例如,设计合理的游戏菜单、按钮、提示信息等,以及游戏的动画效果、音效等,增强游戏的趣味性和吸引力。
4、小游戏广告系统对接:
注册和登录广告平台:在选定的广告平台上注册账号,并登录开发者后台。
集成广告 SDK:根据广告平台提供的文档和指引,将广告 SDK 集成到小游戏项目中,包括添加依赖、初始化 SDK 等操作。
创建广告位:在广告平台的开发者后台中,创建对应的广告位,并获取广告位的 ID 或其他标识符,以便在游戏中加载和展示广告。
广告加载和展示:在游戏的适当位置(如游戏开始前、结束后、暂停时等)调用广告加载和展示的接口或方法,根据广告位的不同,展示方式也会有所区别。
广告事件监听和回调:添加事件监听和回调函数,以便处理广告的交互和用户行为,如广告的点击、关闭等事件。
5、测试与优化:
功能测试:对小游戏的各项功能进行全面测试,包括游戏玩法、广告展示、用户登录等,确保各项功能正常运行,没有漏洞和错误。
性能测试:测试小游戏的加载速度、流畅度、内存占用等性能指标,优化代码和资源配置,提高游戏的性能和稳定性。
用户体验测试:邀请目标用户进行测试,收集用户的反馈意见,根据用户的反馈对游戏的界面、玩法、广告展示等方面进行优化,提高用户体验。
6、发布与推广:
打包发布:将小游戏打包成适合 app 平台的安装包,如 Android 的 APK 文件或 iOS 的 IPA 文件。
应用签名:对安装包进行签名,确保应用的安全性和完整性。
提交审核:将打包好的应用提交到各大应用商店进行审核,如 Google Play、App Store 等,审核通过后即可发布上线。
推广营销:通过各种渠道进行小游戏的推广,如社交媒体、广告投放、合作推广等,提高小游戏的知名度和用户量。
二、通用小游戏源码开发技术栈
HTML5 + CSS3 + JavaScript(适合网页小游戏)
-
- HTML5:
- 它提供了游戏的基本结构。例如,使用<canvas>标签可以创建一个绘图区域,用于绘制游戏场景、角色等图形元素。像在一个简单的 2D 射击游戏中,游戏的背景、敌人和玩家角色的图形都可以在<canvas>中绘制。
- 还可以利用 HTML5 的音频和视频标签(<audio>和<video>)来添加游戏背景音乐和过场动画等多媒体元素。
- CSS3:
- HTML5:
主要用于游戏的样式设计。通过 CSS3 的样式规则,可以设置游戏元素的外观,如颜色、大小、位置等。例如,使用transform属性可以实现游戏元素的旋转、缩放和平移等动画效果,增强游戏的视觉体验。在一个休闲的拼图游戏中,可以用 CSS3 来设置拼图块的样式,包括它们的边框、背景颜色等。
-
- JavaScript:
- 是游戏的核心逻辑部分。它可以处理用户输入,比如玩家通过键盘或鼠标控制游戏角色的移动。例如,在一个贪吃蛇游戏中,通过监听键盘事件,使用 JavaScript 代码来改变蛇头的方向。
- 也可以用于实现游戏的物理效果,如碰撞检测。在一个弹球游戏中,JavaScript 可以检测弹球与边界以及障碍物之间的碰撞,并根据碰撞情况更新弹球的运动方向和速度。
- JavaScript:
Unity(适合跨平台 3D/2D 小游戏)
-
- 图形渲染:
- Unity 具有强大的图形渲染引擎。对于 3D 游戏,它可以高效地渲染复杂的场景,包括光照效果(如实时阴影、反射等)。例如,在一个 3D 冒险游戏中,阳光透过树叶的斑驳光影效果可以通过 Unity 的光照系统来实现。
- 在 2D 游戏方面,Unity 也提供了诸如精灵(Sprite)系统,方便开发者管理和渲染 2D 图像。比如在一个 2D 平台跳跃游戏中,游戏角色和各种平台道具等都可以作为精灵进行渲染。
- 物理引擎:
- 内置了物理引擎,支持刚体(Rigidbody)、碰撞器(Collider)等组件。以一个汽车竞速游戏为例,车辆的运动、碰撞和轮胎与地面的摩擦等物理效果都可以通过 Unity 的物理引擎来模拟。
- 脚本编程:
- 支持多种编程语言,如 C#。开发者可以通过编写脚本控制游戏对象的行为。在一个塔防游戏中,使用 C# 脚本可以控制防御塔的攻击逻辑、敌人的移动路径等。
- 图形渲染:
2.Cocos2d - x(适合 2D 手机小游戏)
-
- 场景管理:
提供了一套完善的场景管理机制。开发者可以方便地创建游戏的不同场景,如主菜单场景、游戏关卡场景、游戏结束场景等。例如,在一个消除类手机游戏中,从游戏启动的加载场景,到进入游戏后的关卡场景,再到关卡结束后的结算场景,都可以通过 Cocos2d - x 的场景管理来组织。
-
- 精灵和动画系统:
有丰富的精灵类和动画制作工具。可以轻松地创建和管理 2D 精灵,并且实现精灵的动画效果。在一个横版格斗游戏中,游戏角色的各种攻击动作、行走姿势等动画都可以利用 Cocos2d - x 的动画系统来制作。
-
- 跨平台支持:
能够很好地支持多种移动平台,如 iOS 和 Android。开发者可以使用一套代码库来开发游戏,然后通过相应的编译工具将游戏发布到不同的平台上。这大大节省了开发成本,提高了开发效率。
三、小游戏源码搭建服务器配置流程(基于 Linux 服务器部署网页小游戏为例)
- 服务器选择与安装操作系统
1、服务器选择:
根据游戏的预估流量、用户数量等因素选择合适的服务器配置。如果是一个小型的休闲网页游戏,刚开始可以选择云服务器的入门级配置,如 1 核 CPU、1GB 内存的配置。对于大型多人在线游戏,可能需要多核 CPU、大容量内存和高带宽的服务器。
2、操作系统安装:
常用的操作系统有 Ubuntu Server、CentOS 等。以 Ubuntu Server 为例,首先需要从官方网站下载镜像文件,然后通过服务器的远程管理工具(如 iDRAC 或 IPMI)将镜像文件刻录到服务器的硬盘上。在安装过程中,需要设置好基本的网络配置(如 IP 地址、子网掩码、网关等)、用户账号和密码等信息。
- 安装服务器软件
Web 服务器安装:
对于网页小游戏,通常需要安装一个 Web 服务器,如 Nginx 或 Apache。以 Nginx 为例,在 Ubuntu Server 上,可以通过终端命令sudo apt - get update更新软件包列表,然后使用sudo apt - get install nginx命令来安装 Nginx。安装完成后,可以通过服务器的 IP 地址在浏览器中访问 Nginx 的默认页面,检查是否安装成功。
3.数据库服务器安装(如果需要):
如果游戏需要存储用户数据(如玩家的得分、装备等信息),需要安装数据库服务器。常见的有 MySQL 或 MongoDB。以 MySQL 为例,在 Ubuntu Server 上,可以使用命令sudo apt - get install mysql - server进行安装。在安装过程中,会提示设置 root 用户的密码等信息。安装完成后,可以使用mysql - u root - p命令登录数据库进行后续的数据库配置,如创建游戏相关的数据库和表。
4.配置服务器软件
Nginx 配置(以部署 HTML5 游戏为例):
首先,需要将游戏文件(包括 HTML、CSS、JavaScript 文件)上传到服务器的指定目录,如/var/www/html。然后,打开 Nginx 的配置文件(通常位于/etc/nginx/sites - available/default),在server块中设置正确的root目录指向游戏文件所在的目录,例如root /var/www/html;。同时,可以配置服务器监听的端口(默认是 80 端口),如果需要使用其他端口(如 8080 端口),可以修改listen指令。
5.MySQL 配置(如果需要):
配置数据库的用户权限,确保游戏服务器能够安全地访问和操作数据库。可以通过创建具有适当权限的数据库用户来实现。例如,使用CREATE USER 'game_user'@'localhost' IDENTIFIED BY 'password';命令创建一个名为game_user的用户,密码为password,并且该用户只能从本地访问数据库。然后,使用GRANT ALL PRIVILEGES ON game_database.* TO 'game_user'@'localhost';命令授予该用户对游戏相关数据库(假设名为game_database)的所有权限。
6.安全配置
-
- 防火墙设置:
- 在服务器上启用防火墙,如 Ubuntu Server 上的ufw(Uncomplicated Firewall)。可以通过命令sudo ufw enable来启用防火墙,然后使用sudo ufw allow命令来允许特定的端口访问。例如,对于一个网页游戏,需要允许 80 端口(如果使用 Nginx 默认端口)或其他配置的 Web 服务器端口的访问,命令可以是sudo ufw allow 80。
- SSL 证书配置(如果需要):
- 如果游戏需要通过 https 协议来保证数据安全和用户信任,需要配置 SSL 证书。可以通过免费的证书颁发机构(如 Let's Encrypt)来获取证书。在 Ubuntu Server 上,可以使用 Certbot 工具来获取和安装证书。首先,通过sudo apt - get install certbot python - certbot - nginx安装 Certbot 和相关的 Nginx 插件,然后使用certbot --nginx命令来自动获取和配置 SSL 证书,按照提示输入相关信息(如邮箱地址等)即可。
- 防火墙设置:
7. 性能优化与监控
-
- 性能优化:
- 对于服务器软件,可以进行一些性能优化配置。例如,在 Nginx 中,可以调整worker_processes参数来优化服务器的并发处理能力,根据服务器的 CPU 核心数来合理设置这个参数。一般来说,可以将worker_processes设置为服务器的 CPU 核心数。
- 对于数据库,优化查询语句和索引设置可以提高数据访问效率。例如,在 MySQL 中,如果游戏经常需要根据玩家的 ID 来查询玩家数据,可以在玩家数据表中为玩家 ID 字段创建索引,以加快查询速度。
- 监控:
- 安装服务器监控工具,如 Zabbix 或 Prometheus。以 Zabbix 为例,在 Ubuntu Server 上,可以通过添加 Zabbix 官方仓库,然后使用sudo apt - get install zabbix - server - mysql zabbix - frontend - php zabbix - agent命令来安装 Zabbix 服务器端、Web 前端和客户端代理。安装完成后,通过浏览器访问 Zabbix 的 Web 界面(默认地址是http://server_ip/zabbix),进行服务器性能指标(如 CPU 使用率、内存使用率、网络流量等)的监控配置。
- 性能优化:
- 不同小游戏源码的功能大概有哪些
- 游戏逻辑功能:这是小游戏的基础,定义了游戏的基本规则、角色的行为逻辑、得分机制、胜负判定条件等。例如,在射击游戏中,子弹的发射逻辑、敌人的移动和攻击逻辑;在消除类游戏中,方块的消除规则、关卡的推进条件等。
- 关卡设计功能:包括不同关卡的设置,每个关卡具有独特的地图布局、任务目标、难度级别、敌人或障碍物配置等。随着关卡的推进,游戏难度逐渐增加,以保持玩家的挑战性和兴趣。
- 道具系统:游戏中可以设置各种道具,玩家通过获取或使用道具来获得特殊能力或优势。比如在跑酷游戏中的加速道具、护盾道具;在解谜游戏中的提示道具等。
- 技能系统(如果适用):某些小游戏可能具有角色技能系统,玩家可以通过升级或解锁技能来增强角色的能力,丰富游戏的玩法策略。例如,角色扮演类的小游戏中,角色可能有攻击技能、防御技能、辅助技能等。
- 用户体验相关功能:
- 图形与界面设计功能:提供精美的游戏画面、场景设计、角色形象设计以及直观的用户界面布局。良好的图形设计能吸引玩家的注意力,而简洁易懂的界面方便玩家操作。
- 动画与特效功能:角色的动作动画、场景的过渡动画、特效演出(如爆炸、光影、粒子效果等)可以增强游戏的视觉效果和趣味性。
- 音效与音乐功能:包括背景音乐、角色的语音、各种动作的音效(如射击声、碰撞声、点击按钮的声音等),为玩家营造出丰富的听觉体验,增强游戏的沉浸感。
- 操作反馈功能:当玩家进行操作时,游戏给予相应的反馈,如按键的触感反馈(如果是移动端或有特殊设备支持)、操作后的视觉反馈(如按钮的点击效果、操作成功或失败的提示)等,让玩家清楚知道自己的操作是否被正确响应。
- 社交互动相关功能:
- 排行榜功能:记录玩家的游戏成绩,如得分、通关时间等,并进行排名展示。玩家可以查看自己在好友或全球玩家中的排名,激发竞争意识,增加游戏的粘性。
- 好友系统:玩家可以添加好友、查看好友的游戏状态、邀请好友一起游戏等,促进玩家之间的社交互动。
- 分享功能:玩家可以将自己的游戏成绩、精彩瞬间等分享到社交平台,吸引更多人参与游戏,同时也扩大了游戏的传播范围。
- 互动对战功能(如果支持多人模式):允许多个玩家同时在线进行对战或合作游戏,玩家可以与其他玩家实时互动、交流,增加游戏的趣味性和社交性。
- 数据存储与管理功能:
- 用户数据存储:记录玩家的游戏进度、成就、道具、解锁的关卡等信息,以便玩家下次继续游戏时可以从上次的进度开始。
- 游戏设置功能:玩家可以根据自己的需求和偏好,对游戏的音效、画面质量、操作方式等进行个性化设置。
- 其他辅助功能:
- 新手引导功能:为新玩家提供游戏的操作指南、玩法介绍,帮助他们快速上手游戏。
- 广告展示功能:开发者可以在游戏中嵌入广告,以获取广告收益。广告的展示方式可以是视频广告、横幅广告、插屏广告等。
- 更新功能:开发者可以发布游戏的更新版本,包括修复漏洞、优化性能、添加新的内容等,玩家可以通过游戏内的更新提示进行更新。
以上大概是小游戏源码开发搭建的基本内容,希望对从事游戏开发行业的朋友有一定的帮助!
相关文章:
小游戏源码开发搭建技术栈和服务器配置流程
近些年各种场景小游戏开发搭建版本层出不穷,山东布谷科技拥有多年海内外小游戏源码开发经验,现为从事小游戏源码开发或游戏运营的朋友们详细介绍小游戏开发及服务器配置流程。 一、可以对接到app的小游戏是如何开发的 1、小游戏源码开发的需求分析: 明…...
【Rust自学】15.3. Deref trait Pt.2:隐式解引用转化与可变性
喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 15.3.1. 函数和方法的隐式解引用转化(Deref Coercion) 隐式解引用转化(Deref Coercion)是为…...
SQL-leetcode—1174. 即时食物配送 II
1174. 即时食物配送 II 配送表: Delivery ------------------------------------ | Column Name | Type | ------------------------------------ | delivery_id | int | | customer_id | int | | order_date | date | | customer_pref_delivery_date | date | -------------…...
css3 svg制作404页面动画效果HTML源码
源码介绍 css3 svg制作404页面动画效果HTML源码,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果 效果预览 源码如下 <!doctype html> <html> <head> <meta charse…...
MATLAB提供的颜色映射表colormap——伪彩色
图像处理领域的一个习惯:不是真实的颜色,一般用伪彩色。一是说明不是物体本身的颜色,二是彩色更容易分辨。 MATLAB陆续提供了16种颜色映射表colormap。 之前的都很丑,近5年新增的4种还可以。总的说来还是丑。 这是一种鸟的名字。…...
2013年蓝桥杯第四届CC++大学B组真题及代码
目录 1A:高斯日记(日期计算) 2B:马虎的算式(暴力模拟) 3C:第39级台阶(dfs或dp) 4D:黄金连分数(递推大数运算) 5E:前缀…...
我的创作纪念日——1/23
机缘 想起写博客,其实是当时看鹏哥C语言时,他说通过写博客的方式来记录自己学习过程,有利于提升自己。尽管我只看了几集就没怎么看,但是写博客的习惯保留下来。 至于为什么,一方面单纯当作单个代码库,把自…...
C# Interlocked 类使用详解
总目录 前言 在多线程编程中,确保多个线程对共享资源的安全访问是一个关键挑战。C# 提供了多种同步机制来处理并发问题,其中 System.Threading.Interlocked 类提供了一种轻量级的方法来进行原子操作。它允许您执行一些常见的增量、减量、交换等操作&…...
SYN Flooding的攻击原理
SYN Flooding是一种常见的网络攻击方式,属于拒绝服务攻击(DoS)的一种,其攻击原理主要是利用了TCP协议的三次握手过程,以下是具体介绍: TCP三次握手正常流程 第一次握手:客户端向服务器发送一个…...
Mono里运行C#脚本35—加载C#语言基类的过程
前面大体地分析了整个Mono运行过程,主要从文件的加载,再到EXE文件的入口点, 然后到方法的编译,机器代码的生成,再到函数调用的跳板转换,进而解析递归地实现JIT。 但是还有很多功能没有解析的,就是C#语言相关最多的,就是类的加载,以及类语言设计的实现属性, 比如类的…...
类包含类 三角分形 面向对象
Cad c# Sj类的构造函数,直接包含电线和三个分形三角形。...
Flutter:搜索页,搜索bar封装
view 使用内置的Chip简化布局 import package:chenyanzhenxuan/common/index.dart; import package:ducafe_ui_core/ducafe_ui_core.dart; import package:flutter/material.dart; import package:get/get.dart; import package:tdesign_flutter/tdesign_flutter.dart;import i…...
chrome插件:网页图片高清下载
前置条件: 安装有chrome谷歌浏览器的电脑 使用步骤: 1.打开chrome扩展插件 2.点击管理扩展程序 3.加载已解压的扩展程序 4.选择对应文件夹 5.成功后会出现一个扩展小程序 6.点击对应小程序 7.输入需要访问的网址,点击扩展插件即可进行图片…...
docker 简要笔记
文章目录 一、前提内容1、docker 环境准备2、docker-compose 环境准备3、流程说明 二、打包 docker 镜像1、基础镜像2、国内镜像源3、基础的dockerfile4、打包镜像 四、构建运行1、docker 部分2、docker-compose 部分2.1、构建docker-compose.yml2.1.1、同目录构建2.1.2、利用镜…...
Java I/O 流介绍
Java学习资料 Java学习资料 Java学习资料 一、引言 在 Java 编程中,I/O(Input/Output)流是处理输入和输出操作的核心机制。它允许程序与外部设备(如文件、网络连接、键盘、显示器等)进行数据交互。通过使用 I/O 流&…...
C# OpenCV机器视觉:利用CNN实现快速模板匹配
在一个阳光灿烂的周末,阿强正瘫在沙发上,百无聊赖地换着电视频道。突然,一则新闻吸引了他的注意:某博物馆里一幅珍贵的古画离奇失踪,警方怀疑是被一伙狡猾的盗贼偷走了,现场只留下一些模糊不清的监控画面&a…...
数据结构——实验七·排序
欢迎各位大佬们来到Tubishu的博客🌟 Tubishu是一名计算机本科生,不定期发送一些在学校的成果供佬们消遣~希望能为佬的编程之路添砖加瓦⭐🔥 求各位大佬们垂怜🔥点赞评论一下呗🔥🔥 本文专栏 ➡️ 数据结构 …...
Flutter_学习记录_Tab的简单Demo~真的很简单
1. Tab的简单使用了解 要实现tab(选项卡或者标签视图)需要用到三个组件: TabBarTabBarViewTabController 这一块,我也不知道怎么整理了,直接提供代码吧: import package:flutter/material.dart;void main() {runApp(MyApp());…...
const的用法
文章目录 一、C和C中const修饰变量的区别二、const和一级指针的结合const修饰的量常出现的错误是:const和一级指针的结合总结:const和指针的类型转换公式 三、const和二级指针的结合 一、C和C中const修饰变量的区别 C中:const必须初始化,叫常…...
分布式微服务系统简述
distributed microservice 分布式与微服务的定义及关系;分布式微服务架构里的各组件,如:配置中心、服务注册/发现、服务网关、负载均衡器、限流降级、断路器、服务调用、分布式事务等;spring cloud 介绍及实现案例,如…...
Uniapp开发总结
一、tabBar 如果应用是一个多 tab 应用,可以通过 tabBar 配置项指定一级导航栏,以及 tab 切换时显示的对应页。 pages.json 页面路由 | uni-app官网 pages.json基本配置: "tabBar": {"color": "#000",&quo…...
uniapp APP端页面触发调用webview(页面为uniapp开发的H5)里的方法
原理: 使用 getCurrentInstance() 获取当前组件的 Vue 实例,通过 instance.proxy.$scope.$getAppWebview() 获取 Uniapp 的原生 WebView 对象。 使用 WebView 提供的 evalJS 方法,执行嵌入 H5 页面内的 JavaScript 代码 <template>&l…...
Qt 5.14.2 学习记录 —— 이십 QFile和多线程
文章目录 1、QFile1、打开2、读写3、关闭4、程序5、其它功能 2、多线程1、演示2、锁 3、条件变量和信号量 1、QFile Qt有自己的一套文件体系,不过Qt也可以使用C,C,Linux的文件操作。使用Qt的文件体系和Qt自己的一些类型更好配合。 管理写入读…...
未初始化数据恢复全攻略
没有初始化概述 在日常使用电脑、硬盘、U盘等存储设备时,我们可能会遇到“没有初始化”的提示。这一情况通常发生在存储设备突然无法被系统正常识别或访问时,系统往往要求我们先进行初始化操作。然而,初始化操作意味着对存储设备进行格式化&…...
自动驾驶中的多传感器时间同步
目录 前言 1.多传感器时间特点 2.统一时钟源 2.1 时钟源 2.2 PPSGPRMC 2.3 PTP 2.4 全域架构时间同步方案 3.时间戳误差 3.1 硬件同步 3.2 软件同步 3.2.3 其他方式 ① ROS 中的 message_filters 包 ② 双端队列 std::deque 参考: 前言 对多传感器数据…...
三元组抽取在实际应用中如何处理语义模糊性?
在实际应用中,三元组抽取面临语义模糊性的问题,这主要体现在输入文本的非规范描述、复杂句式以及多义性等方面。为了有效处理这种模糊性,研究者们提出了多种方法和技术,以下是一些关键策略: 基于深度学习的方法 深度学…...
代码随想录刷题day16|(哈希表篇)349.两个数组的交集
目录 一、哈希表理论基础 二、集合set在哈希法中的应用 三、相关算法题目 四、相关知识点 1.set集合特点和常用方法 1.1 set集合概述 1.2 set集合特点 1.3 常用方法 2.set集合转换成数组 法1:另新建一个数组 法2:将结果集合转为数组 ▲ 3.数组…...
浅谈Redis
2007 年,一位程序员和朋友一起创建了一个网站。为了解决这个网站的负载问题,他自己定制了一个数据库。于2009 年开发,称之为Redis。这位意大利程序员是萨尔瓦托勒桑菲利波(Salvatore Sanfilippo),他被称为Redis之父,更…...
整数的个数(信息学奥赛一本通-1067)
【题目描述】 给定k(1<k<100)个正整数,其中每个数都是大于等于1,小于等于10的数。写程序计算给定的k个正整数中,1,5和10出现的次数。 【输入】 输入有两行:第一行包含一个正整数k,第二行包含k个正整数…...
macos的图标过大,这是因为有自己的设计规范
苹果官方链接:App 图标 | Apple Developer Documentation 这个在官方文档里有说明,并且提供了sketch 和 ps 的模板。 figma还提供了模板: Figma...
C++17 命名空间的新特性:简化与优化的典范
文章目录 1. 简化的嵌套命名空间1.1 背景与问题1.2 C17的解决方案1.3 实际应用场景1.4 注意事项 2. 声明多个名称的using声明2.1 背景与问题2.2 C17的解决方案2.3 实际应用场景2.4 注意事项 3. 属性命名空间的简化3.1 背景与问题3.2 C17的解决方案3.3 实际应用场景3.4 注意事项…...
使用python-docx包进行多文件word文字、字符批量替换
1、首先下载pycharm。 2、改为中文。 3、安装python-docx包。 搜索包名字,安装。 4、新建py文件,写程序。 from docx import Documentdef replace1(array1):# 替换词典(标签值按实际情况修改)dic {替换词1: array1[0], 替换…...
模块初阶学习
当我们在过去想要实现一个功能时,例如Swap交换函数时,我们需要不断考虑参数的正确与否。如果是在c语言,我们还需要不断更改函数名字,以防止函数名重复。在c我们可以通过函数名重载解决这个问题,但还是有一些小问题&…...
华为 Ascend 平台 YOLOv5 目标检测推理教程
1. 背景介绍 随着人工智能技术的快速发展,目标检测在智能安防、自动驾驶、工业检测等领域中扮演了重要角色。YOLOv5 是一种高效的目标检测模型,凭借其速度和精度的平衡广受欢迎。 华为 Ascend 推理框架(ACL)是 Ascend CANN 软件…...
16.好数python解法——2024年省赛蓝桥杯真题
问题描述 一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位…)上的数字是奇数,偶数位(十位、千位、十万位…)上的数字是偶数,我们就称之为“好数”。 给定一个正整数N,请计算从1到N一共有多少个好数。 输入格式 一个整数N。 输出格式 一个整数代表答案。 样例输入 1 …...
在WSL使用gnome终端
默认在windows11环境下使用WSL会打开windows终端,如果想要使用gnome终端可以进行如下操作 确保 WSLg 已启用: WSLg 默认在 Windows 11 和最新版本的 WSL 2 中启用。 检查 WSL 版本: wsl --list --verbose 如果未启用 WSLg,请更…...
评估篇| 大模型评测综述
在传统的自然语言任务下,如分类等,经常会用精确率、F1等指标,来评测模型的好坏。随着大模型技术研究的快速发展,以往的指标,对于大模型评估显得过于单薄。如何准确地评估大语言模型在不同维度的能力水平,已经成为当前研究的热点问题。为了全面考察大语言模型的有效性,研…...
Ubuntu下载zenodo文件Ubuntu download zenodo
一般数据集文件会比较大,直接下载单个压缩包很慢。可以使用代码多线程下载小文件。 环境 Ubuntu22.04 示例代码 pip3 install zenodo_get zenodo_get https://zenodo.org/records/13715870参考 https://github.com/dvolgyes/zenodo_get...
OpenHarmony 5.0.2 Release来了!
版本概述 OpenHarmony 5.0.2 Release版本对标准系统的能力进行持续完善,以快速迭代的方式推出API 14,相比5.0.1 Release版本,重点做出了如下特性新增或增强: 进一步增强ArkUI、图形图像的能力,提供更多组件的高级属性…...
蓝桥杯3519 填充 | 分类讨论
题目传送门 很简单,遍历一次字符串,将‘?’作为0或1处理,发现00和11统计次数即可。 s str(input()) cnt 0 arr [00, 11, 0?, ?0, 1?, ?1, ??] i0 while i < len(s)-1:if s[i:(i2)] in arr:i 2cnt 1else:i 1 print(cnt)END✨...
均值(信息学奥赛一本通-1060)
【题目描述】 给出一组样本数据,包含n个浮点数,计算其均值,精确到小数点后4位。 【输入】 输入有两行,第一行包含一个整数n(n小于100),代表样本容量;第二行包含n个绝对值不超过1000的…...
Windows Docker Desktop安装及使用 Docker 运行 MySQL
Docker Desktop是Docker的官方桌面版,专为Mac和Windows用户设计,提供了一个简单易用的界面来管理和运行Docker容器。它集成了Docker引擎,为开发人员提供了一个快速、可靠、可扩展的方式来构建、运行和管理应用。DockerDesktop的优势在于&…...
关于使用微服务的注意要点总结
一、防止过度设计 微服务的拆分一定要结合团队人员规模来考虑,笔者就曾遇到过一个公司的项目,是从外部采购回来的,微服务划分为十几个应用,我们在此项目基础上进行自行维护和扩展。由于公司业务规模不大,而且二次开发的…...
对于RocksDB和LSM Tree的一些理解
LSM Tree的读写过程 HBase、LevelDB,rocksDB(是一个引擎)底层的数据结构是LSM Tree适合写多读少的场景,都是追加写入内存中的MemTable,写入一条删除(或修改)标记,而不用去访问实际的…...
Pyecharts之特殊图表的独特展示
在数据可视化的世界里,除了常见的柱状图、折线图、饼图等,还有一些特殊的图表可以为我们带来独特的展示效果,帮助我们以更有趣、更直观的方式呈现数据。Pyecharts 为我们提供了多种特殊图表的绘制功能,本文将介绍象形图、水球图和…...
【Uniapp-Vue3】动态设置页面导航条的样式
1. 动态修改导航条标题 uni.setNavigationBarTitle({ title:"标题名称" }) 点击修改以后顶部导航栏的标题会从“主页”变为“动态标题” 2. 动态修改导航条颜色 uni.setNavigationBarColor({ backgroundColor:"颜色" }) 3. 动态添加导航加载动画 // 添加加…...
图像处理算法研究的程序框架
目录 1 程序框架简介 2 C#图像读取、显示、保存模块 3 C动态库图像算法模块 4 C#调用C动态库 5 演示Demo 5.1 开发环境 5.2 功能介绍 5.3 下载地址 参考 1 程序框架简介 一个图像处理算法研究的常用程序逻辑框架,如下图所示 在该框架中,将图像处…...
c语言操作符(详细讲解)
目录 前言 一、算术操作符 一元操作符: 二元操作符: 二、赋值操作符 代码例子: 三、比较操作符 相等与不相等比较操作符: 大于和小于比较操作符: 大于等于和小于等于比较操作符: 四、逻辑操作符 逻辑与&…...
神经网络|(四)概率论基础知识-古典概型
【1】引言 前序学习了线性回归的基础知识,了解到最小二乘法可以做线性回归分析,但为何最小二乘法如此准确,这需要从概率论的角度给出依据。 因此从本文起,需要花一段时间来回顾概率论的基础知识。 【2】古典概型 古典概型是我…...
省市区三级联动
引言 在网页中,经常会遇到需要用户选择地区的场景,如注册表单、地址填写等。为了提供更好的用户体验,我们可以实现一个三级联动的地区选择器,让用户依次选择省份、城市和地区。 效果展示: 只有先选择省份后才可以选择…...