C#斗地主出牌部分算法(绝对精华)

C#棋牌游戏(如斗地主) C#控制台卡牌游戏中的卡牌、牌库和玩家模拟 阅读详情
来自Asp.net精英论坛: bbs.1aspx.com 

斗地主出牌算法

根据斗地主出牌规则.对玩家出的牌进行检验.判断是否符合出牌规则.
(关于斗地主的出牌规则网上有很多)
思路:将玩家的牌按升序排序.然后将牌进行拆分,分存在4个数组中.拆分规则如下:
假设有牌:333/444/555/789
则拆分后数组中的数据如下
arr[0]:345789
arr[1]:345
arr[2]:345
arr[3]:null
可以看出拆分规则是:如果遇到相同数字的牌则存到下一个数组的末尾.
拆分完后可以根据各数组的存储情况判定玩家出牌的类型,上面例子arr[3]为空.可以排除掉4带1(2).炸弹.的情况根据arr[2]为顺子且个数大于1,且arr[2]中存放的牌的张数乘以3刚好等于arr[0]的张数+arr[1]的张数.则可以判定是三带一的飞机.其他类型的牌也有相似的规律.以下是该算法的核心源代码.本算法用C#编写.
using System;
using System.Collections.Generic;
using System.Text;
namespace LordLibrary
{
/*
*以下程序版权由林奕霖所有,有兴趣的朋友可以用来交流和探讨.但请别用于商业用途.否则后果自负.
*您可以自由拷贝修改此源代码,但必须保留此注释.
*/
public class CheckType
{
private static int[][] DiffRow(int[] nums)
{
int[][] list = new int[4][];
for (int i = 0; i < list.Length; i++)
{
list = new int[20];
}
int[] rowIndex = new int[4];
int columIndex = 0;
for (int i = 0; i < nums.Length; i++)
{
if (i + 1 < nums.Length)
{
if (nums != 0)
{
list[columIndex][rowIndex[columIndex]] = nums;
rowIndex[columIndex]++;
}
if (nums == nums[i + 1])
{
columIndex++;
}
else
{
columIndex = 0;
}
}
else if (nums != 0)
list[columIndex][rowIndex[columIndex]] = nums;
}
return list;
}

private static int checkListCount(int[][] list, int rowIndex, int compStart, int rowMaxCount)
{
/* LIST 代表单顺.
*DOUB 代表双顺.
*FEI0 代表三顺.
*FEI1 代表三带一的飞机
*FEI2 代表三带二的飞机
*FOR1 代表四带1
*FOR2 代表四带2
*ROCK 代表大小王
*/
int listCount = 1;
for (int i = compStart; i < rowMaxCount - 1; i++)
{
if (list[rowIndex] + 1 == list[rowIndex][i + 1])
listCount++;
else
listCount = 1;
}
return listCount;
}
public static string getCardType(int[] nums)
{
int[][] list = DiffRow(nums);
int[] counts = new int[4];
for (int k = 0; k < 4; k++)
{
counts[k] = Array.IndexOf(list[k], 0);
}
int MaxValue = 0;
int listCount = 0;
string type = string.Empty;
//当第4行牌的数量为1的时候
#region
if (counts[3] == 1)
{
int index = Array.IndexOf(list[2], list[3][0]);
switch (counts[2])
{
case 1:
MaxValue = list[3][0];
if (counts[0] == 1)
{
type = "BOMB:4:" + MaxValue;
}
else if (counts[0] + counts[1] == 4)
{
type = "FOR1:6:" + MaxValue;
}
else if (counts[0] == counts[1] && counts[0] == 3)
{
type = "FOR2:8:" + MaxValue;
}
break;
case 2:
if (list[2][0] + 1 == list[2][1] && counts[1] == counts[2] && counts[0] == 3)
{
MaxValue = list[2][counts[2] - 1];
type = "FEI1:" + counts[2] + ":" + MaxValue;
} break;
case 3:
if (checkListCount(list, 2, 0, counts[2]) == counts[2] && counts[0] + counts[1] + counts[3] == 3 * counts[2])
{
MaxValue = list[2][counts[2] - 1];
type = "FEI1:" + counts[2] + ":" + MaxValue;
}
else if (Array.IndexOf(list[2], list[3][0]) == 0 && counts[0] == counts[2])
{
if ((listCount = checkListCount(list, 2, 1, counts[2])) == counts[2] - 1)
{
MaxValue = list[2][counts[2] - 1];
type = "FEI2:" + listCount + ":" + MaxValue;
}
}
else if (Array.IndexOf(list[2], list[3][0]) == counts[2] - 1 && counts[0] == counts[2])
{
if ((listCount = checkListCount(list, 2, 0, counts[2] - 1)) == counts[2] - 1)
{
MaxValue = list[2][counts[2] - 2];
type = "FEI2:" + listCount + ":" + MaxValue;
}
}
break;
case 4:
if (index == 0 && counts[0] == counts[1] && counts[0] == 5)
{
if ((listCount = checkListCount(list, 2, 1, counts[2])) == counts[2] - 1)
{
MaxValue = list[2][counts[2] - 1];
type = "FEI2:" + listCount + ":" + MaxValue;
}
}
else if (index == counts[2] - 1 && counts[0] == counts[1] && counts[0] == 5)
{
if ((listCount = checkListCount(list, 2, 0, counts[2] - 1)) == counts[2] - 1)
{
MaxValue = list[2][counts[2] - 2];
type = "FEI2:" + listCount + ":" + MaxValue;
}
}
else if ((listCount = checkListCount(list, 2, 0, counts[2])) == counts[2] && counts[0] + counts[1] + counts[3] == 3 * counts[2])
{
MaxValue = list[2][counts[2] - 1];
type = "FEI1:" + listCount + ":" + MaxValue;
}
break;
case 5:
if (index == 0)
{
if ((listCount = checkListCount(list, 2, 0, counts[2])) == counts[2] && counts[0] + counts[1] + counts[3] == 3 * counts[2])
{
MaxValue = list[2][counts[2] - 1];
type = "FEI1:" + listCount + ":" + MaxValue;
}
else if (listCount == counts[2] - 1 && counts[0] == counts[1])
{
if (counts[0] + 1 == 2 * (counts[2] - 1))
{
MaxValue = list[2][counts[2] - 1];
type = "FEI2:" + listCount + ":" + MaxValue;
}
else if (2 * (counts[0] + 1) == 3 * (counts[2] - 1))
{
MaxValue = list[2][counts[2] - 1];
type = "FEI1:" + listCount + ":" + MaxValue;
}
}
}
else if (index == counts[2] - 1)
{
if ((listCount = checkListCount(list, 2, 0, counts[2])) == counts[2] && counts[0] + counts[1] + counts[3] == 3 * counts[2])
{
MaxValue = list[2][counts[2] - 1];
type = "FEI1:" + listCount + ":" + MaxValue;
}
else if ((listCount = checkListCount(list, 2, 0, counts[2] - 1)) == counts[2] - 1 && counts[0] == counts[1])
{
if (counts[0] + 1 == 2 * (counts[2] - 1))
{
MaxValue = list[2][counts[2] - 2];
type = "FEI2:" + listCount + ":" + MaxValue;
}
else if (2 * (counts[0] + 1) == 3 * (counts[2] - 1))
{
MaxValue = list[2][counts[2] - 2];
type = "FEI1:" + listCount + ":" + MaxValue;
}
}
}
else
{
if ((listCount = checkListCount(list, 2, 0, counts[2])) == counts[2] && counts[0] + counts[1] + counts[3] == 3 * counts[2])
{
MaxValue = list[2][counts[2] - 1];
type = "FEI1:" + listCount + ":" + MaxValue;
}
}
break;
case 6:
if ((listCount = checkListCount(list, 2, 0, counts[2])) == counts[2] && counts[0] + counts[1] + counts[3] == 3 * counts[2])
{
MaxValue = list[2][counts[2] - 1];
type = "FEI1:" + listCount + ":" + MaxValue;
}
else if (index == 0 && listCount == counts[2] - 1 && counts[0] + counts[1] + 2 == 3 * (counts[2] - 1))
{
MaxValue = list[2][counts[2] - 1];
type = "FEI1:" + listCount + ":" + MaxValue;
}
else if (index == counts[2] - 1 && (listCount = checkListCount(list, 2, 0, counts[2] - 1)) == counts[2] - 1 && counts[0] + counts[1] + 2 == 3 * (counts[2] - 1))
{
MaxValue = list[2][counts[2] - 2];
type = "FEI1:" + listCount + ":" + MaxValue;
}
break;
}
}
#endregion
//当第4行牌的数量为2的时候
#region
if (counts[3] == 2)
{
switch (counts[2])
{
default:
if (counts[2] >= 2 && counts[2] < 6)
{
if ((listCount = checkListCount(list, 2, 0, counts[2])) == counts[2] && counts[0] + counts[1] + counts[3] == 3 * counts[2])
{
MaxValue = list[2][counts[2] - 1];
type = "FEI1:" + listCount + ":" + MaxValue;
}
}
break;
case 6:
int firstIndex = Array.IndexOf(list[2], list[3][0]);
int secIndex = Array.IndexOf(list[2], list[3][1]);
if (secIndex == 1)
{
if ((listCount = checkListCount(list, 2, 2, counts[2])) == counts[2] - 2 && counts[0] == counts[1] && counts[0] + 2 == 2 * (counts[2] - 2))
{
MaxValue = list[2][counts[2] - 1];
type = "FEI2:" + listCount + ":" + MaxValue;
}
}
else if (secIndex == counts[2] - 1)
{
if (firstIndex == 0)
{
if ((listCount = checkListCount(list, 2, 1, counts[2] - 1)) == counts[2] - 2 && counts[0] == counts[1] && counts[0] + 2 == 2 * (counts[2] - 2))
{
MaxValue = list[2][counts[2] - 2];
type = "FEI2:" + listCount + ":" + MaxValue;
}
}
else if (firstIndex == secIndex - 1)
{
if ((listCount = checkListCount(list, 2, 0, counts[2] - 2)) == counts[2] - 2 && counts[0] == counts[1] && counts[0] + 2 == 2 * (counts[2] - 2))
{
MaxValue = list[2][counts[2] - 3];
type = "FEI2:" + listCount + ":" + MaxValue;
}
}
}
if ((listCount = checkListCount(list, 2, 1, counts[2])) == counts[2] - 1 && 2 * counts[0] + 3 == 3 * (counts[2] - 1))
{
MaxValue = list[2][counts[2] - 1];
type = "FEI1:" + listCount + ":" + MaxValue;
}
else if ((listCount = checkListCount(list, 2, 0, counts[2] - 1)) == counts[2] - 1 && 2 * counts[0] + 3 == 3 * (counts[2] - 1))
{
MaxValue = list[2][counts[2] - 2];
type = "FEI1:" + listCount + ":" + MaxValue;
}

break;
}
}
#endregion
//当第4行牌的数量大于2的时候
#region
if (counts[3] > 2)
{
if ((listCount = checkListCount(list, 2, 0, counts[2])) == counts[2] && counts[0] + counts[1] + counts[3] == 3 * counts[2])
{
MaxValue = list[2][counts[2] - 1];
type = "FEI1:" + listCount + ":" + MaxValue;
}
}
#endregion
//当第4行牌的数量为0,第三行牌的数量大于0
#region
if (counts[3] == 0 && counts[2] > 0)
{
if ((listCount = checkListCount(list, 2, 0, counts[2])) == counts[2])
{
if (counts[0] == counts[2])
{
MaxValue = list[2][counts[2] - 1];
type = "FEI0:" + listCount + ":" + MaxValue;
}
else if (counts[0] + counts[1] == 3 * counts[2])
{
MaxValue = list[2][counts[2] - 1];
type = "FEI1:" + listCount + ":" + MaxValue;
}
else if (counts[0] + counts[1] == 4 * counts[2] && counts[0] == counts[1])
{
MaxValue = list[2][counts[2] - 1];
type = "FEI2:" + listCount + ":" + MaxValue;
}
}
if ((listCount = checkListCount(list, 2, 1, counts[2])) == counts[2] - 1 && counts[0] + counts[1] + 1 == 3 * (counts[2] - 1))
{
MaxValue = list[2][counts[2] - 1];
type = "FEI1:" + listCount + ":" + MaxValue;
}
else if ((listCount = checkListCount(list, 2, 0, counts[2] - 1)) == counts[2] - 1 && counts[0] + counts[1] + 1 == 3 * (counts[2] - 1))
{
MaxValue = list[2][counts[2] - 2];
type = "FEI1:" + listCount + ":" + MaxValue;
}
}
#endregion
//当第3行牌的数量为0,第二行牌的数量大于0
#region
if (counts[2] == 0 && counts[1] > 0)
{
if (counts[0] == 1)
{
MaxValue = list[1][counts[1] - 1];
listCount = counts[1];
type = "DOUB:" + listCount + ":" + MaxValue;
}
else
{
if (counts[1] > 2 && counts[0] == counts[1] && (listCount = checkListCount(list, 1, 0, counts[1])) == counts[1])
{
MaxValue = list[1][counts[1] - 1];
type = "DOUB:" + listCount + ":" + MaxValue;
}
}
}
#endregion
//当第2行牌的数量为0
#region
if (counts[1] == 0)
{
if (counts[0] == 1)
{
MaxValue = list[0][counts[0] - 1];
listCount = counts[0];
type = "LIST:" + listCount + ":" + MaxValue;
}
else if (counts[0] == 2 && list[0][0] == 16 && list[0][1] == 17)
{
type = "ROCK:2:17";
}
else if (counts[0] >= 5 && (listCount = checkListCount(list, 0, 0, counts[0])) == counts[0])
{
MaxValue = list[0][counts[0] - 1];
listCount = counts[0];
type = "LIST:" + listCount + ":" + MaxValue;
}
}
#endregion
String[] cmd= type.Split(new char[]{':'});
int big = Array.IndexOf(nums, 16);
int small = Array.IndexOf(nums, 17);
if (cmd.Length > 0 && cmd[0]!=string.Empty)
{
if ((cmd[0]=="LIST" || cmd[0]=="DOUB" || cmd[0]=="FEI0" || cmd[0]=="FEI1"|| cmd[0]=="FEI2")&& (int.Parse(cmd[1]))>1)
{
type = int.Parse(cmd[2]) > 14 ? string.Empty : type;
}
else if (cmd[0] == "FOR1" || cmd[0] == "FOR2")
{
type = (big >0 && small>0) ? string.Empty : type;
}
}
return type;
}
}
}
大一用C#编写的斗地主程序 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Sy 阅读详情

