感觉好玩但不一定好用的代码

本文介绍了一种使用VBA实现链表的方法,并通过Append函数演示了链表节点的添加过程。此外,还展示了一个利用错误处理来判断字符串是否包含特定数字的示例。
类CLink代码如下:
Private  mI  As   Integer

Public   Function  Append(i  As   Integer As  CLink
    mI 
=  mI  +  i
    
Set  Append  =  Me
End Function

Public   Function  GetValue()  As   Integer
    GetValue 
=  mI
End Function
用法如下:
     Dim  c  As  CLink
    
Set  c  =   New  CLink
    
MsgBox  c.Append( 1 ).Append( 2 ).Append( 3 ).GetValue
    
Set  c  =   Nothing
好玩的就是Append函数的用法,《Programming Ruby》里边有一段这么的用法,只是感觉有趣。

判断是否包含字符串的一个用法,下边只是一个范例:
Private   Function  IncludeNumber(s  As   String As   Boolean
    Static c 
As  Collection
    
Dim  i  As   Integer
    
Dim  v  As   String
    
If  c  Is   Nothing   Then
        
Set  c  =   New  Collection
        
For  i  =   0   To   9
            c.Add i, 
" c "   &  i
        
Next
    
End   If
    
On   Error   GoTo  e:
    c.Item 
" c "   &  s
    IncludeNumber 
=   True
    
Exit   Function
e:
End Function
说白了,很多时候适当利用错误处理进行一些逻辑判断也是好的。 719489.html

Duiker 2007-04-19 12:50 发表评论
<think>我们被要求使用jQuery和HTML实现一个砸金蛋功能。根据引用[1]中的描述,我们可以得知:-每次在页面上只显示一个金蛋。-点击金蛋时,使用Ajax提交请求到后台。-后台处理(可能是Java)并返回结果(例如中奖信息)。-然后在前台显示结果。由于用户要求的是前端的完整代码(jQuery和HTML),我们不需要实现后端,但需要模拟一个Ajax请求和响应过程。步骤:1.HTML结构:包含一个金蛋图片(可点击)和一个显示结果的区域。2.CSS样式:设置金蛋图片的样式,以及可能的一些动画效果(比如砸蛋动画)。3.jQuery事件:点击金蛋时,触发Ajax请求,并在请求成功后显示中奖信息。为了模拟后台,我们可以使用一个模拟的响应数据(比如随机返回一个奖项)。注意:由于用户要求完整代码,我们将提供HTML、CSS和jQuery代码。实现思路:-使用一张金蛋图片,点击后,我们可以更换图片为砸开的蛋(或者使用CSS动画来展示砸蛋效果)。-通过Ajax模拟请求,我们可以设置一个固定的URL(使用一个模拟的JSON文件,或者使用一个假的URL,然后通过setTimeout模拟延迟)。-返回结果后,在页面上显示中奖信息。为了简化,我们这里不使用真实的服务器端,而是模拟一个异步请求,随机返回一个奖项。代码结构:1.HTML:包含一个div作为金蛋容器(里面放一个img标签),一个div用于显示结果。2.CSS:定义金蛋的样式,以及可能的动画(比如点击时晃动)。3.jQuery:绑定点击事件,发送Ajax请求(使用$.ajax或$.get),处理返回结果。考虑到引用[1]中提到每次只显示一个金蛋,所以我们只做一个金蛋。具体代码:HTML部分:```html<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><title>砸金蛋</title><linkrel="stylesheet"href="style.css"><!--如果单独写CSS文件--><scriptsrc="https://code.jquery.com/jquery-3.6.0.min.js"></script></head><body><h1>砸金蛋</h1><divid="egg-container"><imgid="golden-egg"src="golden_egg.png"alt="金蛋"></div><divid="result"></div><scriptsrc="script.js"></script><!--引入jQuery代码--></body></html>```CSS部分(style.css):```css#golden-egg{width:200px;cursor:pointer;}/*可以添加一些动画效果,比如点击时晃动*/@keyframesshake{0%{transform:translateX(0);}25%{transform:translateX(-10px);}50%{transform:translateX(10px);}75%{transform:translateX(-10px);}100%{transform:translateX(0);}}.shake{animation:shake0.5s;}```jQuery部分(script.js):```javascript$(document).ready(function(){$('#golden-egg').click(function(){//避免重复点击if($(this).hasClass('disabled')){return;}$(this).addClass('disabled');//添加晃动动画$(this).addClass('shake');setTimeout(()=>{$(this).removeClass('shake');},500);//模拟Ajax请求setTimeout(()=>{//这里模拟异步请求,实际中应该用$.ajax//假设返回的数据为{prize:"一等奖"}//实际中:$.get('url',function(data){...});varprizes=["一等奖","二等奖","三等奖","谢谢参与"];varrandomPrize=prizes[Math.floor(Math.random()*prizes.length)];//显示结果$('#result').text('恭喜你获得:'+randomPrize);//更换图片为砸开的蛋$(this).attr('src','broken_egg.png');//如果希望重新开始,可以在一段时间后重置//这里我们不重置,因为是一次性的},1000);});});```说明:1.点击金蛋时,首先添加一个禁用类,防止重复点击。2.添加晃动动画(持续0.5秒),然后移除动画类。3.使用setTimeout模拟Ajax请求的延迟(1秒后返回结果)。4.随机返回一个奖项,并在结果区域显示。5.将金蛋图片替换为砸开的蛋(需要准备两张图片:golden_egg.png和broken_egg.png)。注意:图片需要放在与HTML文件相同的目录,或者修改图片路径。如果需要重置功能(比如再次砸蛋),可以添加一个重置按钮,或者在一定时间后自动重置。这里我们只做一次砸蛋。相关问题:1.如何实现多个金蛋的砸蛋效果?2.如何与真实的后端接口进行交互?3.砸蛋动画如何更逼真(比如使用GIF动画)?4.如何优化砸蛋的用户体验(比如加入音效)?</think>### jQuery和HTML实现砸金蛋功能 下面是一个完整的砸金蛋实现方案,包含HTML结构、CSS样式和jQuery交互逻辑: ```html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>砸金蛋游戏</title> <style> .egg-container { display: flex; justify-content: center; margin: 50px 0; } .golden-egg { width: 120px; height: 160px; background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 150"><ellipse cx="50" cy="75" rx="40" ry="60" fill="%23FFD700" stroke="%23D4AF37" stroke-width="2"/></svg>') center/contain no-repeat; cursor: pointer; transition: transform 0.3s; position: relative; } .golden-egg:hover { transform: scale(1.05); } .result-display { text-align: center; font-size: 24px; min-height: 40px; margin: 20px 0; color: #e74c3c; } .hammer { position: absolute; width: 80px; height: 80px; background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><rect x="30" y="10" width="40" height="80" fill="%238B4513"/><rect x="10" y="10" width="80" height="20" fill="%23A0522D"/></svg>') center/contain no-repeat; pointer-events: none; opacity: 0; z-index: 10; } .cracked-egg { background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 150"><ellipse cx="50" cy="75" rx="40" ry="60" fill="%23FFD700" stroke="%23D4AF37" stroke-width="2"/><path d="M30 75 L70 75 M50 55 L50 95" stroke="%23800" stroke-width="3"/></svg>') center/contain no-repeat; } .reset-btn { padding: 10px 20px; background-color: #3498db; color: white; border: none; border-radius: 5px; cursor: pointer; font-size: 16px; display: block; margin: 0 auto; } </style> </head> <body> <h1 style="text-align: center;">砸金蛋游戏</h1> <div class="egg-container"> <div class="golden-egg" id="goldenEgg"> <div class="hammer" id="hammer"></div> </div> </div> <div class="result-display" id="resultDisplay"></div> <button class="reset-btn" id="resetBtn">重新开始</button> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> $(document).ready(function() { const prizes = ["一等奖: 1000元", "二等奖: 500元", "三等奖: 200元", "幸运奖: 50元", "谢谢参与"]; // 砸蛋动画函数 function animateHammer(event) { const hammer = $('#hammer'); const egg = $('#goldenEgg'); // 定位锤子到鼠标位置 hammer.css({ left: event.pageX - egg.offset().left - 40, top: event.pageY - egg.offset().top - 40, opacity: 1 }); // 锤击动画 hammer.animate({ top: '-=30', opacity: 0.8 }, 100, function() { $(this).animate({ top: '+=30', opacity: 0 }, 200); }); // 金蛋晃动效果 egg.css('transform', 'rotate(-5deg)'); setTimeout(() => egg.css('transform', 'rotate(5deg)'), 100); setTimeout(() => egg.css('transform', 'rotate(0deg)'), 200); } // 砸金蛋事件处理 $('#goldenEgg').click(function(e) { if ($(this).hasClass('cracked-egg')) return; // 播放锤子动画 animateHammer(e); // 模拟AJAX请求到后端 setTimeout(() => { // 随机获取奖项 const prizeIndex = Math.floor(Math.random() * prizes.length); const prize = prizes[prizeIndex]; // 显示结果 $('#resultDisplay').text(`恭喜您获得: ${prize}`); // 显示砸开的金蛋 $(this).addClass('cracked-egg'); // 实际应用中这里应发送AJAX请求: /* $.ajax({ url: '/lottery/draw', type: 'POST', success: function(response) { $('#resultDisplay').text(`恭喜您获得: ${response.prize}`); }, error: function() { $('#resultDisplay').text('系统繁忙,请稍后再试'); } }); */ }, 300); }); // 重置游戏 $('#resetBtn').click(function() { $('#goldenEgg').removeClass('cracked-egg'); $('#resultDisplay').text(''); }); }); </script> </body> </html> ``` ### 功能说明 1. **HTML结构**: - 金蛋容器 `.egg-container` - 金蛋元素 `.golden-egg` - 锤子动画元素 `.hammer` - 结果显示区域 `.result-display` - 重置按钮 `.reset-btn` 2. **CSS样式**: - 使用SVG内联数据创建金蛋和锤子图形 - 金蛋悬停放大效果 - 砸蛋时的晃动动画 - 锤子下落动画效果 - 砸开后的金蛋裂痕效果 3. **jQuery功能**: - 点击金蛋触发锤子动画和金蛋晃动效果 - 随机抽奖逻辑(实际应用中替换为AJAX请求) - 结果显示和样式更新 - 重置按钮恢复初始状态 ### 实际应用建议 1. **后端集成**: ```javascript // 实际AJAX请求示例 $('#goldenEgg').click(function() { $.ajax({ url: '/api/draw-lottery', method: 'POST', data: { userId: 123 }, success: function(response) { if(response.success) { $('#resultDisplay').text(`恭喜获得: ${response.prize.name}`); // 更新用户奖品记录 } else { $('#resultDisplay').text(response.message); } } }); }); ``` 2. **安全增强**: - 添加CSRF令牌防护 - 限制用户每日抽奖次数 - 服务器端验证抽奖逻辑 3. **扩展功能**: - 添加音效(砸蛋声、中奖音效) - 实现多蛋布局(3/5/9个蛋) - 添加奖品展示动画 - 用户中奖记录展示 ### 相关问题 1. 如何防止用户通过开发者工具篡改抽奖结果? 2. 砸金蛋游戏如何实现多蛋连续砸开的效果? 3. 如何为砸金蛋添加金币飞出的动画特效? 4. 服务器端如何设计公平的抽奖算法? 5. 砸金蛋游戏在移动端有哪些优化要点?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值