冰壶2.0(递归)

这篇文章探讨了MM-21星球上一种独特的冰壶游戏,玩家需要在限制的移动次数内,通过策略性地击打障碍物,将石头从起点移动到目标。游戏遵循特定的移动规则,包括不允许对角线移动,且石头会一直移动直到遇到障碍或达到目标。作者提出了一种基于深度优先搜索的递归算法来寻找达到目标所需的最小移动次数。对于无法在10次移动内达到目标的情况,游戏以失败告终。文章提供了示例和解决方案,并附有C++实现代码。
摘要由CSDN通过智能技术生成

 

描述

在MM-21星球上,今年的奥运会之后,冰壶越来越受欢迎。但规则与我们的规则有些不同。游戏在冰游戏板上进行,游戏板上标有方形网格。他们只使用一块石头。游戏的目的是以最少的动作将石头从开始引导到目标。

图1示出了游戏板的示例。一些正方形可能被块占用。有两个特殊的方块,即开始和目标,没有被块占用。(这两个方块是截然不同的。)一旦石头开始移动,它将继续运行,直到它碰到一个块。为了将石头带到球门上,你可能不得不通过击打一块来阻止它,并再次投掷。


图1:电路板示例(S:开始,G:目标)

石头的运动遵循以下规则:

  • 起初,石头静止在起始广场。
  • 石头的运动受限于x和y方向。禁止对角线移动。
  • 当石头静止不动时,你可以通过扔它来移动它。你可以把它扔向任何方向,除非它立即被阻挡(图2(a))。
  • 一旦抛出,石头就会向同一方向移动,直到出现下列情况之一:
    • 石头击中一块(图2(b),(c))。
      • 石头停在它撞击的街区旁边的广场上。
      • 块消失了。
    • 石头离开了板。
      • 游戏以失败告终。
    • 石头到达目标广场。
    • 0
      点赞
    • 3
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值