相关推荐

【AI出牌器】第一次见这么“刺激”的斗地主,胜率高的关键因素竟是......

前言 ???? 作者 :“程序员梨子” ???? **文章简介 **:本篇文章主要制作一款AI斗地主自动出牌器啦。 ???? **文章源码获取 **: 为了感谢每一个关注我的小可爱????每篇文章的项目源码都是无偿分 享滴???????????????????? 点这里蓝色这行字体自取,需要什么源码记得说标题名字哈!私信我也可! ???? 欢迎小伙伴们 点赞????、收藏⭐、留言???? 正文 作为一款全民休闲娱乐游戏,斗地主从来不缺少关注。 小编闲暇之余就喜欢斗斗地主,

TZ45678的博客 7189

unity中使用C#语言判断斗地主出牌牌型

首先定义一下要出的的牌的类型 /// &amp;lt;summary&amp;gt; /// 出牌的类型 过1,单张1,对子2,三张3,三带单4,三带对5,单顺6,双顺7,飞机8,飞机带单9,飞机带双10,四带两单11,四带对12,炸弹13,火箭14 /// &amp;lt;/summary&amp;gt; public enum SHOW_CARDS_TYPE { /// &amp;lt;summary&amp;gt; /...

丶博Liang 的博客 1411

用C#写的局域网斗地主,内涵源代码

