当前位置: 首页 > news >正文

【uniapp】实现买定离手小游戏

前言

最近玩了一个小游戏,感觉挺有意思,打算放进我的小程序【自动化小助手】里面,“三张押一张,专押花姑娘!”,从三张卡牌,挑选一张,中奖后将奖励进行发放,并且创建下一期,不多说了,说做就做

分析

前端分析

前端设计出页面以后,从接口处获得参与次数,押中次数以及当前期数、开奖时间,开奖时间获取到以后和现在的时间进行对比获得倒计时,下面是我已经大致构建的画面
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

这是代码:

<template><view><view class="b-flex-x b-bg-white b-p-32"><image src="@/static/guanjun.png" mode="aspectFit" class="logo b-radius-8"></image><view class="b-flex-item b-ml-32"><view class="b-text-B b-text-48 b-text-black">买定离手</view><br><view class="b-font-24 b-mt-8 b-text-black-dd">参与<span style="color: navajowhite;">2</span>次,押中<span style="color: yellowgreen;">23</span>次</view></view></view><view class="b-pt-32 b-pr-32 b-pl-32 b-pb-24 b-text-black-dd" style="color: black;font-weight: 500;">第1期 开奖倒计时:<span style="color: red;">00:00</span></view><view class="b-list-user b-bg-white" style="width: 700rpx;height: 300rpx;margin: auto;"><text style="color: orange;">已选择卡牌,等待开奖</text><text style="color: orange;">请选择</text><view style="width: 680rpx;height: 250rpx;margin: auto;display: flex;flex-direction: row;align-items: center;justify-content: center;"><image src="https://floor.huluxia.com/static/img/ya.png" mode="aspectFit" style="width: 200rpx;" v-if="select_card=='1'" ></image><image src="https://floor.huluxia.com/static/img/1_normal.png" mode="aspectFit" style="width: 200rpx;" v-else @click="click_card('1')"></image><image src="https://floor.huluxia.com/static/img/ya.png" mode="aspectFit" style="width: 200rpx;margin-left: 10rpx;" v-if="select_card=='2'"></image><image src="https://floor.huluxia.com/static/img/2_normal.png" mode="aspectFit" style="width: 200rpx;margin-left: 10rpx;" v-else @click="click_card('2')"></image><image src="https://floor.huluxia.com/static/img/ya.png" mode="aspectFit" style="width: 200rpx;margin-left: 10rpx;" v-if="select_card=='3'"></image><image src="https://floor.huluxia.com/static/img/3_normal.png" mode="aspectFit" style="width: 200rpx;margin-left: 10rpx;" v-else @click="click_card('3')"></image></view></view><view class="b-pt-32 b-pr-32 b-pl-32 b-pb-24 b-text-black-dd" style="color: black;font-weight: 500;">游戏规则:</view><view class="b-list-user b-bg-white" style="width: 680rpx;height: 120rpx;margin:auto;"><text>①三张卡牌中有一张是K,请选择一张卡牌。</text><br><text>②开奖后,选中的话可以获得相应的金币,反之会失去你的金币。</text></view><view class="b-pt-32 b-pr-32 b-pl-32 b-pb-24 b-text-black-dd" style="color: black;font-weight: 500;">最近开局记录</view><view class="b-list-user b-bg-white"></view></view>
</template><script>export default {data() {return {select_card:'0'}},onShow() {},onLoad() {},methods: {click_card(num){this.select_card=num;},}}
</script><style lang="scss">.logo{width: 140rpx;height: 140rpx;}
</style>

后端分析

后端我这里用的是原生PHP,因为php简单,配合这次的项目能够发挥很大的效率,瘴气氨考虑用python,但是因为长连接不考虑,所以就
pass了

思路

新建一个php脚本,用来触发每一期的开盘
逻辑:查询数据库对应表,是否有最后一期,存在的话开奖,然后写入数据库,发放奖励,通过定时计划任务每几分钟触发,用户端在查到数据库信息后,换算开盘时间,进行押注

创建期数

新建game_system.php

