前言
关于【生命游戏】之前小编写发过一篇Java版的,这里就不再对其介绍了,不了解的读者可以点下方链接前往了解: https://blog.csdn.net/weixin_44155115/article/details/103884572
这一次小编做了一个web版的,并分享在我的码云上,感觉用js做确实是比Java的swing做起来方便很多,这也算是小编初学前端第一个练习吧。
效果图
先看看效果图吧! 有兴趣的朋友也可以点击下方链接试玩: http://nonoas.gitee.io/webproj/LifeGame/
源码
这里小编把源码附上,送给和我一样初学前端的朋友,也希望路过的大佬不吝赐教,哈哈。 源码也可以通过下方【码云】链接获取: https://gitee.com/nonoas/webProj/tree/master/LifeGame
HTML
< html>
< head>
< meta charset = " utf-8" />
< title> 生命游戏网页版 title>
< link type = " text/css" rel = " stylesheet" href = " css/index.css" />
< link type = " text/css" rel = " stylesheet" href = " css/style.css" />
< script src = " https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js" > script>
< script src = " js/index.js" > script>
head>
< body>
< div class = " center-content-box" >
< h1> 生命游戏 h1>
div>
< div id = " table-module" class = " center-content-box" >
< div id = " game-intro" >
< h2> 游戏简介 h2>
< p> 生命游戏(game of life)为1970年由英国数学家J. H. Conway所提出
某细胞的邻居包括上、下、左、右、左上、左下、右上与右下相邻之细胞 游戏规则如下: p>
< p> < b> 孤单死亡: b> 如果细胞的邻居小于等于1个,则该细胞在下一次状态将死亡; p>
< p> < b> 拥挤死亡: b> 如果细胞的邻居在4个及以上,则该细胞在下一次状态将死亡; p>
< p> < b> 稳定: b> 如果细胞的邻居为2个或3个,则下一次状态为稳定存活; p>
< p> < b> 复活: b> 如果某位置原无细胞存活,而该位置的邻居为2个或3个,则该位置将复活一个细胞。 p>
div>
< div id = " table-box" >
< table id = " cell-table" border = " 1" >
table>
div>
< div id = " game-operator" >
< div class = " text-module" >
< p id = " cur-period" > < span class = " Label" > 当前周期: span> < span id = " period" > span> p>
< p>
< span class = " Label" > 行列数量: span>
< input id = " cell-count" type = " text" placeholder = " 整数(0" />
p>
< p> < span class = " Label" > 演化速度: span> < input id = " speed" type = " text" /> p>
< p title = " 设置随机分布时的密度" > < span class = " Label" > 分布密度: span> < input id = " thickness" type = " text" /> p>
< p class = " comment" > 提示:“行列数量” 和 “分布密度” 在点击 “重新布置” 后生效。 p>
div>
< div class = " btn-module" >
< div class = " btn-box" >
< p> < input id = " resetCell" type = " button" value = " 重新布置" /> p>
< p> < input id = " btn-randomSet" type = " button" value = " 随机分布" /> p>
< p> < input id = " next-term" type = " button" value = " 下一周期" /> p>
< p> < input id = " btn-start" type = " button" value = " 开始演化" /> p>
div>
div>
div>
div>
< div id = " copy-right" >
< nav class = " center-content-box" >
< a href = " " > 作者:Nonoas a>
< hr>
< a href = " https://blog.csdn.net/weixin_44155115/article/details/105129831" > CSDN a>
< hr>
< a href = " https://gitee.com/nonoas/webProj/tree/master/LifeGame" target = " _blank" > Gitee a>
nav>
div>
body>
html>
CSS
@charset "utf-8" ;
* {
margin : 0;
box-sizing : border-box;
color : white;
font-family : "Microsoft YaHei UI" ;
}
html {
height : 100%;
width : 100%;
}
body {
width : 100%;
height : 100%;
padding : 2%;
background : url(../img/home-bg.png) ;
overflow : hidden;
}
h1 {
filter : drop-shadow ( 2px 5px 5px rgba ( 0, 0, 0, 0.3) ) ;
-webkit-filter : drop-shadow ( 2px 5px 5px rgba ( 0, 0, 0, 0.3) ) ;
-moz-filter : drop-shadow ( 2px 5px 5px rgba ( 0, 0, 0, 0.3) ) ;
}
#table-module {
height : 90%;
}
#table-box {
width : 30rem;
height : 30rem;
padding : 1.5%;
background-color : #23b8af;
filter : drop-shadow ( 2px 5px 5px rgba ( 0, 0, 0, 0.2) ) ;
-webkit-filter : drop-shadow ( 2px 5px 5px rgba ( 0, 0, 0, 0.2) ) ;
-moz-filter : drop-shadow ( 2px 5px 5px rgba ( 0, 0, 0, 0.2) ) ;
border-radius : 1rem;
}
#table-box td:hover {
animation : tdHover 1s;
background-color : rgba ( 255, 255, 255, 0.7) ;
}
table {
width : 100%;
height : 100%;
text-align : center;
border-collapse : collapse;
border : 1px solid white;
}
#game-intro {
width : 20%;
height : 30rem;
margin-right : 2%;
padding : 2%;
background-color : #23b8af;
border-radius : 1rem;
filter : drop-shadow ( 2px 5px 5px rgba ( 0, 0, 0, 0.2) ) ;
-webkit-filter : drop-shadow ( 2px 5px 5px rgba ( 0, 0, 0, 0.2) ) ;
-moz-filter : drop-shadow ( 2px 5px 5px rgba ( 0, 0, 0, 0.2) ) ;
overflow : auto;
}
#game-intro::-webkit-scrollbar {
display : none;
}
#game-intro h2 {
margin-bottom : 1.5rem;
text-align : center;
}
#game-intro p {
font-size : 0.9rem;
margin : 5% 0 5% 0;
}
#game-operator {
width : 20%;
height : 30rem;
margin-left : 2%;
padding : 1%;
background-color : #23b8af;
border-radius : 1rem;
filter : drop-shadow ( 2px 5px 5px rgba ( 0, 0, 0, 0.2) ) ;
-webkit-filter : drop-shadow ( 2px 5px 5px rgba ( 0, 0, 0, 0.2) ) ;
-moz-filter : drop-shadow ( 2px 5px 5px rgba ( 0, 0, 0, 0.2) ) ;
overflow : auto;
}
#game-operator p {
margin : 5%;
}
#game-operator::-webkit-scrollbar {
display : none;
}
.text-module {
height : 45%;
}
.text-module input[type="text"] {
width : calc ( 100%) ;
padding : 2%;
border : 1.5px solid #fff;
outline : none;
background-color : rgba ( 0, 0, 0, 0) ;
}
input::-webkit-input-placeholder {
color : #ddd;
}
input::-moz-placeholder {
color : #ddd;
}
input:-moz-placeholder {
color : #ddd;
}
input:-ms-input-placeholder {
color : #ddd;
}
.text-module p {
display : flex;
align-items : center;
}
#cur-period {
display : flex;
justify-content : flex-start;
}
.text-module .Label {
font-weight : bold;
white-space : nowrap;
}
.text-module .comment {
font-size : 0.7rem;
}
#cell-count {
width : calc ( 100%-10px) ;
}
.btn-module {
height : 50%;
display : flex;
align-items : flex-end;
}
.btn-box {
width : 100%;
}
.btn-module input[type="button"] {
width : 100%;
padding : 0.5rem;
font-size : 1.1rem;
color : #19867d;
border : none;
border-radius : 1rem;
background-color : #b8faff;
transition : all 0.4s;
outline : none;
}
.btn-module input[type="button"]:hover {
background-color : #fff;
}
.btn-module input[type="button"]:active {
background-color : #b8faff;
}
#copy-right a {
margin : 0 1% 0 1%;
font-size : 0.8rem;
}
#copy-right hr {
height : 1rem;
border : none;
border-right : 1px solid #fff;
}
JS
var row = 15 ;
var speed = 200 ;
var period;
var thickness = 3 ;
var r = "rgba(255, 255, 255, 0.9)" ;
var n = "rgba(255, 255, 255, 0)" ;
var lifeRule = new Array ( ) ;
var cell = new Array ( ) ;
var tr;
var suspand;
$ ( function ( ) {
initAll ( )
} ) ;
function initAll ( ) {
period = 0 ;
$ ( "#cell-count" ) . attr ( "value" , row) ;
$ ( "#speed" ) . attr ( "value" , speed) ;
$ ( "#period" ) . text ( period) ;
$ ( "#thickness" ) . attr ( "value" , thickness) ;
for ( var i = 0 ; i < row; i++ ) {
cell[ i] = new Array ( ) ;
for ( var j = 0 ; j < row; j++ ) {
cell[ i] [ j] = 0 ;
}
}
for ( var i = 0 ; i < row; i++ ) {
lifeRule[ i] = new Array ( ) ;
for ( var j = 0 ; j < row; j++ ) {
lifeRule[ i] [ j] = 0 ;
}
}
for ( var i = 0 ; i < row; i++ ) {
var tr = $ ( "") ;
for ( var j = 0 ; j < row; j++ ) {
tr. append ( $ ( " ") ) ;
}
tr. appendTo ( $ ( "#cell-table" ) ) ;
}
$ ( "td" ) . click ( function ( ) {
var color = $ ( this ) . css ( "background-color" ) ;
var rowIndex = $ ( this ) . parent ( ) . index ( ) ;
var cellIndex = $ ( this ) . index ( )
if ( color == r) {
cell[ rowIndex] [ cellIndex] = 0 ;
$ ( this ) . css ( "background-color" , n) ;
} else {
cell[ rowIndex] [ cellIndex] = 1 ;
$ ( this ) . css ( "background-color" , r) ;
}
} ) ;
tr = $ ( "#cell-table" ) . find ( "tr" ) ;
$ ( "#btn-randomSet" ) . click ( function ( ) {
for ( var i = 0 ; i < row; i++ )
for ( var j = 0 ; j < row; j++ ) {
var flag = getRandomNum ( 0 , 10 ) ;
if ( flag < thickness) {
cell[ i] [ j] = 1 ;
tr. eq ( i) . find ( "td" ) . eq ( j) . css ( "background-color" , r) ;
} else {
cell[ i] [ j] = 0 ;
tr. eq ( i) . find ( "td" ) . eq ( j) . css ( "background-color" , n) ;
}
}
} ) ;
}
$ ( function ( ) {
$ ( "#cell-count" ) . change ( function ( ) {
var rows = $ ( this ) . val ( ) ;
if ( rows <= 0 || rows > 100 ) {
alert ( "行列数量取值范围为:(0,100]" ) ;
$ ( this ) . val ( row) ;
}
} ) ;
$ ( "#speed" ) . change ( function ( ) {
var s = $ ( this ) . val ( ) ;
if ( s < 0 || s> 5000 ) {
alert ( "演化速度取值范围为:[0,5000]" ) ;
$ ( this ) . val ( speed) ;
} else {
speed= $ ( this ) . val ( ) ;
}
} ) ;
$ ( "#btn-start" ) . click ( function ( ) {
var text = $ ( this ) . val ( ) ;
console. log ( text) ;
if ( text == "开始演化" ) {
$ ( this ) . val ( "暂停" ) ;
suspand = setInterval ( evolution, speed) ;
} else {
$ ( this ) . val ( "开始演化" ) ;
clearInterval ( suspand) ;
}
} ) ;
$ ( "#next-term" ) . click ( function ( ) {
evolution ( ) ;
} ) ;
$ ( "#resetCell" ) . click ( function ( ) {
clearInterval ( suspand) ;
$ ( "#btn-start" ) . val ( "开始演化" ) ;
row = $ ( "#cell-count" ) . val ( ) ;
speed = $ ( "#speed" ) . val ( ) ;
period = $ ( "#period" ) . text ( ) ;
thickness = $ ( "#thickness" ) . val ( ) ;
$ ( "#cell-table" ) . empty ( ) ;
initAll ( ) ;
} ) ;
} )
function getRandomNum ( Min, Max) {
var Range = Max - Min;
var Rand = Math. random ( ) ;
return ( Min + Math. round ( Rand * Range) ) ;
}
function evolution ( ) {
var tr = $ ( "#cell-table" ) . find ( "tr" ) ;
setCellBool ( ) ;
for ( var i = 0 ; i < lifeRule. length; i++ )
for ( var j = 0 ; j < lifeRule[ 0 ] . length; j++ ) {
if ( lifeRule[ i] [ j] == 1 ) {
cell[ i] [ j] = 1 ;
tr. eq ( i) . find ( "td" ) . eq ( j) . css ( "background-color" , r) ;
} else {
cell[ i] [ j] = 0 ;
tr. eq ( i) . find ( "td" ) . eq ( j) . css ( "background-color" , n) ;
}
}
$ ( "#period" ) . text ( ++ period) ;
}
function setCellBool ( ) {
for ( var i = 0 ; i < lifeRule. length; i++ )
for ( var j = 0 ; j < lifeRule[ 0 ] . length; j++ ) {
switch ( countAround ( i, j) ) {
case 0 :
case 1 :
case 4 :
case 5 :
case 6 :
case 7 :
case 8 :
lifeRule[ i] [ j] = 0 ;
break ;
case 2 :
case 3 :
lifeRule[ i] [ j] = 1 ;
break ;
}
}
}
function countAround ( r, c) {
var count = 0 ;
count += countCell ( r - 1 , c - 1 ) ;
count += countCell ( r - 1 , c) ;
count += countCell ( r - 1 , c + 1 ) ;
count += countCell ( r, c - 1 ) ;
count += countCell ( r, c + 1 ) ;
count += countCell ( r + 1 , c - 1 ) ;
count += countCell ( r + 1 , c) ;
count += countCell ( r + 1 , c + 1 ) ;
return count;
}
function countCell ( r, c) {
if ( r < 0 || r >= row || c < 0 || c >= row || cell[ r] [ c] == 0 )
return 0 ;
return 1 ;
}
你可能感兴趣的:(【生命游戏】纯前端web版,可在线体验)
x86-64汇编语言训练程序与实战
十除以十等于一
本文还有配套的精品资源,点击获取简介:汇编语言是一种低级语言,与机器代码紧密相关,特别适用于编写系统级代码及性能要求高的应用。nasm编译器是针对x86和x86-64架构的汇编语言编译器,支持多种语法风格和指令集。项目Euler提供数学和计算机科学问题,鼓励编程技巧应用,前100个问题的答案可共享。x86-64架构扩展了寄存器数量并引入新指令,提升了数据处理效率。学习汇编语言能够深入理解计算机底层
日更006 终极训练营day3
懒cici
人生创业课(2)今天的主题:学习方法一:遇到有用的书,反复读,然后结合自身实际,列践行清单,不要再写读书笔记思考这本书与我有什么关系,我在哪些地方能用到,之后我该怎么用方法二:读完书没映像怎么办?训练你的大脑,方法:每读完一遍书,立马合上书,做一场分享,几分钟都行对自己的学习要求太低,要逼自己方法三:学习深度不够怎么办?找到细分领域的榜样,把他们的文章、书籍、产品都体验一遍,成为他们的超级用户,向
9、汇编语言编程入门:从环境搭建到简单程序实现
神经网络酱
汇编语言 MEPIS GNU工具链
汇编语言编程入门:从环境搭建到简单程序实现1.数据存储介质问题解决在处理数据存储时,若要使用MEPIS系统,需确保有其可访问的存储介质。目前,MEPIS无法向采用NTFS格式(常用于Windows2000和XP工作站)的硬盘写入数据。不过,若硬盘采用FAT32格式,MEPIS就能进行写入操作。此外,MEPIS还能将文件写入软盘和大多数USB闪存驱动器。若工作站连接到局域网,还可通过FTP协议或挂载
三件事—小白猫·雨天·八段锦
咸鱼月亮
1.最近楼下出现一只非常漂亮的粘人小白猫,看着不像是流浪猫,非常亲人。眼睛比蓝球的还大,而且是绿色的,很漂亮。第一次遇到它,它就跟我到电梯口,如果我稍微招招手,肯定就跟我进电梯了。后来我喂过它几次,好可惜不能养它,一只蓝球就是我的极限了。2.下雨天就心烦,好奇怪。明明以前我超爱看窗外的雨和听雨声,看来近来的心情不够宁静了。3.最近在练八段锦,从第一次就爱上了这个运动,很轻松缓慢,但是却出汗。感觉可
Flowable 实战落地核心:选型决策与坑点破解
练习时长两年半的程序员小胡
Flowable 流程引擎实战指南 低代码 BPMN 流程引擎 flowable 后端 java
在企业级流程引擎的落地过程中,选型的准确性和坑点的预见性直接决定项目成败。本文聚焦Flowable实战中最关键的“选型决策”与“常见坑点”,结合真实项目经验,提供可落地的解决方案。一、流程引擎选型:从业务本质出发1.1选型的三大核心维度企业在选择流程引擎时,需避免陷入“技术崇拜”,应回归业务本质。评估Flowable是否适用,可从三个维度判断:业务复杂度若流程涉及动态审批链(如按金额自动升级审批)
在线人数统计业务设计(场景八股文)
业务问题在当经的网站中,在线人数的实时统计已经是一个必不可少的模块了,并且该统计功能最好能够按不同的时间间隔做的统计,现在需要你设计一个在线人数统计的模块,你应该怎么进行设计的呢?背景一个网校下会有多个学员。目前平台大概有十个,平台对应的网校大概五十几个,平均一个网校会有5w个用户,预计总人数为200w,最该学员的在线人数在10w左右。设计思路最开始的时候,想到的就是使用mysql直接实现,但是明
为什么焦虑、抑郁、自残的青少年越来越多?
精神健康
很多家长觉得没缺孩子吃的穿的,他们有安稳的生活,他们有什么可焦虑、抑郁的,但现在的孩子,学习压力越来越大,每天休息的时间越来越少,出现焦虑抑郁是很正常的。从发展的角度看,青少年时期,人的身体、情绪,智力、人格都急剧发展,正从未成熟走向成熟,情绪起伏不定,易冲动,再者,由于缺乏生活经验,以及来自于家长、学校、社会的各种要求和压力,从而不知所措,心中的焦虑、恐惧、彷徨得不到及时的排解,从而导致心理上的
可处理!环境排放3.0项目怎么提现?裕华投资会刘裕华免费荐股骗局曝光!
墨守成法
骗子冒充裕华投资会刘裕华通过伪造或仿冒投资平台,向股民发送虚假环境排放3.0项目链接,引导股民者下载进行投资,以送一万体验金操作小额投资能提现作为诱饵,不断引导消费者加大资金投入。不法分子随后迅速转移资金,当投资者要提现时候就以“流水未完成”“登录异常”“服务器维护”“比赛未结束”等借口不让提现,直到平台关闭跑了或者完成流水任务为由一波亏完。在以翻本为借口继续让投资者加入资金。若你不幸遭遇到裕华投
2025年SDK游戏盾终极解析:重新定义手游安全的“隐形护甲”
上海云盾商务经理杨杨
游戏 安全
副标题:从客户端加密到AI反外挂,拆解全链路防护如何重塑游戏攻防天平引言:当传统高防在手游战场“失效”2025年全球手游市场规模突破$2000亿,黑客单次攻击成本却降至$30——某SLG游戏因协议层CC攻击单日流失37%玩家,某开放世界游戏遭低频DDoS瘫痪6小时损失千万。传统高防IP的致命短板暴露无遗:无法识别伪造客户端流量、难防协议篡改、误杀率超15%。而集成于游戏终端的SDK游戏盾,正以“源
学生把我的课件换成小三认罪书(赵书晴宋诗月)全集阅读_学生把我的课件换成小三认罪书最新章节阅读_赵书晴宋诗月(学生把我的课件换成小三认罪书)全本免费在线阅读_(学生把我的课件换成小三认罪书)完结...
笔趣阁热门小说
学生把我的课件换成小三认罪书(赵书晴宋诗月)全集阅读_学生把我的课件换成小三认罪书最新章节阅读_赵书晴宋诗月(学生把我的课件换成小三认罪书)全本免费在线阅读_(学生把我的课件换成小三认罪书)完结版免费在线阅读_学生把我的课件换成小三认罪书(赵书晴宋诗月)完整版免费阅读_(学生把我的课件换成小三认罪书)全章节免费在线阅读主角配角:赵书晴宋诗月简介:我和赵京立去了民政局提交了申请因为离婚冷静期,还要再
二十四节气组诗 谷雨
离陌_6639
图片来源网络,若侵犯了你的权益,请联系我删除6.谷雨文/离陌背上行囊背上如行囊的我从此任行程马不停蹄今天家乡的田野春雨快马加鞭播下希望的种子观音不语目送着我和夏天一道在观音山出关图片来源网络,若侵犯了你的权益,请联系我删除你好啊,我是离陌,已然在懵懂中走过了16年的岁月,为了珍惜当下的每一秒,所以立志做一名终身学习者。文学对于我来说是一种信仰,诗歌是我的生命。人生之道,四通八达,即入文学,自当持之
刻意忽视孩子的成功,会让孩子迷失存在价值
草原野狼战队
2020年5月22日星期五晴亲子日记2014级7班马驰翔爸爸893苏珊·福沃德在《中毒的父母》一书中提到:小孩子不会区分事实和笑话,他们会相信父母说的有关自己的话,并将其变为自己的观点。中国式的父母总是习惯用对比式的教育方式去“刺激”孩子,过分关注别人家的孩子,这种看似微不足道的习惯,却给孩子的未来造成着巨大的影响,其中最严重的一点就是用生命去证明自己存在的价值。在我身边有一个非常鲜活却让人痛心的
分支和循环(下)
tryxr
服务器 运维
写⼀个猜数字游戏游戏要求:1.电脑⾃动⽣成1~100的随机数2.玩家猜数字,猜数字的过程中,根据猜测数据的⼤⼩给出⼤了或⼩了的反馈,直到猜对,游戏结束1.随机数生成要想完成猜数字游戏,⾸先得产⽣随机数,那怎么产⽣随机数呢?randC语⾔提供了⼀个函数叫rand,这函数是可以⽣成随机数的,函数原型如下所⽰:intrand(void);rand函数会返回⼀个伪随机数,这个随机数的范围是在0~RAND_
2023-07-19
桥东外甥
今天在游戏里卖了第一桶金,哈哈,不多,只有一百块。下班之余,没事在游戏里搬搬砖,一星期搞个一百块钱,少是少了点,毕竟哪怕是捡废品都比这个多,或者送外卖能更多,只不过比较简单,而且也很容易,呆在家里,玩着游戏挣两顿饭钱,总比一毛不挣的强吧?这也算是向前迈出一步吧,毕竟很少之前就有过搬砖挣钱的想法,只不过一开始没有渠道,而且也不想迈步,所以浪费了不少,一想之前浪费了几百块钱,就觉得有些心疼。哎,本来之
是配角还是主角
伽儸
图片发自App听朋友说这部剧很好就去追了看到曼丽死的时候我哭了好像看到了曾经的自己为了爱可以不顾一切就算默默陪着你也可以。就算你一次又一次的伤害有关于你我还是奋不顾身,我以为不会再喜欢别人可失望攒多了确实是绝望。离开你我遇见了更好的自己因为他。可我却变得小火翼翼把这份喜欢深埋心底但是在不经意间总会流露出对你的关心我不确定你的答案会因此疏远我。每次担心不已还要故作镇静假装不在意用行动去表达时却忐忑不
JVM 内存分配与回收策略:从对象创建到内存释放的全流程
在JVM的运行机制中,内存分配与回收策略是连接对象生命周期与垃圾收集器的桥梁。它决定了对象在堆内存中的创建位置、存活过程中的区域迁移,以及最终被回收的时机。合理的内存分配策略能减少GC频率、降低停顿时间,是优化Java应用性能的核心环节。本文将系统解析JVM的内存分配规则、对象晋升机制,以及实战中的内存优化技巧。一、对象优先在Eden区分配:新生代的“临时缓冲区”大多数情况下,Java对象在新生代
D124:如何训练独立思考力?
大栗子_
当我们要判断一个理论或者思想是否正确,需要有三个层次,分别是体验、解释和分析。首先看体验。很多时候,我们会相信“听上去、感觉是对的”的事情。我们之前讲的太空笔的故事之所以大多数人都认为是对的,就是有一些看似真实的关键词,比如美国,NASA,设计等,这些词看起来非常权威,但是离我们又遥远,这时候我们的大脑就会放松警惕了。于是,我们毫不犹豫就接受了。说到这里,你有没有发现之前的电视广告中的各种高让我们
仿品百达翡丽男表价格(仿品百达翡丽价格一览表)
爱表之家
百达翡丽作为世界顶级的钟表品牌,其男表以精湛的工艺、卓越的品质和独特的设计赢得了众多钟表爱好者的青睐。然而,由于其高昂的价格,许多消费者转向仿品市场,以较低的价格体验类似的设计与风格【重要提醒】文章最下面有联系方式将对仿品百达翡丽男表的价格进行详细解析,帮助消费者更好地了解这一市场。一、仿品百达翡丽男表价格区间仿品百达翡丽男表的价格因其品质、材质、功能等因素而差异较大,大致可以分为以下几个价格区间
社交电商平台有哪些?社交电商怎么做?
氧惠评测
社交电商平台有很多,以下是一些常见的社交电商平台:氧惠APP是与以往完全不同的抖客+淘客app!2024全新模式,我的直推也会放到你下面。主打:带货高补贴,深受各位带货团队长喜爱(训练营导师每天出单带货几万单)。注册即可享受高补贴+0撸+捡漏等带货新体验。送万元推广大礼包,教你如何1年做到百万团队。珊珊导师氧惠邀请码888999,注册送万元推广大礼包,教你如何1年做到百万团队。氧惠app:氧惠ap
旧系统UI焕新陷阱:保留业务习惯与引入新交互的平衡点把控
贝格前端工场
ui 交互
摘要**想给老旧系统换上“高颜值新衣”,却遭遇员工集体吐槽“不会用”?满心期待新交互能提升效率,结果用户操作频频出错,业务进度反而被拖慢?旧系统UI焕新本是优化体验的好机会,可在保留多年养成的业务操作习惯,与引入更先进便捷的新交互方式之间,却横亘着巨大鸿沟。稍有不慎,就会陷入“改了不如不改”的尴尬境地。这场关于“守旧”与“创新”的博弈,究竟该如何破局?一、旧系统UI焕新:一场甜蜜又棘手的改造工程旧
鬼谷子智慧:怎样留人死心塌地跟你干;威逼利诱是最差劲的方法
国学文化学者
随着社会经济发展的迅速提升,企业现代化的变更,更多的企业已经改变了固有的用人模式,更多的是需要专业对口,减少培训成本的员工,可同样现在人才也是如此,选择变多了,在一家企业的时间就变得不再持久了。无论是企业用人还是找工作,似乎变得都不再那么简单了。其实解决了如何留人的问题也就解决了不断更换工作的问题;一个企业各方面都不错,谁又想经常换工作呢?鬼谷子智谋鬼谷子有提到,量才而用,根据他自身的能力让他得到
人不能两次踏进同一条河流
就是源
这是古希腊学家赫拉克利特的名言,在我原先看来就是万事万物都在不断的变化,强调事物的运动性。可后来了解到他还有个徒弟更深的进行了解读,人哪怕一次也不能踏进同一条河流,因为当你踏进的时候,已经不是你最初想的那天河流了。这确实也说明了事物无时无刻不在运动,可感觉毫无意义,如果一切都这样去算,那么每一秒甚至每一个更加微小的时间上都会有一个不同的结论,这根本无法指明生活的方向和解决困顿,只会让人更加困顿。这
Android 应用权限管理详解
文章目录1.权限类型2.权限请求机制3.权限组和分级4.权限管理的演进5.权限监控和SELinux强制访问控制6.应用权限审核和GooglePlayProtect7.开发者最佳实践8.用户权限管理9.Android应用沙箱模型10.ScopedStorage(分区存储)11.背景位置权限(BackgroundLocationAccess)12.权限回收和自动清理13.权限请求的用户体验设计14.G
农场种蔬菜赚钱小游戏有哪些 五大可以赚钱的小游戏APP
氧惠帮朋友一起省
喜欢种菜吗?我特意带来农场种蔬菜赚钱小游戏排行榜2022,线上汇集了超多模拟种菜玩法,玩家可以免费种植赚钱哦!每天都有大量的种植任务,线上完成就能赚钱哦!快来下载吧!1.氧惠APP购物、看电影、点外卖、用氧惠APP!更优惠!氧惠(全网优惠上氧惠)——是与以往完全不同的抖客+淘客app!2023全新模式,我的直推也会放到你下面,送1:1超级补贴(邀请好友自购多少,你就推广得多少,非常厉害),欢迎各位
元宇宙中的视觉技术:虚拟化身与场景生成
xcLeigh
计算机视觉CV 元宇宙 虚拟化身 场景生成 AIGC 数字孪生
元宇宙中的视觉技术:虚拟化身与场景生成前言一、元宇宙与视觉技术的深度关联1.1元宇宙概念深度剖析1.2视觉技术:元宇宙的“灵魂之窗”二、虚拟化身:数字世界的“第二自我”2.1虚拟化身技术的深度解析2.1.1核心技术构成2.1.2技术实现原理与流程2.2虚拟化身的应用领域及案例展示2.2.1游戏娱乐领域2.2.2教育培训领域三、场景生成:构建元宇宙的虚拟天地3.1场景生成技术全景透视3.1.1关键技
在人间(阿伟林秀芳柳娇娇)全本免费在线阅读_人间乐事全文阅读《人间芳韵》
一米文库2
在人间(阿伟林秀芳柳娇娇)全本免费在线阅读_人间乐事全文阅读《人间芳韵》主角配角:阿伟林秀芳柳娇娇小说别名:在人间、人间乐事、人间芳韵简介:和美艳寂寞的小姨上山,不小心被她女儿看到……关注微信公众号【一米文库】回复书号【1017】即可阅读小说【在人间】全文内容!!!【戳我继续阅读】“嗯~~阿伟,你好强壮……”芳姨喝多了酒,被我搀扶着艰难的往卧室走去。她身上香喷喷的,温香软玉靠在我身上,性感的红唇几
【Coze搞钱实战】3. 避坑指南:对话流设计中的6个致命错误(真实案例)
AI_DL_CODE
Coze平台 对话流设计 客服Bot避坑 用户流失 封号风险 智能客服配置 故障修复指南
摘要:对话流设计是智能客服Bot能否落地的核心环节,直接影响用户体验与业务安全。本文基于50+企业Bot部署故障分析,聚焦导致用户流失、投诉甚至封号的6大致命错误:无限循环追问、人工移交超时、敏感词过滤缺失、知识库冲突、未处理否定意图、跨平台适配失败。通过真实案例拆解每个错误的表现形式、技术根因及工业级解决方案,提供可直接复用的Coze配置代码、工作流模板和检测工具。文中包含对话流健康度检测工具使
深入理解 Tomcat Wrapper 原理
北漂老男人
Tomcat tomcat java
深入理解TomcatWrapper原理一、引言在Tomcat的分层容器架构中,Wrapper作为最底层的容器,专门负责管理单个Servlet的生命周期及请求分发。每一个Servlet(包括JSP、Filter等)都对应一个Wrapper。Wrapper是Servlet规范与Tomcat容器实现之间的桥梁,直接关系到请求的分发效率、Servlet的加载与重用、安全隔离等。本文将系统剖析Wrapper
青云官道庄岩柳琴免费完结版小说_已完结小说推荐青云官道(庄岩柳琴)
d036fb3b3d05
《青云官道》主角:庄岩柳琴,简介:小科员庄岩,因一纸调研报告被副市长赏识,本以为能够就此走上人生巅峰,结果副市长就被双规!不过庄岩非但没有被牵连,反而拿着副市长留下的东西,不仅抱得美人,还平步青云,扶摇而上九万里!关注微信公众号【夏至文馆】去回复个书号【1190】即可阅读小说【青云官道】全文内容!!!小庄,现在几点了?”富丽堂皇的客厅里,一个身穿旗袍的美妇紧张的来回的踱步!“夫人,11点57。”站
2022-01-06
嘴角上扬的微微笑
[cp]《琅琊榜》中萧景睿和梅长苏的这段对话,太让人治愈了。他说:“凡是人,总有取舍,你取了你认为重要的东西,舍弃了我,这只是你的选择而已。若是我因为没有被选择,就心生怨恨。那这世间岂不是有太多不可原谅之处。毕竟谁都没有责任,要以我为先,以我为重。无论我如何希望,也不能强求。我之所以这么待你,是因为我愿意。若是以此,换回同样的诚心,固然可喜。可若是没有,我也没有什么好后悔的。”看到这段话真的太感动
Dom
周华华
JavaScript html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
【Spark九十六】RDD API之combineByKey
bit1129
spark
1. combineByKey函数的运行机制
RDD提供了很多针对元素类型为(K,V)的API,这些API封装在PairRDDFunctions类中,通过Scala隐式转换使用。这些API实现上是借助于combineByKey实现的。combineByKey函数本身也是RDD开放给Spark开发人员使用的API之一
首先看一下combineByKey的方法说明:
msyql设置密码报错:ERROR 1372 (HY000): 解决方法详解
daizj
mysql 设置密码
MySql给用户设置权限同时指定访问密码时,会提示如下错误:
ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number;
问题原因:你输入的密码是明文。不允许这么输入。
解决办法:用select password('你想输入的密码');查询出你的密码对应的字符串,
然后
路漫漫其修远兮 吾将上下而求索
周凡杨
学习 思索
王国维在他的《人间词话》中曾经概括了为学的三种境界古今之成大事业、大学问者,罔不经过三种之境界。“昨夜西风凋碧树。独上高楼,望尽天涯路。”此第一境界也。“衣带渐宽终不悔,为伊消得人憔悴。”此第二境界也。“众里寻他千百度,蓦然回首,那人却在灯火阑珊处。”此第三境界也。学习技术,这也是你必须经历的三种境界。第一层境界是说,学习的路是漫漫的,你必须做好充分的思想准备,如果半途而废还不如不要开始。这里,注
Hadoop(二)对话单的操作
朱辉辉33
hadoop
Debug:
1、
A = LOAD '/user/hue/task.txt' USING PigStorage(' ')
AS (col1,col2,col3);
DUMP A;
//输出结果前几行示例:
(>ggsnPDPRecord(21),,)
(-->recordType(0),,)
(-->networkInitiation(1),,)
web报表工具FineReport常用函数的用法总结(日期和时间函数)
老A不折腾
finereport 报表工具 web开发
web报表工具FineReport常用函数的用法总结(日期和时间函数)
说明:凡函数中以日期作为参数因子的,其中日期的形式都必须是yy/mm/dd。而且必须用英文环境下双引号(" ")引用。
DATE
DATE(year,month,day):返回一个表示某一特定日期的系列数。
Year:代表年,可为一到四位数。
Month:代表月份。
c++ 宏定义中的##操作符
墙头上一根草
C++
#与##在宏定义中的--宏展开 #include <stdio.h> #define f(a,b) a##b #define g(a) #a #define h(a) g(a) int main() { &nbs
分析Spring源代码之,DI的实现
aijuans
spring DI 现 源代码
(转)
分析Spring源代码之,DI的实现
2012/1/3 by tony
接着上次的讲,以下这个sample
[java]
view plain
copy
print
for循环的进化
alxw4616
JavaScript
// for循环的进化
// 菜鸟
for (var i = 0; i < Things.length ; i++) {
// Things[i]
}
// 老鸟
for (var i = 0, len = Things.length; i < len; i++) {
// Things[i]
}
// 大师
for (var i = Things.le
网络编程Socket和ServerSocket简单的使用
百合不是茶
网络编程基础 IP地址端口
网络编程;TCP/IP协议
网络:实现计算机之间的信息共享,数据资源的交换
协议:数据交换需要遵守的一种协议,按照约定的数据格式等写出去
端口:用于计算机之间的通信
每运行一个程序,系统会分配一个编号给该程序,作为和外界交换数据的唯一标识
0~65535
查看被使用的
JDK1.5 生产消费者
bijian1013
java thread 生产消费者 java多线程
ArrayBlockingQueue:
一个由数组支持的有界阻塞队列。此队列按 FIFO(先进先出)原则对元素进行排序。队列的头部 是在队列中存在时间最长的元素。队列的尾部 是在队列中存在时间最短的元素。新元素插入到队列的尾部,队列检索操作则是从队列头部开始获得元素。
ArrayBlockingQueue的常用方法:
JAVA版身份证获取性别、出生日期及年龄
bijian1013
java 性别 出生日期 年龄
工作中需要根据身份证获取性别、出生日期及年龄,且要还要支持15位长度的身份证号码,网上搜索了一下,经过测试好像多少存在点问题,干脆自已写一个。
CertificateNo.java
package com.bijian.study;
import java.util.Calendar;
import
【Java范型六】范型与枚举
bit1129
java
首先,枚举类型的定义不能带有类型参数,所以,不能把枚举类型定义为范型枚举类,例如下面的枚举类定义是有编译错的
public enum EnumGenerics<T> { //编译错,提示枚举不能带有范型参数
OK, ERROR;
public <T> T get(T type) {
return null;
【Nginx五】Nginx常用日志格式含义
bit1129
nginx
1. log_format
1.1 log_format指令用于指定日志的格式,格式:
log_format name(格式名称) type(格式样式)
1.2 如下是一个常用的Nginx日志格式:
log_format main '[$time_local]|$request_time|$status|$body_bytes
Lua 语言 15 分钟快速入门
ronin47
lua 基础
-
-
单行注释
-
-
[[
[多行注释]
-
-
]]
-
-
-
-
-
-
-
-
-
-
-
1.
变量 & 控制流
-
-
-
-
-
-
-
-
-
-
num
=
23
-
-
数字都是双精度
str
=
'aspythonstring'
java-35.求一个矩阵中最大的二维矩阵 ( 元素和最大 )
bylijinnan
java
the idea is from:
http://blog.csdn.net/zhanxinhang/article/details/6731134
public class MaxSubMatrix {
/**see http://blog.csdn.net/zhanxinhang/article/details/6731134
* Q35
求一个矩阵中最大的二维
mongoDB文档型数据库特点
开窍的石头
mongoDB文档型数据库特点
MongoDD: 文档型数据库存储的是Bson文档-->json的二进制
特点:内部是执行引擎是js解释器,把文档转成Bson结构,在查询时转换成js对象。
mongoDB传统型数据库对比
传统类型数据库:结构化数据,定好了表结构后每一个内容符合表结构的。也就是说每一行每一列的数据都是一样的
文档型数据库:不用定好数据结构,
[毕业季节]欢迎广大毕业生加入JAVA程序员的行列
comsci
java
一年一度的毕业季来临了。。。。。。。。
正在投简历的学弟学妹们。。。如果觉得学校推荐的单位和公司不适合自己的兴趣和专业,可以考虑来我们软件行业,做一名职业程序员。。。
软件行业的开发工具中,对初学者最友好的就是JAVA语言了,网络上不仅仅有大量的
PHP操作Excel – PHPExcel 基本用法详解
cuiyadll
PHP Excel
导出excel属性设置//Include classrequire_once('Classes/PHPExcel.php');require_once('Classes/PHPExcel/Writer/Excel2007.php');$objPHPExcel = new PHPExcel();//Set properties 设置文件属性$objPHPExcel->getProperties
IBM Webshpere MQ Client User Issue (MCAUSER)
darrenzhu
IBM jms user MQ MCAUSER
IBM MQ JMS Client去连接远端MQ Server的时候,需要提供User和Password吗?
答案是根据情况而定,取决于所定义的Channel里面的属性Message channel agent user identifier (MCAUSER)的设置。
http://stackoverflow.com/questions/20209429/how-mca-user-i
网线的接法
dcj3sjt126com
一、PC连HUB (直连线)A端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 B端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 二、PC连PC (交叉线)A端:(568A): 白绿,绿,白橙,蓝,白蓝,橙,白棕,棕; B端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 三、HUB连HUB&nb
Vimium插件让键盘党像操作Vim一样操作Chrome
dcj3sjt126com
chrome vim
什么是键盘党?
键盘党是指尽可能将所有电脑操作用键盘来完成,而不去动鼠标的人。鼠标应该说是新手们的最爱,很直观,指哪点哪,很听话!不过常常使用电脑的人,如果一直使用鼠标的话,手会发酸,因为操作鼠标的时候,手臂不是在一个自然的状态,臂肌会处于绷紧状态。而使用键盘则双手是放松状态,只有手指在动。而且尽量少的从鼠标移动到键盘来回操作,也省不少事。
在chrome里安装 vimium 插件
MongoDB查询(2)——数组查询[六]
eksliang
mongodb MongoDB查询数组
MongoDB查询数组
转载请出自出处:http://eksliang.iteye.com/blog/2177292 一、概述
MongoDB查询数组与查询标量值是一样的,例如,有一个水果列表,如下所示:
> db.food.find()
{ "_id" : "001", "fruits" : [ "苹
cordova读写文件(1)
gundumw100
JavaScript Cordova
使用cordova可以很方便的在手机sdcard中读写文件。
首先需要安装cordova插件:file
命令为:
cordova plugin add org.apache.cordova.file
然后就可以读写文件了,这里我先是写入一个文件,具体的JS代码为:
var datas=null;//datas need write
var directory=&
HTML5 FormData 进行文件jquery ajax 上传 到又拍云
ileson
jquery Ajax html5 FormData
html5 新东西:FormData 可以提交二进制数据。
页面test.html
<!DOCTYPE>
<html>
<head>
<title> formdata file jquery ajax upload</title>
</head>
<body>
<
swift appearanceWhenContainedIn:(version1.2 xcode6.4)
啸笑天
version
swift1.2中没有oc中对应的方法:
+ (instancetype)appearanceWhenContainedIn:(Class <UIAppearanceContainer>)ContainerClass, ... NS_REQUIRES_NIL_TERMINATION;
解决方法:
在swift项目中新建oc类如下:
#import &
java实现SMTP邮件服务器
macroli
java 编程
电子邮件传递可以由多种协议来实现。目前,在Internet 网上最流行的三种电子邮件协议是SMTP、POP3 和 IMAP,下面分别简单介绍。
◆ SMTP 协议
简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)是一个运行在TCP/IP之上的协议,用它发送和接收电子邮件。SMTP 服务器在默认端口25上监听。SMTP客户使用一组简单的、基于文本的
mongodb group by having where 查询sql
qiaolevip
每天进步一点点 学习永无止境 mongo 纵观千象
SELECT cust_id,
SUM(price) as total
FROM orders
WHERE status = 'A'
GROUP BY cust_id
HAVING total > 250
db.orders.aggregate( [
{ $match: { status: 'A' } },
{
$group: {
Struts2 Pojo(六)
Luob.
POJO strust2
注意:附件中有完整案例
1.采用POJO对象的方法进行赋值和传值
2.web配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee&q
struts2步骤
wuai
struts
1、添加jar包
2、在web.xml中配置过滤器
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.st