C#局域网斗地主,三人斗地主,附带聊天功能 C#局域网斗地主,三人斗地主,附带聊天功能 C#局域网斗地主,三人斗地主,附带聊天功能 C#局域网斗地主,三人斗地主,附带聊天功能

用unity先来个一副牌的单机斗地主

从发完牌的玩家开始,按照顺时针方向,每位玩家可以选择叫地主或不叫地主。请注意,这只是一个基本的洗牌示例,实际应用中还可能考虑到更复杂的需求,例如需要与玩家配合交互、维护游戏状态等。在此示例中,我们添加了判断牌型是否一致以及手牌中的牌是否比已出的牌大的逻辑。结束条件:游戏继续直到有一名玩家先出完手中的牌,或其他两名玩家同时不出牌。玩家可以出一手比上家大的牌、相同牌型但更大的牌,或者不出牌。底牌:地主在游戏开始后可以查看底牌,并将其添加到自己的牌中。方法中,创建一副牌,然后进行洗牌并打印出洗好的牌的顺序。

百锦再的博客 1万+

斗地主ai机器人出牌叫分算法cpp源码

自己开发的简单的斗地主陪练机器人出牌算法,c++代码,无需修改,直接使用。 使用方法: https://blog.csdn.net/hhpp526/article/details/103159283 解压密码:hhpp526@hotmail.com

