ホームページ > バックエンド開発 > Python チュートリアル > Word Cookie パズルを解く: Python の冒険

Word Cookie パズルを解く: Python の冒険

Mary-Kate Olsen
リリース: 2024-12-16 06:30:16
オリジナル
899 人が閲覧しました

ゲームをすることは、一日のストレスから脳をリラックスさせる方法であり、あるいは単に仕事の休憩を取ることもあります。しかし、ゲーム自体がストレスになる場合もあります。それは、スクランブル文字のセットが与えられ、そこに含まれる単語を解くという楽しいパズル ゲームである「Word Cookies」の場合だと思います。

Solving Word Cookies Puzzles: A Python Adventure

ゲームが進むにつれて、解決するのが難しくなり、助けてくれるリソースがほとんどまたはまったくなく、何度か行き詰まってしまいました。でもちょっと待ってください、私は Python でコードを書いているのに、なぜ解決策が見つからないのでしょうか?ここで Python 言語が威力を発揮します。

では、Python を使用してスクランブルされた問題を解決するにはどうすればよいでしょうか。スクランブル文字内の単語をチェックする方法が必要だったので、実装を簡単な手順に分割しました。

プラン:

  1. 単語の辞書を取得して、スクランブル文字をチェックします。
  2. n 文字の単語のみを含む CSV を作成します。この場合は、3 文字の単語から 7 文字の単語を含む CSV を作成しました
  3. CSV の単語のすべての文字がスクランブル文字に含まれているかどうかを確認します
  4. それを独自の単語数のリストに保存します。たとえば、単語が「年齢」の場合、3 文字の単語のリストに保存されます。
  5. 結果を表示

作業に取り掛かりましょう:

まず、オンラインで検索して、csv 形式でダウンロードできる辞書を見つけ、それを各文字を含む個別の CSV ファイルに分割しました。それは次のようになります:

Solving Word Cookies Puzzles: A Python Adventure

次に、CSV を A から Z までチェックして 3 文字の単語を抽出し、スペースやその他の使用できない形式の単語を省略する Python コードを取得しました。これは、4、5、6、7 文字の単語に対して同時に行われました。

これは次のようになります:

import os
import csv
import re
import pandas as pd

# Define folder paths
input_folder = 'C:\Users\Zenbook\Desktop\Word lists in csv'
output_folder = 'C:\Users\Zenbook\Desktop\Word list output'


# Function to find words of specific lengths in text
def find_words_of_length(text, length):
    words = re.findall(r'\b\w+\b', text)
    return [word for word in words if len(word) == length]


# Initialize dictionaries to store words of each length
words_by_length = {3: set(), 4: set(), 5: set(), 6: set(), 7: set()}

# Loop through all CSV files in the input folder
for filename in os.listdir(input_folder):
    if filename.endswith('.csv'):
        filepath = os.path.join(input_folder, filename)

        # Read each CSV file with a fallback encoding
        with open(filepath, 'r', encoding='ISO-8859-1') as file:
            reader = csv.reader(file)
            for row in reader:
                # Loop through each cell in the row
                for cell in row:
                    for length in words_by_length.keys():
                        words = find_words_of_length(cell, length)
                        words_by_length[length].update(words)

# Save words of each length to separate CSV files
for length, words in words_by_length.items():
    output_file = os.path.join(output_folder, f'{length}_letters.csv')
    with open(output_file, 'w', newline='', encoding='utf-8') as file:
        writer = csv.writer(file)
        for word in sorted(words):  # Sort words for neatness
            writer.writerow([word])

print("Words have been saved to separate CSV files based on their length.")


ログイン後にコピー

指定した出力フォルダー内の結果は次のとおりです。

Solving Word Cookies Puzzles: A Python Adventure

この出力フォルダーを使用すると、その中の単語をチェックして、スクランブル文字に含まれているかどうかを確認するだけです。これを行うコードは次のとおりです:

import csv

# Define the string to check against
check_string = 'langaur'

# Define the folder path for CSV files
input_folder = 'C:\Users\Zenbook\Desktop\Word list output'


# Function to check if all letters in word can be found in check_string
def is_word_in_string(word, check_string):
    # Check if each letter in the word is in the string
    for letter in word:
        if word.count(letter) > check_string.count(letter):
            return False
    return True


# Check words for 3, 4, 5, 6 and 7-letter CSVs
for length in [3, 4, 5, 6, 7]:
    input_file = f'{input_folder}/{length}_letters.csv'
    print(f"\nLength {length}:")

    with open(input_file, 'r', encoding='utf-8') as file:
        reader = csv.reader(file)
        found_words = []

        for row in reader:
            word = row[0].strip()  # Remove any extra whitespace
            if is_word_in_string(word, check_string):
                found_words.append(word)

        # Print all found words for the given length
        for i in found_words:
            print(i)
ログイン後にコピー

簡単な内訳:

前のコードから出力フォルダーを取得し、それを上記の実際のソリューション コードの入力フォルダーとして使用します。このソリューションの利点は、関数「is_word_in_string」の単純さにあります。複数回出現する文字に対して追加のロジックが記述されるため、個々の文字がスクランブルされた単語に含まれているかどうかを確認する必要はありません。

辞書の単語の各文字が、スクランブルされた単語の出現回数以下であるかどうかを確認するだけで済み、辞書の単語の各文字が実際に存在するかどうかを確認できます。スクランブルされた手紙の中で。

実際のコードを見てみましょう。

Solving Word Cookies Puzzles: A Python Adventure

万歳!そして、行き詰まったときに前に進む方法ができました。常にシステムを不正行為するだけではなく、楽しいことはありませんが、本当に必要な場合には、このソルバーが役に立ちます。また、できるだけ多くの追加の単語を取得して、瓶をいっぱいにして素晴らしいリソースを入手することもできます。

そして、そこにあります。 Python は、簡単な作業を自動化するための多用途言語です。このような日常の活動で単純に使用することも、複雑な作業タスクや、機械学習などのより高度な作業で使用することもできます。今日取り組む Python プロジェクトを見つけてください。乾杯

こんにちは、Ifedolapo と申します。私はフロントエンド開発者であり、Python プログラマーです (ちなみに、デザインもしています)。私のことをもっと詳しく知るには、ポートフォリオのウェブサイトをご覧ください

この投稿をご覧いただきありがとうございます。

以上がWord Cookie パズルを解く: Python の冒険の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート