You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

SlidingPuzzlewithStandardPythonModulesandwithoutClass

滑动拼图是一种常见的游戏,本教程将通过 Python 标准模块来实现无类的滑动拼图游戏

在开始之前,需要导入以下 Python 标准模块:

import random
from copy import deepcopy

接下来,定义行和列的数量以及横向和纵向的偏移量:

ROWS = 4
COLS = 4

DX = [0, 0, 1, -1]
DY = [1, -1, 0, 0]

定义初始和结束状态:

INIT_STATE = [[1,2,3,4],
              [5,6,7,8],
              [9,10,11,12],
              [13,14,15,0]]

GOAL_STATE = [[0,1,2,3],
              [4,5,6,7],
              [8,9,10,11],
              [12,13,14,15]]

接着,定义移动函数

def move(state, x, y, nx, ny):
    new_state = deepcopy(state)
    new_state[x][y], new_state[nx][ny] = new_state[nx][ny], new_state[x][y]
    return new_state

然后,定义启发函数

def heuristic(state):
    res = 0
    for i in range(ROWS):
        for j in range(COLS):
            if state[i][j] == 0:
                continue
            x, y = (state[i][j]-1) // COLS, (state[i][j]-1) % COLS
            res += abs(x-i) + abs(y-j)
    return res

接下来,定义主函数

def main():
    state = INIT_STATE
    steps = []
    steps.append(state)
    while state != GOAL_STATE:
        candidates = []
        x, y = 0, 0
        for i in range(ROWS):
            for j in range(COLS):
                if state[i][j] == 0:
                    x, y = i, j
                    break
            if state[i][j] == 0:
                break
        
        for i in range(4):
            nx, ny = x+DX[i], y+DY[i]
            if 0 <= nx < ROWS and 0 <= ny < COLS:
                new_state =
本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

SlidingPuzzlewithStandardPythonModulesandwithoutClass -优选内容

【iOS-Swif】拍摄&基础编辑 含 UI 接入文档
subspecs => ['CKStandard'], :path => "$CKSDK_RELATIVE_PATH/NLEEditor-iOS", :modular_headers => false pod 'DVETrackKit', :subspecs => ['CKStandard'], :path => "$CKSDK_RELATIVE_PATH/DVETrackKit", :... [Xcode 14 build failed with manual code sign and app resource bundles](https://github.com/CocoaPods/CocoaPods/issues/11402) config.build_settings['CODE_SIGN_IDENTITY'] = '-' confi...
【Android】拍摄&基础编辑 含 UI 接入文档
前提条件 支持Android 5.0或以上的设备,暂不支持模拟器调试 确保申请到有效的License以及Key和Token(详细信息参考5.4章节) 确保申请到Maven仓库的账号密码:获取方法请联系和您对接的技术支持经理 运行环境 以... modules.buildscript { //【必须】添加version.gradle apply from: rootProject.file("gradle-config/version.gradle") repositories { google() mavenCentral() maven { url 'htt...
ImageNet图像分类-01-MobileNet-ONNX
rock python;Indian cobra;green mamba;sea snake;horned viper;diamondback;sidewinder;trilobite;harvestman;scorpion;black and gold garden spider;barn spider;garden spider;black widow;tarantula;wolf spi... Lakeland terrier;Sealyham terrier;Airedale;cairn;Australian terrier;Dandie Dinmont;Boston bull;miniature schnauzer;giant schnauzer;standard schnauzer;Scotch terrier;Tibetan terrier;silky terrier;sof...

SlidingPuzzlewithStandardPythonModulesandwithoutClass -相关内容

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询