C# 斗地主算法核心代码

网上发现很多C#学的斗地主算法,看了之后自我感觉很Low,影响效率,就自己写了一套,里面只有核心代码。

斗地主智能(AI)出牌算法

去年有想写个斗地主的小游戏,自己玩玩。找了很多资料,后来好不容易在网上找到了一个AI算法。转过的的时候是贴在自己电脑的TXT文本上,再次感谢下原作者。现在借花献佛发给你参考下。    我以前写过一个斗地主机器人。思路如下,希望对你有帮助。   斗地主AI设计  一、牌型           1 火箭:大小王在一起的牌型,即双王牌,此牌型最大,什么牌型都可以打。           2 炸弹

xdx2ct1314的专栏 4万+

c#斗地主c#斗地主c#斗地主

c#斗地主c#斗地主c#斗地主c#斗地主

斗地主机器人AI算法和策略(个人思路总结)

一、规则和权值定义 1、斗地主中存在很多种的牌型,比如:单张,对子,三带,顺子,连队,飞机,炸弹等 ,我的机器人主要根据权重去设计的,我给每一种牌型都制定了一个权重,比如3权重是多少,其他牌型的权重有时多少,定义了一个结构体如下: type CardGroup struct{ cgType PattenType //枚举类型 value int //牌的价值 count int //牌的个数 maxCard int

qq_43998763的博客 1万+

C#斗地主算法(绝对精华)

本算法用C#编写,根据斗地主出牌规则.对玩家出的牌进行检验.判断是否符合出牌规则。

C#斗地主实例

C#斗地主实例

Unity游戏开发实战:解析301斗地主源码架构与二次开发指南

在游戏开发领域,Unity引擎因其强大的跨平台能力和完善的工具链,已成为2D/3D游戏开发的首选。其核心原理在于基于组件的实体系统与高效的渲染管线,为开发者提供了快速构建交互应用的框架。在技术价值层面,Unity不仅降低了开发门槛,更通过模块化设计支持大型项目的工程化实践,尤其在卡牌游戏、棋牌对战等应用场景中展现出极高效率。本文聚焦于Unity游戏开发中的核心模块设计,深入剖析一个完整的商业级卡牌游戏源码,涵盖资源管理、网络同步与UI交互等关键技术点。通过解析301斗地主这一具体案例,详细拆解其游戏规则引擎

weixin_30691871的博客 456

基于C#和Unity的多人斗地主.zip

1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 -------- 下载后请首先打开README.md文件(如有),仅供学习参考。

unity c#斗地主算法计算牌型

斗地主前端核心算法有以下四个 1:计算牌型 2:牌型之间的比较大小 3:是否显示要不起按钮 4:提示出牌AI 今天更新计算牌型 下面是代码 这是牌的所有类型   我这边四带二单 ,四带二个对子合成一个,四带二个对子不算牌型 所有四带2用FourWithSingle  结构是protobuf类型的//单张1,对子2,三张3,三带单4,三带对5,单顺6,双顺7

csdn_cjt的博客 7951

【NTN 卫星通信】使用地面网络和卫星网络接入的终端应用场景

卫星接入有广覆盖的特点, 可以改善地面接入网覆盖或无线条件差的地区(例如多径干扰)的服务可用性。对于高速移动中需要实时业务的终端,如IMS语音/视频会议,可以通过地面接入和卫星接入同时实现与5G系统的双连接,在地面接入网不可用的情况下获得连续可靠的业务。

weixin_43603524的博客 2558

国产SR8201F以太网PHY芯片调试避坑指南:从机贴失败到杜邦线救场的实战记录

本文详细介绍了国产SR8201F以太网PHY芯片的调试避坑指南,涵盖硬件设计、PCB布局、SMT贴片及软件驱动等关键环节。通过实战案例解析,帮助工程师解决MII/RMII接口配置、电源设计、信号完整性等典型问题,提升以太网通信稳定性与EMC性能。

c6d7e8f9g的博客 1214

斗地主ai算法

牌的识别 出牌分为主动出牌和被动出牌,主动出牌只要比对方大就行,算法比较简单,被动出牌,则需要帅选出牌的组合,计算出最快的出牌策略,以最小的步长获取胜利 sequence = ['3', '4', '5', '6', '7', '8', '9', '10', 'j', 'q', 'k', '1', '2', 'xw', 'dw'] card = ['单牌', '对牌', '三张', '三带一', '单顺', '双顺', '三顺', '飞机','炸弹','四带二'] def to_

daoer_sofu的专栏 1608

别再乱提MR了!手把手教你配置GitLab的CI/CD与分支保护规则,让团队协作更丝滑

本文详细介绍了如何配置GitLab的CI/CD与分支保护规则,以优化团队协作流程。通过设置Protected Branches、MR流水线检查和自动化审批规则,有效防止不规范操作和合并冲突,提升开发效率与代码质量。特别强调MR(Merge Request)的正确使用,确保团队协作更丝滑。

weixin_28840591的博客 234

c语言实现斗地主

c语言小游戏

qq_43666632的博客 5756

ArduSub程序学习(1)——ardupilot框架整理

AP_HAL层(硬件抽象层)是我们制作 ArduPilot 的方式可移植到许多不同的平台。有一个顶级AP_HAL libraries/AP_HAL,用于定义代码其余部分的接口 有针对具体的板子特性,然后就有了AP_HAL_XXX 子目录,例如,AP_HAL_AVR 用于基于 AVR 的 开发板,AP_HAL_PX4用于 Pixhawk 开发板和 AP_HAL_Linux 基于 Linux 开发板。工具目录tools directories工具目录是杂项支持目录。

weixin_49839886的博客 2812

机器视觉框架源码——解读5(Dock和开源UI)

本文介绍了工业软件中Dock工具面板的使用方法,主要包括三个部分:添加avalonDock引用、修改属性配置(如显示样式和背景色),以及通过MVVM命令实现布局的加载和保存。加载布局通过XmlLayoutSerializer从XML文件恢复界面状态,保存布局则将当前DockManager的布局序列化为XML文件。文章提供了代码示例和截图说明,帮助开发者快速掌握Dock面板的核心功能。

Z's Palace 401

C语言实现斗地主(基础版)

/获取花色i < ROW;//判断是否重复牌//获取花色//花色和点数合并count++;

fxbsdl的博客 1451

uniapp [安卓苹果App端] - 实现APP开发后台保活+息屏后台持续运行效果,强制后台保活手机黑屏后进程存活后台保持网络连接或持续定位等功能提供支持(app后台运行休眠仍然可以确保一直运行)

uniapp APP开发后台保活,Uniapp-APP后台保活插件(安卓苹果ios后台保活)保证应用在后台继续运行,uniapp实现app保活 保后台运行 避免系统主动杀进程,如何让安卓APP一直在后台运行?uniapp 安卓 APP 后台持续运行(保活)iOS App后台保活,Android 后台运行白名单实现保活,保活息屏后台运行,uniapp后台保活,uniapp熄屏 后台运行,Android/ios进程保活/息屏后后台保持定位、网络运行,uniapp在android ios保活,挂后台可运行,安卓A

🏆 前端领域优质创作者 1万+

基于C#的斗地主实现方案

基于C#的斗地主实现方案

ytttr873的博客 355

Win11 1 月更新黑屏循环故障技术分析与解决方案

2026年1月30日Windows 11更新引发黑屏循环故障,主要影响2018年前出厂、采用MBR分区及特定BIOS固件的设备,尤其对使用经典版Outlook(POP协议)的用户影响显著。故障表现为系统无限重启黑屏,导致数据访问中断。分析表明,问题源于硬件兼容性、分区格式与系统更新的交互冲突。解决方案包括进入安全模式回滚更新、暂停自动更新、升级驱动/BIOS,以及等待微软官方补丁。建议用户更新前评估硬件兼容性并备份数据,企业环境应建立分阶段更新测试机制。该事件为系统更新风险管理提供了重要参考。

博客 1441

点云语义分割:PointNet训练S3DIS数据集

文章目录一、数据准备1.1、数据下载二、训练三、测试 项目地址:pointnet 此次我们是用pointnet网络来做语义分割。代码在pointnet项目中的sem_seg文件夹下,里面也有README.md介绍了训练的过程。 一、数据准备 1.1、数据下载 原始数据下载 处理好的h5格式数据下载 二、训练 三、测试 ...

zhaoguanhua的博客 4176
上一篇: 关于网络推广
下一篇: C#实现斗地主洗牌
fmpfantasy
博客等级 码龄20年 27粉丝 50原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值