<?php
include '../api/conn.php';
require_once("../api/Message_push/mqtt_sender.php");
if ($_GET['password']!='iuweojsd8542637lk') {die(json_encode(array('code' => 200,'msg' => '缺少参数'),480)
);
} // 获取当前时间戳
$currentTimestamp = time();// 计算5分钟之后的时间戳
$fiveMinutesLaterTimestamp = $currentTimestamp + (5 * 60);
//每多长时间开盘$fiveMinutesLaterTimestamp//先获取最后一期数
$sql = "SELECT * FROM game_periods ORDER BY period DESC LIMIT 1";  
$result = $conn->query($sql);if ($result->num_rows > 0) {// 读取查询结果中的一行数据$row = $result->fetch_assoc();// 获取period字段的值$period = $row['period'];//进行随机数计算,完成该期数据库写入// 生成1、2或3的随机数$randomNumber = mt_rand(1, 3);$sql_update="UPDATE `game_periods` SET `number` = '$randomNumber', `is_processed` = '1' WHERE `period` = '$period'";$conn->query($sql_update);} else {//没有查询到任何记录//创建第一期$sql_insert="INSERT INTO `game_periods` (`id`, `period`, `number`, `next_draw_time`, `is_processed`) VALUES (NULL, '1', '','$fiveMinutesLaterTimestamp', '0')";$conn->query($sql_insert);die("创建了第一期");
}//下一期创建
$nextPeriod = $period + 1;
$sql_insert_ = "INSERT INTO game_periods (`id`, `period`, `number`, `next_draw_time`, `is_processed`) VALUES (NULL, '$nextPeriod', '', '$fiveMinutesLaterTimestamp', '0')";
$result = $conn->query($sql_insert_);// 匹配奖励结算(未中奖也要说)
$reward = "SELECT price,openid,number FROM `periods_data` WHERE `period`='$period'";
$result = $conn->query($reward);if ($result->num_rows > 0) {// 循环读取查询结果中的所有行数据while ($row = $result->fetch_assoc()) {$openid = $row['openid'];$price = $row['price'];$number_sonal = $row['number'];// 获得$price的两倍$doublePrice = $price * 2;if ($number_sonal==$randomNumber) {// 金额到账
$price_update = "UPDATE `user` SET `price` = `price` + $doublePrice WHERE `openid` = '$openid'";
$conn->query($price_update);
$msg="恭喜您,选中了K牌,奖励已到账";} else {
$msg="很遗憾,未选中K牌,再接再厉";}$receiver = "$openid";$content = $msg;send_mqtt_message($receiver, $content,$conn,'0');// 通知消息}
} // 关闭数据库连接
$conn->close();
?>
  1. 首先,代码通过include和require_once引入了一些依赖的文件,包括数据库连接文件和消息推送相关的文件。
  2. 接下来,代码检查传入的GET请求参数password是否等于iuweojsd8542637lk,如果不等于则返回一个JSON格式的错误信息,包含错误代码和错误消息。
  3. 然后,代码获取当前的时间戳,并计算出5分钟后的时间戳。代码通过数据库查询获取最后一期的信息,如果有查询结果,说明已经存在期数记录,就对该期进行更新操作:生成1、2或3的随机数,并将这个随机数以及标记为已处理的状态写入数据库。如果没有查询到任何记录,说明是第一期,代码将创建第一期的记录,并将下一期的信息也插入数据库,但这个记录的期数是当前期数加1,即第二期。
  4. 之后,代码会检查当前期数的数据记录,查询是否有用户参与,如果有参与,会根据用户选择的数字和随机生成的数字进行奖励结算。如果用户选择的数字与随机数一致,会将用户的账户余额增加两倍的奖励金额,否则用户得到一条未中奖的消息。
  5. 最后,代码通过消息推送的方式,将奖励结果发送给对应的用户。
  6. 最后关闭数据库连接。

定时计划

通过宝塔的定时计划任务,到点后触发URL,这个时候你可能会说程序会在创建过程中出现很多BUG,是的,当速度不匹配用户提交数据有很多不确定性,所以我们需要对下面的用户操作部分做一些调整,避免出现这些情况
在这里插入图片描述

买定离手操作

新建buy.php

