用html5模拟的汉诺塔

博主利用html5的拖动功能,创建了一个简单的汉诺塔模拟程序。这是他的实践过程记录,欢迎交流讨论。
摘要由CSDN通过智能技术生成

今天学习html5拖动的时候突然想到可以用html5来模拟个汉诺塔,说做就做。以下是我的实现,比较简单勿喷,不过欢迎指正和探讨

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
    <style type="text/css">
        .container{border:solid 1px black;width:200px; height:200px; padding:10px;}
        .hanoi{border:solid 1px black; padding:5px;}
        #hanoi3{width:150px; height:150px;}
        #hanoi2{width:100px; height:100px;}
        #hanoi1{width:60px; height:60px;}
        
    </style>
    <script type="text/javascript">
        function allowDrop(ev) {
            ev.preventDefault();
        }

        function drag(ev) {
            ev.dataTransfer.setData("Text", ev.target.id);
        }

        function drop(ev) {
            ev.preventDefault();
            var data = ev.dataTransfer.getData("Text");
            var droper = do
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用递归来模拟汉诺塔游戏时,需要定义一个函数来实现移动盘子的操作。下面是使用Python递归模拟汉诺塔游戏的示例代码: ```python def hanoi(n, source, target, auxiliary): if n > 0: # 将 n-1 个盘子从源柱移动到辅助柱 hanoi(n-1, source, auxiliary, target) # 将最大的盘子从源柱移动到目标柱 print(f"将盘子 {n} 从 {source} 移动到 {target}") # 将 n-1 个盘子从辅助柱移动到目标柱 hanoi(n-1, auxiliary, target, source) # 示例 n = 3 # 盘子的数量 source = "A" # 源柱 target = "C" # 目标柱 auxiliary = "B" # 辅助柱 hanoi(n, source, target, auxiliary) ``` 在上述代码中,`hanoi` 函数接受四个参数 `n`、`source`、`target` 和 `auxiliary`。其中,`n` 表示盘子的数量,`source` 表示源柱,`target` 表示目标柱,`auxiliary` 表示辅助柱。 函数内部使用递归的方式来实现汉诺塔游戏的移动操作。首先,通过递归调用 `hanoi(n-1, source, auxiliary, target)` 将 n-1 个盘子从源柱移动到辅助柱。然后,将最大的盘子从源柱移动到目标柱,并打印出移动的过程。最后,通过递归调用 `hanoi(n-1, auxiliary, target, source)` 将 n-1 个盘子从辅助柱移动到目标柱。 以上代码输出的结果为: ``` 将盘子 1 从 A 移动到 C 将盘子 2 从 A 移动到 B 将盘子 1 从 C 移动到 B 将盘子 3 从 A 移动到 C 将盘子 1 从 B 移动到 A 将盘子 2 从 B 移动到 C 将盘子 1 从 A 移动到 C ``` 这样,我们就使用递归成功模拟汉诺塔游戏的移动过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值