前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Lua程序设计》-2.八皇后问题

《Lua程序设计》-2.八皇后问题

作者头像
祝你万事顺利
发布2019-06-24 09:25:02
4620
发布2019-06-24 09:25:02
举报

1.解决八皇后问题,必须认识到每一行只能有一个皇后

N = 8;
function isplaceok(a,n,c)
    for i=1,n-1 do
        if a[i] == c or 
        (a[i] - c) == (i - n) or
        (a[i] - c) == (n - i)
        then
        return false;
            -- body
        end
    end
    return true;
end

function printSolution(a)
    for i=1,N do
        for j=1,N do
            io.write(a[i] == j and "X" or "-"," ");
        end
        io.write("\n");
    end
    io.write("\n");
end

function addQueen( a , n)
    getRes = false;
    if n > N then
        printSolution(a)
        getRes = true;
    else
        for c = 1, N do
            if  getRes == false and isplaceok(a,n,c) then
                a[n] = c;
                addQueen(a,n+1);
            end
        end

    end
end
addQueen({},1);
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.06.23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档