最新要闻
- 女生发烧考出618分:一蹦三尺高 挨个房间报喜
- 每日消息!ChatGPT漏洞 讲故事送Window11激活Key!
- 世界快播:刘慈欣谈ChatGPT:人类的无能反而是人类最后的屏障
- 今日热议:关于高考志愿填报,这些热点问题需要关注
- 推出长达7年:任天堂股东质疑Switch已逼近极限
- 实时焦点:苹果前总监炮轰App Store存在灰色地带 标准随心所欲
- 三乙醇胺油酸皂商品报价动态(2023-06-24)
- 救命一声吼!山洪暴发女子大喊提醒救下多名游客 世界讯息
- 索尼PS5串流掌机价格曝光:最高2100元能接受么?
- 全球视点!泰坦号观光潜艇“打破常规留名后世”,老板一语成谶片受热议
- 今日热门!Stable Diffusion模型发布新版本:生成图像以假乱真
- 钻石价格,突发“跳水”!未来还会更便宜?
- 泰坦号事故后:加拿大将展开事故调查
- 车主自曝差点被闷死在特斯拉Model X里 车门锁死 原因揭晓
- 蔡徐坤巡演新加坡站开票 《Hug me(remix版)》同日上线
- 每日简讯:4亿票房端午黑马:《消失的她》官宣海外定档
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
【当前独家】Blazor开发小游戏?趁热打铁上!!!
大家好,我是沙漠尽头的狼。
网站使用Blazor重构上线一天了,用Blazor开发是真便捷,空闲时间查查gpt和github,又上线一个 正则表达式在线验证工具 和几个在线小游戏,比如 井字棋游戏、扫雷 等。
下面简单介绍一下,看大家有没有兴趣或建议。
(资料图片仅供参考)
1. 新增在线小工具
1.1. 正则表达式在线验证工具
在线访问:https://dotnet9.com/tools/regextester
这个示例演示了如何使用Blazor Server开发一个简单的正则表达式在线验证工具。用户可以输入正则表达式和测试字符串并单击“测试”按钮以测试正则表达式是否匹配测试字符串。此外,这个示例还提供了10几个常用的正则表达式测试,用户可以单击链接加载测试数据并自动填充正则表达式和测试字符串。
上图的标注简单说明:
- 常用正则表达式:点击自动在下方填充对应的正则表达式(标注2)、测试文本(标注3),点击【测试】(标注4)即可验证
- 正则表达式:填写需要使用的正则表达式
- 测试文本区域:将需要验证提取的字符串填写在这里
- 【测试】按钮:点击应用上面的正则表达式(标注2)并提取测试文本区域(标注3)内容,将匹配结果显示在下方(标注5)
- 显示匹配的结果
代码一共123行,里面有常用的正则表达式,简单吧:
@page "/tools/regextester"@using System.Text.RegularExpressions@_title @_title
常用正则表达式测试
@foreach (var item in _regexPatterns) { @item.Name }
测试 @if (string.IsNullOrEmpty(_regexPattern) || string.IsNullOrEmpty(_testString)) { 请输入正则表达式和测试字符串并单击“测试”按钮。
} else { 匹配结果:
@foreach (var match in _matches) { - @match
}
} @code { private const string? _title = "工具箱-正则表达式在线验证工具"; private string? _regexPattern; private string? _testString; private string? _defaultString = @"下面是一些测试实例: history: v1.0 正则表达式测试工具上线 v1.1 2023-06-23 刚刚上线 1. 截至目前为止,最长域名后缀 .cancerresearch demo@qq.com dotnet9-9@vip.qq.com dotnet9-9@gmail.com demo@live.com 127.0.0.1 http://dotnet9.com/ 510112199901013592 https://dotnet9.com/ 123456789012345 18628035382 13493532389 川AAA008 京B45698 14:22:19"; private readonly List _regexPatterns = new() { new("匹配邮箱", @"\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}"), new("匹配中文", @"[\u4e00-\u9fa5]+"), new("匹配双字节字符(包含汉字)", @"[^\x00-\xff]+"), new("匹配时间(时:分:秒)", @"([01]?\d|2[0-3]):[0-5]?\d:[0-5]?\d"), new("匹配IP(IPV4)", @"\d{0,3}\.\d{0,3}\.\d{0,3}\.\d{0,3}"), new("匹配身份证", @"\d{17}[0-9Xx]|\d{15}"), new("匹配日期(年-月-日)", @"(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)"), new("匹配正整数", @"[1-9]\d*"), new("匹配负整数", @"-[1-9]\d*"), new("匹配手机号", @"(13\d|14[579]|15[^4\D]|17[^49\D]|18\d)\d{8}"), new("匹配车牌号", @"(([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z](([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳使领]))") }; private readonly List _matches = new(); private void TestRegex() { if (string.IsNullOrWhiteSpace(_regexPattern) || string.IsNullOrWhiteSpace(_testString)) { return; } try { var regex = new Regex(_regexPattern); var match = regex.Match(_testString); _matches.Clear(); while (match.Success) { _matches.Add(match.Value); match = match.NextMatch(); } } catch { _matches.Clear(); } } private void LoadTest(string pattern) { _regexPattern = pattern; _testString = _defaultString; } record RegexItem(string Name, string Pattern);}
2. 上线在线小游戏
这里先说明,站长上线小游戏,只是为了测试网站服务器压力,如果开发小游戏,建议用客户端模式(wasm),毕竟前者压力在服务器,后者在用户那里。
2.1. 猜数字游戏
在线访问:https://dotnet9.com/games/guessing-numbers
游戏开始时,会生成一个1到100之间的随机数字作为目标数字。玩家需要通过输入数字来猜测目标数字,系统会根据玩家的猜测给出相应的提示。如果玩家猜对了,游戏结束,显示恭喜信息,并提供开始新游戏的按钮。
这个游戏简单,代码几十行:
@page "/games/guessing-numbers"@_title @_title
@if (_isGameOver) { @_message
游戏结束!
开始新游戏
} else { 猜一个1到100之间的数字:
猜!
@_message
} @code { readonly string? _title = "猜数字游戏"; private int _targetNumber; private int _guess; private string? _message; private bool _isGameOver; protected override void OnInitialized() { StartNewGame(); } private void StartNewGame() { var random = new Random(); _targetNumber = random.Next(1, 101); _guess = 0; _message = ""; _isGameOver = false; } private void CheckGuess() { if (_guess == _targetNumber) { _message = "恭喜你猜对了!"; _isGameOver = true; } else if (_guess < _targetNumber) { _message = "猜小了!"; } else { _message = "猜大了!"; } }}
2.2. 井字棋游戏
在线访问:https://dotnet9.com/games/tictactoe
一个简单的井字棋游戏,玩家可以点击棋盘上的方格来下棋。游戏会检查是否有玩家获胜或者平局,并在游戏结束时显示相应的消息。玩家可以点击“开始新游戏”按钮来重新开始游戏。
代码117行:
@page "/games/tictactoe"@_title @_title
@if (_isGameOver) { @_message
游戏结束!
开始新游戏 } else { @for (var i = 0; i < 3; i++) { @for (var j = 0; j < 3; j++) { var i1 = i * 3 + j; @_board[i1] } } @_message
} @code { readonly string? _title = "井字棋游戏"; private string?[] _board = new string[9]; private string _currentPlayer = "X"; private string? _message; private bool _isGameOver; private void MakeMove(int index) { if (_board[index] != null || _isGameOver) { return; } _board[index] = _currentPlayer; if (CheckWin(_currentPlayer)) { _message = $"玩家 {_currentPlayer} 获胜!"; _isGameOver = true; } else if (_board.All(cell => cell != null)) { _message = "平局!"; _isGameOver = true; } else { _currentPlayer = _currentPlayer == "X" ? "O" : "X"; if (_currentPlayer == "O") { MakeComputerMove(); } } } private void MakeComputerMove() { // 简单的随机选择一个可用的方格来下棋 var availableMoves = Enumerable.Range(0, 9).Where(i => _board[i] == null).ToList(); var random = new Random(); var randomIndex = random.Next(availableMoves.Count); var computerMove = availableMoves[randomIndex]; _board[computerMove] = _currentPlayer; if (CheckWin(_currentPlayer)) { _message = $"电脑获胜!"; _isGameOver = true; } else if (_board.All(cell => cell != null)) { _message = "平局!"; _isGameOver = true; } else { _currentPlayer = _currentPlayer == "X" ? "O" : "X"; } } private bool CheckWin(string player) { // 检查所有可能的获胜组合 return (_board[0] == player && _board[1] == player && _board[2] == player) || (_board[3] == player && _board[4] == player && _board[5] == player) || (_board[6] == player && _board[7] == player && _board[8] == player) || (_board[0] == player && _board[3] == player && _board[6] == player) || (_board[1] == player && _board[4] == player && _board[7] == player) || (_board[2] == player && _board[5] == player && _board[8] == player) || (_board[0] == player && _board[4] == player && _board[8] == player) || (_board[2] == player && _board[4] == player && _board[6] == player); } private bool IsCellDisabled(int index) { return _isGameOver || _board[index] != null; } private void StartNewGame() { _board = new string[9]; _currentPlayer = "X"; _message = null; _isGameOver = false; }}
2.3. 在线扫雷游戏
在线访问:https://dotnet9.com/games/minesweeper
在这个示例中,玩家需要点击方格来揭开它们。如果玩家踩到地雷,游戏结束。如果玩家揭开的方格周围有地雷,方格上会显示相应的数字,表示周围的地雷数量。如果玩家成功揭开所有没有地雷的方格,游戏胜利。
此游戏高度还原早期Window版本扫雷,代码较多,抄自开源项目:https://github.com/jarDotNet/BlazorMinesweeper, 如果对代码感兴趣可查看该开源项目,或阅读 Dotnet9网站 关于扫雷部分代码:
3. 最后的话
再说一次哦,网站的小游戏只是为了测试,Server模式不建议开发游戏类功能,这个交给Client模式吧。
大家有什么工具需求欢迎留言,站长有空会考虑加上。
今天分享到这,祝大家端午安康。
- 网站地址:https://dotnet9.com/
- 网站源码:https://github.com/dotnet9/Dotnet9
- .NET版本: .NET 8.0.0-preview.5.23280.8
- 微信技术群:添加站长微信(dotnet9com),一定要备注【入群】2个字
- QQ技术群:771992300
关键词:
【当前独家】Blazor开发小游戏?趁热打铁上!!!
当前热门:火狐主页diy设置以及常用的扩展
DZY Loves Math|全球即时看
女生发烧考出618分:一蹦三尺高 挨个房间报喜
每日消息!ChatGPT漏洞 讲故事送Window11激活Key!
世界快播:刘慈欣谈ChatGPT:人类的无能反而是人类最后的屏障
今日热议:关于高考志愿填报,这些热点问题需要关注
缓存一致性如何保障
推出长达7年:任天堂股东质疑Switch已逼近极限
实时焦点:苹果前总监炮轰App Store存在灰色地带 标准随心所欲
三乙醇胺油酸皂商品报价动态(2023-06-24)
救命一声吼!山洪暴发女子大喊提醒救下多名游客 世界讯息
索尼PS5串流掌机价格曝光:最高2100元能接受么?
全球视点!泰坦号观光潜艇“打破常规留名后世”,老板一语成谶片受热议
DLang 与 C 语言交互
Apollo2.1.0+Springboot使用OpenApI
邮箱:微信企业域名邮箱给gmail或hotmail等域外邮箱发邮件被退回问题如何解决? 环球观焦点
今日热门!Stable Diffusion模型发布新版本:生成图像以假乱真
钻石价格,突发“跳水”!未来还会更便宜?
使用python发送sip协议的OPTIONS 热门
k8s 深入篇———— k8s 的pod[五]-全球播资讯
8. Java-AOP 面向切面编程
文心一言 VS 讯飞星火 VS chatgpt (46)-- 算法导论6.1 4题|全球热点评
泰坦号事故后:加拿大将展开事故调查
车主自曝差点被闷死在特斯拉Model X里 车门锁死 原因揭晓
蔡徐坤巡演新加坡站开票 《Hug me(remix版)》同日上线
来一打自建IP Proxy玩玩之Majora
kafka学习之五_多个磁盘的性能验证 世界快看点
Go——常用函数
每日速递:卷福的十年同学会
每日简讯:4亿票房端午黑马:《消失的她》官宣海外定档
冲入球场拥抱梅西小伙获释后道歉:我真不是没素质的人
世界观天下!新会绿美生态园票价(新会绿美生态园票价多少钱)
腾讯两大国民APP账号又打通了?QQ悄然支持微信登陆 环球精选
环球快报:调查称安卓更易上手:iPhone用户遇到问题概率高出58%
java 异常处理,事务管理,事务共用,事务传递 天天微头条
Go-闭包和defer|最新资讯
环球热资讯!Zen3清库存?突然冒出个很特别的锐龙5 5700
虚幻5打造!腾讯动漫《斗罗大陆2》今日两集首播 霍雨浩初入星斗大森林|每日观察
“空中出租车”亮相巴黎航展:可降落空间直径仅需15米-环球速递
古力娜扎曾遭换脸视频威胁勒索:不给钱就毁了你!
男生单曲循环《好运来》查出593分大哭:比平时多出50分 超常发挥
全球钻石价格较峰值暴跌18%:人造钻石市场规模不断扩大_全球视点
环球最新:甲亢遇到异食癖:法国男子一顿吃15人份 急了还吃石头木塞
全球热点评!公鸡突然从背后“偷袭”萌娃 飞起两脚踹倒在地 第二天端午节就被炖了
泰国和美国两地大量鱼类死亡 或与海洋升温有关 快看点
【技术积累】C语言中的指针【一】_世界百事通
Go-自定义数据类型(函数类型)详解
行业风险管理需求强烈
焦点信息:AMD RX 7800被逼急了!硬塞进去个“大胖子”
世界视点!一考生查分 全家一起喊出“666”:打算冲击复旦、交大
Kafka学习之四_Grafana监控相关的学习
一天吃透MySQL面试八股文 环球微速讯
什么是大模型? 每日热讯
内马尔在足球界的地位_内马尔的盘带水平在足球史上处于什么地位 全球要闻
【环球财经】伦敦金属交易所基本金属23日多数下跌_全球信息
白玉兰奖完整名单出炉 年初大热电视剧《狂飙》挂零陪跑-天天实时
中国高空开伞试验运载器发射连续成功:木星、天王星我们来了! 今日热讯
男子微信回了个“OK”表情 结果竟成被告!一点都不冤 速读
环球报道:尼康Z8新故障导致无法锁定镜头:官方承诺免费维修
【天天新要闻】读发布!设计与部署稳定的分布式系统(第2版)笔记10_自动化和缓慢的响应
无线路由器怎么连接电视(无线路由器怎么连接)
【环球新要闻】要考北大!汶川“敬礼娃娃”郎铮高考637分:15年前被埋20小时
关注:OPPO突然放弃自研芯片 真是因为没钱了?3000哲库人不信
看热讯:四川学霸女生高考712分查完分就睡觉、汶川“敬礼娃娃”郎铮637分
微软承认输掉“主机战争”:Xbox难以与竞争对手抗衡 每日头条
环球微动态丨特斯拉AI账号悄然上线:Dojo超级计算机下月开始生产
pro e
无牌产品硬刚国际大牌 就因为带货主播们买地建厂?
复兴号开进青藏铁路 提速至160公里/时 全程不到6小时
微软终于认怂!重新恢复Win11文件管理器经典功能
《人世间》赢麻!成最佳中国电视剧 雷佳音吴越分获白玉兰最佳男女主角_当前热门
“泰坦”号悲剧隐患早已埋下
2023年 年轻人被迫流行功能机了?-每日快看
全球快资讯丨【技术积累】Git中的基础知识【一】
世界信息:登录验证,JWT,过滤器,拦截器使用总结 2023
全球资讯:索尼时隔10年公布全新PS掌机Q!价格够低
焦点资讯:女孩没考好 和妈妈吵架后竟被丢高速:网友观点出奇一致
“4S店之王”破产离场 斯巴鲁中国重大变更:开始独资|当前焦点
大超险些成为007 环球快资讯
南漳县属于哪个省市_南漳县属于哪个市|每日速讯
今日快看!电影相约2000年(相约2000年)
imessage怎么设置不要钱_imessage怎么设置
Springboot web 项目开发流程梳理总结|世界讯息
今日热门!模型剪枝:让深度学习模型更好地应对不同的任务和环境
WEB安全-渗透测试-waf绕过信息收集_世界快看点
【独家焦点】“超人”亨利卡维尔有望成为007新片邦德扮演者:试镜效果棒极了
长安欧尚Z6新能源半年降价3万多 车主集体投诉
天天讯息:ASP.NET Core MVC 从入门到精通之缓存
全球时讯:文心一言 VS 讯飞星火 VS chatgpt (45)-- 算法导论6.1 3题
当前头条:【后端面经-Spring】Spring 中 bean 的生命周期)
美国国债收益率持续下跌,10年期国债收益率下跌8.90个基点 世界资讯
世界通讯!GPS靠边!北斗全球卫星导航系统星座部署完成3年 正突破毫米级甚至更小精度
【忠阳车评】固态电池量产难在哪 世界微资讯
【天天报资讯】微软爆料索尼PS6主机:2028年推出
光刻机一哥荷兰ASML:建立全自主半导体产业链几乎不可能!|环球热讯
K8S安装记录
《暗黑破坏神4》野蛮人双晕结算流分享 野蛮人双晕结算流怎么玩?
高考查分场面代入感太强 男生601分激动得满屋蹦跳:高中三年考最好的一次
重庆两案例入选全国职业教育产教融合典型案例_观天下