V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
netcan
V2EX  ›  程序员

用 SDL 写了个滑动拼图(八数码)利用 A*寻路算法的游戏

  •  1
     
  •   netcan ·
    netcan · 2016-04-11 22:56:17 +08:00 · 2840 次点击
    这是一个创建于 3143 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近女票的数据结构作业有道是利用 A*算法解决八数码问题。

    就是在 3×3 的棋盘上,摆有八个棋子,每个棋子上标有 1 至 8 的某一数字。棋盘中留有一个空格,空格用 0 来表示。空格周围的棋子可以移到空格中。求出从初始状态到目标状态的最少步骤和路径(解法)。

    然后花了一晚上写出来,这几天又加了 GUI 。

    先上 github 地址方便大家 Star:https://github.com/netcan/SlidePuzzle

    效果图:https://raw.githubusercontent.com/netcan/SlidePuzzle/master/Slidepuzzle.png

    视频预览:https://raw.githubusercontent.com/netcan/SlidePuzzle/master/Slidepuzzle.mp4

    游戏下载

    1. windows版本:https://raw.githubusercontent.com/netcan/SlidePuzzle/master/dist/slidepuzzle_windows_release_1.0.zip
    2. Linux 版本:https://raw.githubusercontent.com/netcan/SlidePuzzle/master/dist/slidepuzzle_linux

    编写心得:http://www.netcan666.com/2016/04/08/%E8%A7%A3%E5%86%B3%E5%85%AB%E6%95%B0%E7%A0%81%E9%97%AE%E9%A2%98%E4%B9%8BA-%E7%AE%97%E6%B3%95/

    洗澡去了。。。破学校断电迟早要完。

    5 条回复    2016-04-12 10:24:38 +08:00
    epkT6QJ3RSaz6AnJ
        1
    epkT6QJ3RSaz6AnJ  
       2016-04-12 01:41:52 +08:00   ❤️ 1
    * struct 用 class 实现,减少 POD[here]( http://stackoverflow.com/questions/5432681/performances-of-structs-vs-classes),出于规范和兼容性考虑
    * 两分查找在哪?如果 multimap 是 BST 那么也算吧
    * multimap 实现优先队列是个坑,改手写的堆比较稳
    markx
        2
    markx  
       2016-04-12 06:32:23 +08:00
    从来没写过 A*,基本上忘记了。
    netcan
        3
    netcan  
    OP
       2016-04-12 07:20:20 +08:00 via Android
    @epkT6QJ3RSaz6AnJ 多谢指导。手写堆的话,状态可能不好搜索,现在效率还行,累坏情况 200ms 搜索出解
    way2explore2
        4
    way2explore2  
       2016-04-12 10:22:25 +08:00
    github 里放视频,这样不好吧 ......
    netcan
        5
    netcan  
    OP
       2016-04-12 10:24:38 +08:00 via Android
    @way2explore2 视频不大。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1005 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:47 · PVG 05:47 · LAX 13:47 · JFK 16:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.