微信小程序酒店选择日期和入住人数(有效果图)

效果图

请添加图片描述

请添加图片描述
在这里插入图片描述

app.vue

	onLaunch:function(options){this.defaultcache()}defaultcache(){// 入住信息缓存var arr = this.getDateTime();var ReserVation = {reservType:0,//1  人数  2日期InCheckin:{},//入离日期peopleArr:[{title:'成人',num:2},{title:'儿童',num:0},{title:'宝子',num:1},{title:'房间数',num:1},],//入住人数IntimeCur:[{len:0,str:0},{len:0,str:0}],//选择日期timeDataArr:[],//日期数组}ReserVation.timeDataArr = arr[0]ReserVation.IntimeCur = arr[1]ReserVation.InCheckin = arr[2][0]uni.setStorageSync('ReserVation',ReserVation)},// 获取日期getDateTime(){var that = thisvar showY = 3;//显示几个月var timeData = [];//日期数组var timestamp = Date.parse(new Date());var date = new Date(timestamp);//年var Y = date.getFullYear();//月  var M = date.getMonth() + 1;//日var D = date.getDate();// 周几和月份天数var time = {};var Yday = 0,Mday = 0,data = {},param = {},toDays = 2;//toDays	默认住几天for(let i = 0;i < showY;i++){if(12 < (M + i)){Yday = Y + 1Mday = (M + i) - 12}else{Yday = YMday = M + i}time = that.getDaysInMonth(Yday,Mday)data = {year:Yday,moon:Mday,arr:[],days:time.days,Z:time.Z}for(let k = 0;k < time.Z;k++){data.arr.push({date:''});}for(let j = 0;j < time.days;j++){param = {};param.date = j + 1;param.Z = that.getDaysInMonth(Yday,Mday,param.date)param.price = 0;if(i == 0 && (j + 1) < D){param.status = 1}else if(i == 0 && (j + 1) == D){param.status = 2}data.arr.push(param)}timeData.push(data)}var start = {len:0,str:D};// if(that.timeData[start.len].days < (D + 1)){// 	start.len = 1// 	start.str = 0// }var end = {len:0,str:D + toDays - 1}if(timeData[end.len].days < end.str){end.str = end.str - timeData[end.len].daysend.len = 1}start.str = start.str + parseInt(timeData[start.len].Z) - 1end.str = end.str + parseInt(timeData[end.len].Z) - 1var timeCur = [start,end]var Checkin = {start_Y:timeData[timeCur[0].len].year,start_M:timeData[timeCur[0].len].moon,start_D:timeData[timeCur[0].len].arr[timeCur[0].str].date,start_Z:timeData[timeCur[0].len].arr[timeCur[0].str].Z,end_Y:timeData[timeCur[1].len].year,end_M:timeData[timeCur[1].len].moon,end_D:timeData[timeCur[1].len].arr[timeCur[1].str].date,end_Z:timeData[timeCur[1].len].arr[timeCur[1].str].Z,days:toDays,}return [timeData,timeCur,[Checkin]];},// 获取周几和月份天数getDaysInMonth(Y,M,D){if(D){return this.getWeekByDate(`${Y}-${M}-${D}`,true)}//一号周几var Z = this.getWeekByDate(`${Y}-${M}-1`);// 月份天数var days = new Date(Y, M, 0).getDate();return {Z,days}},// 返回周几getWeekByDate(dates,status){let show_day = status?['周日', '周一', '周二', '周三', '周四', '周五', '周六']:['0', '1', '2', '3', '4', '5', '6'];let date = new Date(dates);date.setDate(date.getDate());let day = date.getDay();return show_day[day];},

page-reservation.vue

<template>
<view><view :class="modalName == 'reservation'?'cu-modal bottom-modal show':'cu-modal bottom-modal'" @touchmove.stop="() => false":style="'--CustomBar--:'+CustomBar+'px;z-index:10000;'"><view class="cu-dialog reservation-index"><view class="cu-custom"><view class="cu-bar fixed bg-white dialog-title" :style="'height:'+CustomBar+'px;padding-top:'+StatusBar+'px;'"><view class="action" @click="showModal('')"><text class="cuIcon-close" style="font-size: 42upx;"></text></view><view class="content" :style="'top:'+StatusBar+'px'"><view>选择入住条件</view></view></view></view><!-- 房住 --><view class="reser-room"><view>房住</view><view @click="tabreser(1)"><view v-for="(item,index) in peopleArrCur" :key="index" :class="item.num > 0?'reser-room-cur':''">{{item.num + item.title}}</view><view :class="type == 1?'cuIcon-unfold':'cuIcon-unfold reser-rotate'"></view></view></view><!-- list --><view class="reser-room-list reser-cur" :style="type != 1?'height:0;box-shadow:0;':''"><view v-for="(item,index) in peopleArrCur" :key="index"><view>{{item.title}}</view><view class="room-list-count"><view class="room-list-icon" :class="item.num < 1 || (index == 0 && item.num < 2) || (index == 3 && item.num < 2) || (isType && index == 2)?'list-icon-cur':''"@click="item.num < 1 || (index == 0 && item.num < 2) || (index == 3 && item.num < 2) || (isType && index == 2)?'':countTap(index,1)"><view class="cuIcon-move"></view></view><view>{{item.num}}</view><view class="room-list-icon" :class="item.num > 20 || (isType && index == 2)?'list-icon-cur':''"@click="item.num > 20 || (isType && index == 2)?'':countTap(index,2)"><view class="cuIcon-add"></view></view></view></view></view><!-- 日期 --><view class="reser-room reser-money"><view>入离日期</view><view @click="tabreser(2)"><view><span class="reser-room-cur">{{Checkin.start_M}}月{{Checkin.start_D}}日</span>{{Checkin.start_Z}}</view><view class="reser-room-ing">{{Checkin.days}}晚</view><view v-if="Checkin.days > 1"><span class="reser-room-cur">{{Checkin.end_M}}月{{Checkin.end_D}}日</span>{{Checkin.end_Z}}</view><view :class="type == 2?'cuIcon-unfold':'cuIcon-unfold reser-rotate'"></view></view></view><view class="reser-time" :style="type == 2?'':'height:0;'"><view>*以下价格为单晚入住参考价</view><!-- list --><view class="reser-data"><view v-for="(item,index) in timeTitle" :key="index">{{item}}</view></view><scroll-view scroll-y class="reser-list"@scroll="getScrollTop"><view v-for="(item,index) in timeData" :key="index" class="list-time":id="'Time_'+index"><view><view :class="index == scroll_index && type == 2 && modalName == 'reservation'?'reser-fixed':''">{{item.year}}年{{item.moon}}月</view></view><view><view v-for="(cell,cell_index) in item.arr" :key="cell_index" class="list-date":class="timeCur[1].str != -1 && timeCur[0].len != timeCur[1].len && (index == timeCur[0].len && timeCur[0].str < cell_index || index == timeCur[1].len && timeCur[1].str > cell_index) ? 'list-cur-one':timeCur[1].str != -1 && timeCur[0].len == timeCur[1].len && (index == timeCur[0].len && timeCur[0].str < cell_index && index == timeCur[1].len && timeCur[1].str > cell_index) ? 'list-cur-one':timeCur[1].len - timeCur[0].len > 1 && index == timeCur[1].len - 1?'list-cur-one':(index == timeCur[0].len && cell_index == timeCur[0].str) || (index == timeCur[1].len && cell_index == timeCur[1].str)?'list-cur-two':''" :style="cell.date?'':'visibility: hidden;'"@click="cell.status == 1?'':timetap(index,cell_index)"><view><view :class="cell.status == 1?'reser-hui':cell.status == 2?'reser-chen':''">{{cell.status == 2?'今天':cell.date}}</view><view class="reser-cur-font" v-if="cell.price > 0"><span v-if="((timeCur[1].str != -1 && timeCur[0].len != timeCur[1].len && (index == timeCur[0].len && timeCur[0].str < cell_index || index == timeCur[1].len && timeCur[1].str > cell_index)) ||(timeCur[1].str != -1 && timeCur[0].len == timeCur[1].len && (index == timeCur[0].len && timeCur[0].str < cell_index && index == timeCur[1].len && timeCur[1].str > cell_index)) ||(timeCur[1].len - timeCur[0].len > 1 && index == timeCur[1].len - 1) || ((index == timeCur[0].len && cell_index == timeCur[0].str) || (index == timeCur[1].len && cell_index == timeCur[1].str)))">¥{{cell.price}}</span></view><view class="reser-cur-font" v-if="(index == timeCur[0].len && cell_index == timeCur[0].str) || (index == timeCur[1].len && cell_index == timeCur[1].str)">{{(index == timeCur[0].len && cell_index == timeCur[0].str)?'入住':'离店'}}</view></view></view></view></view><view class="wdh" style="height: 162px;"></view></scroll-view><view class="reser-button"><button class="cu-btn round" @click="btnConfirm">确定</button></view></view></view></view>
</view>
</template>
<script>
export default{data(){return{StatusBar:this.StatusBar,CustomBar: this.CustomBar,type:0,timeTitle:['周日','周一','周二','周三','周四','周五','周六'],timeData:[],timeCur:[{len:0,str:0},{len:0,str:0}],scroll_index:-1,//fiexd日期Checkin:{start_M:'',start_D:'',start_Z:'',end_M:'',end_D:'',end_Z:'',days:'',},//入离日期peopleArrCur:[],}},name: 'page-reservation',props: {modalName: {type: String,default: ''},ReserVation: {type: Object,default: {}},isType: {type: [Boolean, String],default: false},},created(){//默认显示日期或者人数this.type = this.ReserVation.reservType//房住this.peopleArrCur = this.ReserVation.peopleArr//选择的入住时间this.timeCur = this.ReserVation.IntimeCur//日期数组this.timeData = this.ReserVation.timeDataArr//入住时间信息this.Checkin = this.ReserVation.InCheckinthis.list()},methods:{list(){var that = thissetTimeout(() => {that.scroll_index = 0},500)setTimeout(() => {that.getDateHeight();},1000)},timetap(index,cell_index){var that = thisif(that.timeCur[1].str != -1 || (cell_index < that.timeCur[0].str && index == that.timeCur[0].len) || (index < that.timeCur[0].len)){//选择开始that.timeCur[0].len = indexthat.timeCur[0].str = cell_indexthat.timeCur[1].len = indexthat.timeCur[1].str = -1that.Checkin = {start_M:that.timeData[that.timeCur[0].len].moon,start_D:that.timeData[that.timeCur[0].len].arr[that.timeCur[0].str].date,start_Z:that.timeData[that.timeCur[0].len].arr[that.timeCur[0].str].Z,end_M:'',end_D:'',end_Z:'',days:1,}}else{//选择结束var number = 0if(that.timeCur[0].len == index){number = cell_index - that.timeCur[0].str + 1}else{var time = index - that.timeCur[0].len;number += (that.timeData[that.timeCur[0].len].arr.length - that.timeCur[0].str)for(let i = that.timeCur[0].len + 1;i < index;i++){number += that.timeData[i].days}number += (cell_index - parseInt(that.timeData[index].Z)) + 1}if(number > 30){getApp().Tips('最多选择三十天')}else{that.timeCur[1].len = indexthat.timeCur[1].str = cell_indexthat.getCheckinDays(number)}}},// 入离日期getCheckinDays(D){var that = thisthat.Checkin = {start_Y:that.timeData[that.timeCur[0].len].year,start_M:that.timeData[that.timeCur[0].len].moon,start_D:that.timeData[that.timeCur[0].len].arr[that.timeCur[0].str].date,start_Z:that.timeData[that.timeCur[0].len].arr[that.timeCur[0].str].Z,end_Y:that.timeData[that.timeCur[1].len].year,end_M:that.timeData[that.timeCur[1].len].moon,end_D:that.timeData[that.timeCur[1].len].arr[that.timeCur[1].str].date,end_Z:that.timeData[that.timeCur[1].len].arr[that.timeCur[1].str].Z,days:D,}},btnConfirm(){if(this.Checkin.days < 2){return getApp().Tips('请选择离店时间~')}this.$emit('getHotelData', this.peopleArrCur,this.Checkin,this.timeCur);},getDateHeight(){var that = thisvar text = ''for(let i = 0;i < that.timeData.length;i++){text = '#Time_' + iuni.createSelectorQuery().in(that).select(text).boundingClientRect(function (res) {that.timeData[i].TimeHiehgt = res.height + (i == 0?0:that.timeData[i - 1].TimeHiehgt) - 5}).exec();}},getScrollTop(e){var i = this.scroll_index > 0?this.scroll_index - 1:0;for(i;i < this.timeData.length;i++){if(e.detail.scrollTop < this.timeData[i].TimeHiehgt){this.scroll_index = i;break;}}},showModal(target){this.$emit('showModal', target);},countTap(index,type){if(type == 1){this.peopleArrCur[index].num--}else{this.peopleArrCur[index].num++}},tabreser(type){var that = thisif(that.type == type){that.type = 0}else{that.type = typeif(type == 2){that.scroll_index = -1setTimeout(() => {that.scroll_index = 0},500)}}},},
}
</script>
<style>
/* 预定酒店 */
.reservation-index{height: 100vh;}
.dialog-title{position: relative !important;z-index: 0 !important;}
.reser-room{font-size: 26upx;display: flex;align-items: center;justify-content:space-between;color: #666;
height:53px;padding: 0 30upx;background: #fff;width: 100%;float: left;}
.reser-room>view:nth-child(2){display: flex;align-items:center;}
.reser-room>view:nth-child(2)>view{margin-left: 20upx;}
.reser-room>view:nth-child(2)>.cuIcon-unfold{color: #000;}
.reser-cur{box-shadow: inset 0rpx 3rpx 6rpx 1rpx rgba(0,0,0,0.16);}
.reser-room-cur{color: #FC9C39;}
.reser-room-list{width: 100%;float: left;padding: 0 30upx;transition: height 0.3s;background: #fff;height: 200px;overflow: hidden;}
.reser-room-list>view{width: 100%;float: left;height:50px;display:flex;align-items:center;
justify-content:space-between;font-size: 26upx;color: #666;}
.room-list-count{display: flex;align-items: center;}
.room-list-icon{display: flex;align-items: center;justify-content: center;width: 38upx;height: 38upx;border-radius: 50%;color: #fff;
background-color: #FF9800;}
.list-icon-cur{background-color: #939393 !important;}
.room-list-count>view:nth-child(2){margin: 0 10upx;min-width: 34upx;}
.cuIcon-unfold{transform:rotate(0deg);transition: all 0.3s;margin-left: 6upx !important;}
.reser-rotate{transform:rotate(-90deg);}
.reser-room-ing{background-color: #FAFAFA;border-radius: 20upx;padding: 0 20upx;height: 40upx;line-height: 40upx;font-size: 20upx;color: #666;}
/* 日期 */
.reser-money{margin-top: 10px;}
.reser-time{width: 100%;height:calc(100vh - 116px - var(--CustomBar--)) ;background-color: #fff;float: left;transition: height 0.3s;overflow: hidden;}
.reser-time>view{width: 100%;float: left;}
.reser-time>view:nth-child(1){background: #FFE3C6;color: #5F5F5F;height: 31px;display: flex;align-items: center;justify-content: center;}
.reser-data{width: calc(100% - 60upx) !important;float: left;height: 50px;display: flex;align-items: center;font-size: 24upx;
color: #5F5F5F;margin: 0 30upx;}
.reser-data>view{width: calc((100% - 60upx) / 7);margin-left: 10upx;}
.reser-data>view:nth-child(1){margin-left: 0;}
.reser-list{width: 100%;float: left;background: #fff;height:calc(100vh - 197px - var(--CustomBar--));}
.list-time{width: 100%;float: left;position: relative;}
.list-time>view:nth-child(1){padding-bottom:20upx;font-size: 30upx;color: #FC9C39;height: 31px;
width: calc(100% - 56upx);margin: 0 28upx;}
.list-time>view:nth-child(1)>view{height: 31px;border-bottom: 1px solid #F2F4F9;background: #fff;z-index: 1;}
.reser-fixed{position: fixed;top: calc(197px + var(--CustomBar--));width: calc(100% - 56upx);}
.list-time>view:nth-child(2){width: 100%;padding: 20upx 30upx 30upx;float: left;}
.list-date{width: calc((100% - 30px) / 7);height: 58px;border-radius: 10upx;float: left;display: flex;align-items: center;justify-content: center;
margin-left: 5px;margin-top: 5px;}
.list-date{font-size: 30upx;color: #252525;} 
.list-time>view:nth-child(2)>view:nth-child(7n+1){margin-left: 0 !important;}
.list-cur-one{background-color: #F8C691;}
.list-cur-two{background-color: #FC9C39;}
.list-cur-two>view>view:nth-child(1){color: #252525 !important;}
.reser-cur-font{font-size: 24upx;color: #FFFFFF;}
.reser-hui{color: #AAAAAA;}
.reser-chen{color: #FC9C39;}
</style>

需要引入的.vue

<template>
<view><view @click="page_showModal('reservation',1)">打开房租</view><view @click="page_showModal('reservation',2)">打开日历</view><page-reservation v-if="page_modalName" :modalName="page_modalName" :ReserVation="ReserVation" @showModal="page_showModal"@getHotelData="getHotelData"></page-reservation>
</view>
</template>
<script>
import PageReservation from '@/colorui/components/page-reservation.vue'
export default {components:{ PageReservation },data() {return {page_modalName:'',ReserVation:uni.getStorageSync('ReserVation'),//入住人数日期}},methods: {// 修改入住信息getHotelData(peopleArr,InCheckin,IntimeCur){this.ReserVation.peopleArr = peopleArrthis.ReserVation.InCheckin = InCheckinthis.ReserVation.IntimeCur = IntimeCuruni.setStorage({key:"ReserVation",data:this.ReserVation})this.page_showModal('')},// 入住信息弹窗page_showModal(target,type){var that = thisif(type){that.ReserVation.reservType = type}that.page_modalName = '1'setTimeout(() => {that.page_modalName = target},target?100:500)},},
</script>

默认选择当天和明天
入住一次性最多选择三十天
默认获取三个月日期数组

存储信息
InCheckin 选择的日期信息
IntimeCur 组件选择的日期
peopleArr 入住人数信息
timeDataArr 显示的日历

引入的组件库ColorUI组件库

用的是uni-app

遇到问题可以看我主页加我Q,很少看博客,对你有帮助别忘记点赞收藏。

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

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

相关文章

宁盾LDAP统一用户认证与单点登录:构建高效安全的企业身份认证

在信息化时代&#xff0c;企业面临着众多的应用系统和数据资源&#xff0c;如何有效地管理和保护这些资源&#xff0c;确保信息安全和高效利用&#xff0c;成为了企业信息化建设的核心问题。LDAP统一用户认证和单点登录&#xff08;SSO&#xff09;作为一种高效、安全的身份验证…

全开源小狐狸Ai系统 小狐狸ai付费创作系统 ChatGPT智能机器人2.7.6免授权版

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 测试环境&#xff1a;Linux系统CentOS7.6、宝塔、PHP7.4、MySQL5.6&#xff0c;根目录public&#xff0c;伪静态thinkPHP&#xff0c;开启ssl证书 具有文章改写、广告营销文案、编程…

一个java项目中,如何使用sse协议,构造一个chatgpt的流式对话接口

前言 如何注册chatGPT&#xff0c;怎么和它交互&#xff0c;本文就不讲了&#xff1b;因为网上教程一大堆&#xff0c;而且你要使用的话&#xff0c;通常会再包一个算法服务&#xff0c;用来做一些数据训练和过滤处理之类的&#xff0c;业务服务基本不会直接与原生chatGPT交互。…

Git操作与异常处理

文章目录 常用操作1、代码拉取2、代码提交3、暂存区状态4、提交代码5、推送远程仓库 异常处理【1】报错信息&#xff1a;Cannot pull into a repository with state: MERGING【2】报错信息&#xff1a;You have not concluded your merge (MERGE_HEAD exists)【3】报错信息&…

BGP的基本概念和工作原理

AS的由来 l Autonomous System 自治系统&#xff0c;为了便于管理规模不断扩大的网络&#xff0c;将网络划分为不同的AS l 不同AS通过AS号区分&#xff0c;AS号取值范围1&#xff0d;65535&#xff0c;其中64512&#xff0d;65535是私有AS号 l IANA机构负责AS号的分发 AS之…

NumPy简单学习(需要结合书本)

NumPy简单学习&#xff08;需要结合书本&#xff1a;Python数据分析与应用&#xff09; 文章目录 NumPy简单学习&#xff08;需要结合书本&#xff1a;Python数据分析与应用&#xff09;前言导库&#xff1a; 一、大概内容1.掌握NumPy数组对象ndarray&#xff08;1&#xff09;…

Excel 公式的定义、语法和应用(LOOKUP 函数、HLOOKUP 函数、VLOOKUP 函数;MODE.MULT 函数; ROUND 函数)

一、公式的定义和语法 二、公式的应用 附录 查找Excel公式使用方法的官方工具【强烈推荐&#xff01;&#xff01;&#xff01;】&#xff1a;Excel 函数&#xff08;按字母顺序&#xff09;【微软官网】 excel 函数说明语法LOOKUP 函数在向量或数组中查找值LOOKUP(lookup_va…

Linux-文件系统

1. 物理结构 计算机的存储硬件有很多&#xff0c;这里讲磁盘。 磁盘的物理结构大致分为&#xff1a; 磁盘&#xff08;数据存储&#xff09;磁头音圈马达主轴 所有的数据都存储在磁盘上&#xff0c;磁盘有很多片&#xff0c;每一个面都有对应的磁头来对数据进行更改 磁头是…

轻松处理文件名,告别重复命名烦恼!一键覆盖复制操作,让文件管理更高效!

我们每天都在与大量的文件打交道。从工作文档到生活照片&#xff0c;从学习资料到娱乐视频&#xff0c;每一个文件都承载着我们的记忆和辛勤付出。然而&#xff0c;随着文件数量的不断增加&#xff0c;文件名冲突、重复命名等问题也愈发突出&#xff0c;给我们的文件管理带来了…

Python:解析pyserial串口通讯

简介&#xff1a;串行接口简称串口&#xff0c;也称串行通信接口或串行通讯接口&#xff08;通常指COM接口&#xff09;&#xff0c;是采用串行通信方式的扩展接口。串行接口 &#xff08;Serial Interface&#xff09;是指数据一位一位地顺序传送。其特点是通信线路简单&#…

DC-DC电源芯片规格书上的各种参数详解

1.输出电压精确度 输出电压的精确度,也被称为设定点精度,它描述了输出电压的允许误差。该参数通常是在常温,满载和额定输入电压的条件下测得的,它是这样定义的: 输出电压之所以产生误差,是因为元器件本身存在误差,特别是输出端的分压电阻,它将输出电压降低后比PWM比较…

【白盒测试】单元测试的理论基础及用例设计技术(6种)详解

目录 &#x1f31e;前言 &#x1f3de;️1. 单元测试的理论基础 &#x1f30a;1.1 单元测试是什么 &#x1f30a;1.2 单元测试的好处 &#x1f30a;1.3 单元测试的要求 &#x1f30a;1.4 测试框架-Junit4的介绍 &#x1f30a;1.5 单元测试为什么要mock &#x1f3de;️…

BGP配置和应用案例

策略路由的配置步骤 l 策略路由的配置步骤如下&#xff1a; 创建route-map 通过ACL匹配感兴趣的数据&#xff0c;定义策略动作 在指定接口下通过ip policy 命令应用route-map l 最终实现对通过该接口进入设备的数据进行检查&#xff0c;对匹配的数据执行规定的策略…

pytest参数化数据驱动(数据库/execl/yaml)

常见的数据驱动 数据结构&#xff1a; 列表、字典、json串 文件&#xff1a; txt、csv、excel 数据库&#xff1a; 数据库链接 数据库提取 参数化&#xff1a; pytest.mark.parametrize() pytest.fixture()…

大语言模型在研究领域的应用——信息检索中的大语言模型

信息检索中的大语言模型 大语言模型提升信息检索任务利用大语言模型进行信息检索大语言模型增强的信息检索模型. 检索增强的大语言模型输入优化策略.指令微调策略.预训练策略. 总结应用建议未来方向 大语言模型对于传统信息检索技术与应用范式带来了重要影响。这两者在技术路径…

数字接龙(蓝桥杯)

文章目录 数字接龙【问题描述】解题思路DFS 数字接龙 【问题描述】 小蓝最近迷上了一款名为《数字接龙》的迷宫游戏&#xff0c;游戏在一个大小为N N 的格子棋盘上展开&#xff0c;其中每一个格子处都有着一个 0 . . . K − 1 之间的整数。游戏规则如下&#xff1a; 从左上…

游戏发行困境及OgGame云游戏解决方案简述

随着全球化浪潮的持续推进&#xff0c;中国游戏开发者们不再满足于国内市场的发展&#xff0c;而是开始将目光投向更为广阔的海外市场。这一趋势的崛起背后&#xff0c;是中国企业意识到国际化是其发展的必由之路&#xff0c;也是游戏行业突破国内困境的体现。本文将简要阐述游…

【线性代数 C++】求逆矩阵

对于 n n n阶矩阵 A A A&#xff0c;如果有 n n n阶矩阵 B B B&#xff0c;使 A B B A E ABBAE ABBAE&#xff0c;则说 A A A是可逆的&#xff0c;并把 B B B称为 A A A的逆矩阵. A A A的逆矩阵记作 A − 1 A^{-1} A−1&#xff0c;则 B A − 1 BA^{-1} BA−1.若 ∣ A ∣ ≠…

Recommended Azure Monitors

General This document describes the recommended Azure monitors which can be implemented in Azure cloud application subscriptions. SMT incident priority mapping The priority “Blocker” is mostly used by Developers to prioritize their tasks and its not a…

Hive-Sql复杂面试题

参考链接&#xff1a;hive sql面试题及答案 - 知乎 有哪些好的题目都可以给我哦 我来汇总到一起 1、编写sql实现每个用户截止到每月为止的最大单月访问次数和累计到该月的总访问次数 数据&#xff1a; userid,month,visits A,2015-01,5 A,2015-01,15 B,2015-01,5 A,2015-01,…