Skip to main content

单词搜索拼图生成器

项目描述

单词搜索拼图生成器

介绍

这个包的任务是生成一个单词搜索谜题。要求是单词列表和拼图的尺寸。

例如:

  • 给定的单词列表['Cat', 'Bear', 'Tiger', 'Lion']
  • 生成的面板:
#   _________________________
#  | [L]   w    m    e   [r] |
#  | [i]   w   [C]  [e]   x  |
#  | [o]   v   [g]  [a]   q  |
#  | [n]  [i]   n    i   [t] |
#  | [T]  [B]  [e]  [a]  [r] |
#   -------------------------


panel.cells = {
    (0, 0): 'l', (0, 1): 'w', (0, 2): 'm', (0, 3): 'e', (0, 4): 'r', 
    (1, 0): 'i', (1, 1): 'w', (1, 2): 'c', (1, 3): 'e', (1, 4): 'x', 
    (2, 0): 'o', (2, 1): 'v', (2, 2): 'g', (2, 3): 'a', (2, 4): 'q', 
    (3, 0): 'n', (3, 1): 'i', (3, 2): 'n', (3, 3): 'i', (3, 4): 't', 
    (4, 0): 't', (4, 1): 'b', (4, 2): 'e', (4, 3): 'a', (4, 4): 'r', 
}
  • 用对应的隐藏词:
{
    "words": [
        {
            "value": "cat",
            "positions": [
                { "r": 1, "c": 2 },
                { "r": 2, "c": 3 },
                { "r": 3, "c": 4 }
            ]
        },
        {
            "value": "bear",
            "positions": [
                { "r": 4, "c": 1 },
                { "r": 4, "c": 2 },
                { "r": 4, "c": 3 },
                { "r": 4, "c": 4 }
            ]
        },
        {
            "value": "tiger",
            "positions": [
                { "r": 4, "c": 0 },
                { "r": 3, "c": 1 },
                { "r": 2, "c": 2 },
                { "r": 1, "c": 3 },
                { "r": 0, "c": 4 }
            ]
        },
        {
            "value": "lion",
            "positions": [
                { "r": 0, "c": 0 },
                { "r": 1, "c": 0 },
                { "r": 2, "c": 0 },
                { "r": 3, "c": 0 }
            ]
        }
    ]
}

安装

您可以使用 pip 工具word-search-puzzle安装它。

生成一个谜题

您所需要的只是定义一个单词列表并提供面板的尺寸。请确保文字的数量和长度适合面板的尺寸。

示例 1

创建一个简单的谜题。

from word_search_puzzle.utils import display_panel
from word_search_puzzle.algorithms import create_panel

words = ['Cat', 'Bear', 'Tiger', 'Lion']

result = create_panel(height=5, width=5, words_value_list=words)

print('Attempts: {}'.format(result.get('attempts')))
print('Solution took: {} ms'.format(result.get('elapsed_time')))
display_panel(result.get('panel'))

# Output:
#   Attempts: 2
#   Solution took: 31 ms
#
#   l  w  m  e  r
#   i  w  c  e  x
#   o  v  g  a  q
#   n  i  n  i  t
#   t  b  e  a  r

示例 2

创建一个可序列化的谜题。

import json
from word_search_puzzle.algorithms import create_panel

words = ['Cat', 'Bear', 'Tiger', 'Lion']

result = create_panel(height=5, width=5, words_value_list=words, as_dict=True)

print(json.dumps(result))

输出将如下所示:

{
  “面板” { 
    “细胞” [ 
      {
        “位置” { 
          “r” 0  
          “c” 0 
        },
        “价值” “t” 
      },
      {
        “位置” { 
          “r” 0  
          “c” 1 
        },
        “价值” “b” 
      },
      {
        “位置” { 
          “r” 0  
          “c” 2 
        },
        “价值” “x” 
      },
      {
        “位置” { 
          “r” 0  
          “c” 3 
        },
        “价值” “j” 
      },
      {
        “位置” { 
          “r” 0  
          “c” 4 
        },
        “价值” “c” 
      },
      {
        “位置” { 
          “r” 1  
          “c” 0 
        },
        “价值” “l” 
      },
      {
        “位置” { 
          “r” 1  
          “c” 1 
        },
        “价值” “我” 
      },
      {
        “位置” { 
          “r” 1  
          “c” 2 
        },
        “价值” “e” 
      },
      {
        “位置” { 
          “r” 1  
          “c” 3 
        },
        “价值” “b” 
      },
      {
        “位置” { 
          “r” 1  
          “c” 4 
        },
        “价值” “一个” 
      },
      {
        “位置” { 
          “r” 2  
          “c” 0 
        },
        “价值” “c” 
      },
      {
        “位置” { 
          “r” 2  
          “c” 1 
        },
        “价值” “我” 
      },
      {
        “位置” { 
          “r” 2  
          “c” 2 
        },
        “价值” “g” 
      },
      {
        “位置” { 
          “r” 2  
          “c” 3 
        },
        “价值” “一个” 
      },
      {
        “位置” { 
          “r” 2  
          “c” 4 
        },
        “价值” “t” 
      },
      {
        “位置” { 
          “r” 3  
          “c” 0 
        },
        “价值” “d” 
      },
      {
        “位置” { 
          “r” 3  
          “c” 1 
        },
        “价值” “l” 
      },
      {
        “位置” { 
          “r” 3  
          “c” 2 
        },
        “价值” “o” 
      },
      {
        “位置” { 
          “r” 3  
          “c” 3 
        },
        “价值” “e” 
      },
      {
        “位置” { 
          “r” 3  
          “c” 4 
        },
        “价值” “r” 
      },
      {
        “位置” { 
          “r” 4  
          “c” 0 
        },
        “价值” “f” 
      },
      {
        “位置” { 
          “r” 4  
          “c” 1 
        },
        “价值” “我” 
      },
      {
        “位置” { 
          “r” 4  
          “c” 2 
        },
        “价值” “我” 
      },
      {
        “位置” { 
          “r” 4  
          “c” 3 
        },
        “值” “n” 
      },
      {
        “位置” { 
          “r” 4  
          “c” 4 
        },
        “价值” “r” 
      }
    ]
  },
  “话” [ 
    {
      “价值” “老虎”  
      “职位” [ 
        {
          “r” 0  
          “c” 0 
        },
        {
          “r” 1  
          “c” 1 
        },
        {
          “r” 2  
          “c” 2 
        },
        {
          “r” 3  
          “c” 3 
        },
        {
          “r” 4  
          “c” 4 
        }
      ]
    },
    {
      “价值” “狮子”  
      “职位” [ 
        {
          “r” 1  
          “c” 0 
        },
        {
          “r” 2  
          “c” 1 
        },
        {
          “r” 3  
          “c” 2 
        },
        {
          “r” 4  
          “c” 3 
        }
      ]
    },
    {
      “价值” “猫”  
      “职位” [ 
        {
          “r” 0  
          “c” 4 
        },
        {
          “r” 1  
          “c” 4 
        },
        {
          “r” 2  
          “c” 4 
        }
      ]
    },
    {
      “价值” “承担”  
      “职位” [ 
        {
          “r” 0  
          “c” 1 
        },
        {
          “r” 1  
          “c” 2 
        },
        {
          “r” 2  
          “c” 3 
        },
        {
          “r” 3  
          “c” 4 
        }
      ]
    }
  ],
  “尝试” 1  
  “找到”  
  “经过的时间” 3 
}