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

🔦💡 关灯挑战!💡🔦你能在几步之内关掉所有的灯吗?

  •  
  •   AlexJesus · 4 天前 · 1286 次点击
    https://kuakua.app/zh/games/lightsoff
    你能在几步之内关掉所有的灯吗?🔲⬛ 经典益智游戏来了!🧩 你需要多少步才能通关?😎

    点击方块,关灯,看看你是否能打破自己的最佳时间!🕹️ 准备好接受挑战了吗?👀
    22 条回复    2025-01-16 11:45:21 +08:00
    pigf
        1
    pigf  
       4 天前
    我这智商有点玩不转
    lxdlam
        2
    lxdlam  
       3 天前
    在 GF(2) 域上解线性方程组。
    zihuyishi
        3
    zihuyishi  
       3 天前
    我写了一个深搜,算的 13 步能跑完,不知道对不对
    ```golang
    package main

    import "fmt"

    const N = 5

    type Status [N][N]bool

    func (s Status) Click(x, y int) Status {
    s[x][y] = !s[x][y]
    if x > 0 {
    s[x-1][y] = !s[x-1][y]
    }
    if x < N-1 {
    s[x+1][y] = !s[x+1][y]
    }
    if y > 0 {
    s[x][y-1] = !s[x][y-1]
    }
    if y < N-1 {
    s[x][y+1] = !s[x][y+1]
    }
    return s
    }

    func (s Status) IsAllOn() bool {
    for i := 0; i < N; i++ {
    for j := 0; j < N; j++ {
    if !s[i][j] {
    return false
    }
    }
    }
    return true
    }

    func (s Status) Hash() int64 {
    h := int64(0)
    for i := 0; i < N; i++ {
    for j := 0; j < N; j++ {
    h = h * 2
    if s[i][j] {
    h += 1
    }
    }
    }
    return h
    }

    type Node struct {
    Status Status
    Step int
    }

    func search(s Status) (int, bool) {
    searched := make(map[int64]bool)
    queue := make([]Node, 0)
    queue = append(queue, Node{Status: s, Step: 0})
    searched[s.Hash()] = true
    for len(queue) > 0 {
    cur := queue[0]
    queue = queue[1:]
    if cur.Status.IsAllOn() {
    return cur.Step, true
    }
    for i := 0; i < N; i++ {
    for j := 0; j < N; j++ {
    next := cur.Status.Click(i, j)
    if next.IsAllOn() {
    return cur.Step + 1, true
    }
    if !searched[next.Hash()] {
    queue = append(queue, Node{Status: next, Step: cur.Step + 1})
    searched[next.Hash()] = true
    }
    }
    }
    }
    return 0, false
    }

    func main() {
    s := Status{
    {false, true, false, false, false},
    {true, true, true, false, false},
    {false, true, false, true, false},
    {false, false, true, true, true},
    {false, false, false, true, false},
    }
    step, ok := search(s)
    fmt.Println(step, ok)
    }
    ```
    zihuyishi
        4
    zihuyishi  
       3 天前
    @zihuyishi 额,不好意思说错了,是广搜,纯暴力跑。
    AlexJesus
        5
    AlexJesus  
    OP
       3 天前

    哈哈,我也只能用自己的脑子试着玩。之前在前面也卡很久。
    @pigf #1
    AlexJesus
        6
    AlexJesus  
    OP
       3 天前
    @zihuyishi #3 何不食肉糜。哈哈哈。这个就是来自己开发一下脑力的,用暴力就失去意义啦。
    AlexJesus
        7
    AlexJesus  
    OP
       3 天前
    @lxdlam #2 我还需要加强数理应用学习😄
    Kaciras
        8
    Kaciras  
       3 天前
    小学的时候玩过好多 Flash 版的,一个经验是先搞到对称,后续也对称操作。
    mozhizhu
        9
    mozhizhu  
       3 天前   ❤️ 1
    我以为是:“小爱同学,关掉所有的灯”
    qinxi
        10
    qinxi  
       3 天前
    @mozhizhu #9 一样, 我以为几步的步是脚步的步.
    AlexJesus
        11
    AlexJesus  
    OP
       3 天前
    @qinxi #10 那看来我这个中英文翻译还得改,哈哈,有好的建议吗
    AlexJesus
        12
    AlexJesus  
    OP
       3 天前
    @Kaciras #8 嗯嗯
    Yanlongli
        13
    Yanlongli  
       3 天前
    最好能保持当前关卡,每次重新开始都要从头再来
    AlexJesus
        14
    AlexJesus  
    OP
       3 天前
    @Yanlongli #13 好主意,这一定是老挑战者的好建议了!
    zwzwzwzwzxt
        15
    zwzwzwzwzxt  
       3 天前
    好玩,爱玩,就是这第 28 关要咋过
    ![]( )
    lthero
        16
    lthero  
       3 天前
    @zwzwzwzwzxt #15 无解
    lthero
        17
    lthero  
       3 天前
    第 28 关似乎无解?
    lthero
        18
    lthero  
       3 天前
    @zwzwzwzwzxt #15 尝试在 GF(2)域上解线性方程组,其它关都有最优解,第 28 关无解;
    AlexJesus
        19
    AlexJesus  
    OP
       2 天前
    @lthero #18 遇到高手了👍我排查一下
    zwzwzwzwzxt
        20
    zwzwzwzwzxt  
       2 天前
    @lthero 我就说程序跑出来咋还剩一个 😭
    AlexJesus
        21
    AlexJesus  
    OP
       2 天前
    @lthero #17 已解决,目前更新到 41 关😄
    AlexJesus
        22
    AlexJesus  
    OP
       2 天前
    @Yanlongli #13 已更新,点击重新开始只从当前关卡重启;如果保存到了排行榜,可以点击排行榜继续进入。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2570 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:50 · PVG 18:50 · LAX 02:50 · JFK 05:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.