<?phpinclude '../api/conn.php';
if (!$_POST) {die(json_encode(array('code' => 200,'msg' => '缺少参数'),480)
);
} $period=$_POST['period'];
$openid=$_POST['openid'];
$number=$_POST['number'];
$price=$_POST['price'];
//查询当前提交期数与系统最后期数一致吗(期数一致)
$sql1="SELECT period,is_processed FROM game_periods ORDER BY period DESC LIMIT 1";
$result = $conn->query($sql1);if ($result->num_rows > 0) {// 读取查询结果中的一行数据$row = $result->fetch_assoc();// 获取id字段的值$period_database = $row['period'];$is_processed = $row['is_processed'];if ($period_database==$period&&$is_processed=='0') {//防止写入两次$query_sql="SELECT id FROM `periods_data` WHERE `period`='$period'and `openid`='$openid'";$result = $conn->query($query_sql);if ($result->num_rows > 0) {
die(json_encode(array('code' => 200,'msg' => '已经押注过啦~'),480)
);} else {// 余额支付//我的余额查询$cx_yue="SELECT `price` FROM `user` WHERE `openid`='$openid'";$res=$conn->query($cx_yue);if ($rowss=$res->fetch_assoc()) {$my_money=$rowss['price'];//我的余额} else {die(json_encode(array('code' => 200,'msg' => '当前用户未注册'),480)
);}$buy=$price;//真正需要付的钱//  var_dump($buy);//余额判断if ($my_money>=$buy) {// 余额扣除$residue_money=$my_money-$buy;$money_update="UPDATE `user` SET `price` = '$residue_money' WHERE `openid` = '$openid'";$res2=$conn->query($money_update);//插入操作$sql2="INSERT INTO `periods_data` (`id`, `period`, `number`, `openid`, `price`) VALUES (NULL, '$period_database', '$number', '$openid', '$price')";$conn->query($sql2);die(json_encode(array('code' => 100,'msg' => '押注成功'),480)
);} else {die(json_encode(array('code' => 200,'msg' => '余额不足'),480)
);
}// 余额支付}} else {die(json_encode(array('code' => 200,'msg' => '该局游戏不存在,请刷新后重试'),480)
);}} else {die(json_encode(array('code' => 200,'msg' => '游戏暂未开盘'),480)
);
}// 关闭数据库连接
$conn->close();//放防止重复提交(同个用户一期只能提交一次)
  1. 代码首先通过include引入了数据库连接文件。
  2. 接下来,代码检查是否收到了POST请求,如果没有收到POST请求,返回一个JSON格式的错误信息,表示缺少参数。代码从POST请求中获取了期数 p e r i o d 、用户标识 period、用户标识 period、用户标识openid、用户选择的数字 n u m b e r 以及押注金额 number以及押注金额 number以及押注金额price。
  3. 代码查询数据库,获取系统中最后一期的信息,包括期数和是否已经处理的标记。
  4. 如果查询到最后一期的信息,代码会检查用户提交的期数 p e r i o d 是否与系统最后一期的期数一致,并且检查该期是否未处理( period是否与系统最后一期的期数一致,并且检查该期是否未处理( period是否与系统最后一期的期数一致,并且检查该期是否未处理(is_processed为0)。如果期数一致且未处理,继续进行下面的操作。
  5. 代码查询数据库,检查该用户是否已经在当前期数下进行过押注,如果已经押注过,返回一个JSON格式的错误信息,表示已经押注过。
  6. 如果用户没有在当前期数下进行过押注,则继续进行余额支付判断。首先查询该用户的余额,并检查余额是否足够支付押注金额。
  7. 如果余额足够,进行余额扣除操作,更新用户余额,并将押注记录插入periods_data表中。
  8. 如果余额不足,返回一个JSON格式的错误信息,表示余额不足。
  9. 如果系统最后一期的期数与用户提交的期数不一致,或者该期已经处理过,返回相应的JSON格式错误信息,提示游戏状态或操作不合法。
  10. 最后,关闭数据库连接。

前端页面渲染接口

新建get_last_periods.php

<?php
include '../api/conn.php';
header("Content-type:text/html;charset=utf-8");//字符编码设置
if (!$_POST) {die(json_encode(array('code' => 200,'msg' => '缺少参数'),480)
);
} $sql = "SELECT * FROM game_periods ORDER BY period DESC LIMIT 1";  
$result =$conn->query($sql);
if (!$result) {die("fail");
}$jarr = array();
while ($rows=mysqli_fetch_array($result,MYSQLI_ASSOC)){$count=count($rows);//不能在循环语句中,由于每次删除 row数组长度都减小  for($i=0;$i<$count;$i++){  unset($rows[$i]);//删除冗余数据  }array_push($jarr,$rows);
}//  $str=json_encode($jarr);//将数组进行json编码
//  $info = json_decode(trim($jarr),true);die(json_encode(array('code' => 100,'data' => $jarr,'msg' => '获取成功'),480)
);?>

MQTT消息通知写入数据库

    $receiver = "$openid";$content = $msg;send_mqtt_message($receiver, $content,$conn,'0');

演示操作

可以去小程序【自动打卡小助手】里面体验,下面是演示视频

【uniapp】实现买定离手小游戏

🍋希望你能喜欢我的其他作品
《记一次云之家签到抓包》
《记一次视频抓包m3u8解密过程》
《抓包部分软件时无网络+过代理检测 解决办法 安卓黄鸟httpcanary+vmos》
《Python】记录抓包分析自动领取芝麻HTTP每日免费IP(成品+教程)》
《某课抓包视频 安卓手机:黄鸟+某课app+VirtualXposed虚拟框架》

推荐专栏:

《Python爬虫脚本项目实战》

该专栏往期文章:
《【Python爬虫项目实战一】获取Chatgpt3.5免费接口文末付代码(过Authorization认证)》

🥦如果感觉看完文章还不过瘾,欢迎查看我的其它专栏
🥦作者对python有很大的兴趣,完成过很多独立的项目:例如滇医通等等脚本,但是由于版权的原因下架了,爬虫这一类审核比较严谨,稍有不慎就侵权违规了,所以在保证质量的同时会对文章进行筛选

如果您对爬虫感兴趣请收藏或者订阅该专栏哦《Python爬虫脚本项目实战》,如果你有项目欢迎联系我,我会同步教程到本专栏!

🚀Python爬虫项目实战系列文章!!
⭐⭐欢迎订阅⭐⭐

【Python爬虫项目实战一】获取Chatgpt3.5免费接口文末付代码(过Authorization认证)
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口

⭐⭐欢迎订阅⭐⭐
在这里插入图片描述

Python爬虫脚本项目实战
在这里插入图片描述

相关文章:

【uniapp】实现买定离手小游戏

前言 最近玩了一个小游戏&#xff0c;感觉挺有意思&#xff0c;打算放进我的小程序【自动化小助手】里面&#xff0c;“三张押一张&#xff0c;专押花姑娘&#xff01;”&#xff0c;从三张卡牌&#xff0c;挑选一张&#xff0c;中奖后将奖励进行发放&#xff0c;并且创建下一…...

【vim 学习系列文章 3 - vim 选中、删除、复制、修改引号或括号内的内容】

文章目录 vim 快捷命令vim 操作符vim 文本对象vim 动作 上篇文章: vim 学习系列文章 2 - vim 常用插件配置 vim 快捷命令 Vim 有一个模块化的结构&#xff0c;允许你使用各种命令的组合操作。大多数命令有两个、三个或四个部分。三部分结构的一个版本是这样的&#xff1a;操作…...

webpack联邦模块介绍及在dumi中使用问题整理

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、ModuleFederationPlugin参数含义&#xff1f;二、如何在dumi中使用及问题整理1. 如何在dumi中使用(这个配置是好使的)2.相关问题整理2.1 问题12.2 问题2 总…...

记录一下Kotlin: Module was compiled with an incompatible version of Kotlin.的问题

我遇到的整个报错是这样的&#xff1a; Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.7.1, expected version is 1.1.16. 大概意思就是不匹配&#xff0c;但是我这是个不太能随便改代码的项目&#x…...

html中使用Vue+element UI动态创建表单数据不显示问题

直接上代码&#xff1a;html代码如下 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content&…...

CentOS下 Docker、Docker Compose 的安装教程

Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互之间不会有任何接口。 Docker Compose是用于定义…...

[OnWork.Tools]系列 02-安装

下载地址 百度网盘 历史版本连接各种版本都有,请下载版本号最高的版本 链接&#xff1a;https://pan.baidu.com/s/1aOT0oUhiRO_L8sBCGomXdQ?pwdn159提取码&#xff1a;n159 个人链接 http://on8.top:5000/share.cgi?ssiddb2012fa6b224cd1b7f87ff5f5214910 软件安装 双…...

【外键合并python】

外键合并&#xff08;Foreign Key Merge&#xff09; 外键合并是指在数据库或者数据表中&#xff0c;通过共同的外键将多个数据表合并在一起的操作。在 Excel 表格中&#xff0c;我们可以使用外键来将多个表格合并&#xff0c;类似于数据库中的关联操作。 步骤一&#xff1a;…...

Mongodb SQL 到聚合映射快速参考

SQL 映射 聚合管道允许MongoDB 提供原生聚合功能&#xff0c;对应于 SQL 中许多常见的数据聚合操作。比如&#xff1a;GROUP BY、COUNT()、UNION ALL 测试数据 For MySQL rootlocalhost 14:40:40 [test]> select * from orders; -------------------------------------…...

腾讯云标准型S6/SA3/SR1/S5/SA2服务器CPU处理器大全

腾讯云服务器CVM标准型CPU处理器大全&#xff0c;包括标准型S6、SA3、SR1、S5、S5se、SA2、S4、SN3ne、S3、SA1、S2ne实例CPU处理器型号大全&#xff0c;标准型S6云服务器CPU采用Intel Ice Lake(2.7GHz/3.3GHz)&#xff0c;标准型S5采用Intel Xeon Cascade Lake 8255C/Intel Xe…...

idea 关于高亮显示与选中字符串相同的内容

dea 关于高亮显示与选中字符串相同的内容&#xff0c;本文作为个人备忘的同时也希望可以作为大家的参考。 依次修改File-settings-Editor-Color Scheme-General菜单下的Code-Identifier under caret和Identifier under caret(write)的Backgroud色值&#xff0c;可以参考下图。…...

【重点:单例模式】特殊类设计

请设计一个类&#xff0c;只能在堆上创建对象 方式如下&#xff1a; 将构造函数设置为私有&#xff0c;防止外部直接调用构造函数在栈上创建对象。向外部提供一个获取对象的static接口&#xff0c;该接口在堆上创建一个对象并返回。将拷贝构造函数设置为私有&#xff0c;并且…...

智能家居是否可与ChatGPT深度融合?

​ ChatGPT自2022年面世以来&#xff0c;已为亿万网民提供智能问答服务。然而我们是否曾想到&#xff0c;这一人工智能驱动的聊天机器人&#xff0c;是否可为智能家居赋能? 要实现ChatGPT与智能家居设备之间的无缝对话&#xff0c;单单依靠一台终端是远远不够的。ChatGPT必须…...

LED芯片 VAS1260IB05E 带内部开关LED驱动器 汽车硬灯带灯条解决方案

VAS1260IB05E深力科LED芯片是一种连续模式电感降压转换器&#xff0c;设计用于从高于LED电压的电压源高效驱动单个或多个串联连接的LED。该设备在5V至60V之间的输入电源下工作&#xff0c;并提供高达1.2A的外部可调输出电流。包括输出开关和高侧输出电流感测电路&#xff0c;该…...

微信小程序插件 painter 生成海报、二维码

GitHub 地址&#xff1a;https://github.com/Kujiale-Mobile/Painter 一、引入 将 components/painter 整个文件放到自己项目的 components 中&#xff1b;以组件的形式在页面的 json 文件中引入&#xff1b; 二、使用 <view class"container"><image s…...

Python版day60

84. 柱状图中最大的矩形 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 class Solution:def largestRectangleArea(self, heights: List[int]) -> i…...

windows C++多线程同步<3>-互斥量

windows C多线程同步&#xff1c;3&#xff1e;-互斥量 概念&#xff0c;如下图&#xff1a; 另外就是互斥对象谁拥有&#xff0c;谁释放 那么一个线程允许多次获取互斥对象吗&#xff1f; 答案是允许&#xff0c;但是申请多次就要释放多次&#xff0c;否则其他线程获取不到互…...

(学习笔记-系统结构)Linux内核与windows内核

内核 计算机是由各种外部硬件设备组成的&#xff0c;比如内存、CPU、硬盘等&#xff0c;如果每个应用都要和这些硬件设备对接通信协议&#xff0c;那这样太累了&#xff0c;所以这个中间人由内核来负责&#xff0c;让内核作为应用连接硬件设备的桥梁&#xff0c;应用程序只关心…...

find_in_set在oracle下的解决方案

比如一张表&#xff1a; artile (id,type,content); # type:1表示文艺类&#xff0c;2表示小说类&#xff0c;3表示传记&#xff0c;4表示传说&#xff0c;等等5,6,7,8表数据&#xff1a; idtypecontent13,1dfasdfasdf21,3,6,8dfasdf36,8,9add 现在要找出3传记类的artile记录…...

智能垃圾桶

1.树莓派3B引脚图 2. 原理图 3.舵机线图 搜了这个这么多3b的资料&#xff0c;自己只是想解决如何下程序和运行程序的博客&#xff0c;网上搜集的资料全是讲如何通过SSH或者网线连接树莓派&#xff0c;通过直接连接屏幕的教程较少。 遇到问题&#xff1a;不论是舵机还是其他传…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言&#xff1a;我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM&#xff08;Java Virtual Machine&#xff09;让"一次编写&#xff0c;到处运行"成为可能。这个软件层面的虚拟化让我着迷&#xff0c;但直到后来接触VMware和Doc…...