ゲームをすることは、一日のストレスから脳をリラックスさせる方法であり、あるいは単に仕事の休憩を取ることもあります。しかし、ゲーム自体がストレスになる場合もあります。それは、スクランブル文字のセットが与えられ、そこに含まれる単語を解くという楽しいパズル ゲームである「Word Cookies」の場合だと思います。
ゲームが進むにつれて、解決するのが難しくなり、助けてくれるリソースがほとんどまたはまったくなく、何度か行き詰まってしまいました。でもちょっと待ってください、私は Python でコードを書いているのに、なぜ解決策が見つからないのでしょうか?ここで Python 言語が威力を発揮します。
では、Python を使用してスクランブルされた問題を解決するにはどうすればよいでしょうか。スクランブル文字内の単語をチェックする方法が必要だったので、実装を簡単な手順に分割しました。
まず、オンラインで検索して、csv 形式でダウンロードできる辞書を見つけ、それを各文字を含む個別の CSV ファイルに分割しました。それは次のようになります:
次に、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.")
指定した出力フォルダー内の結果は次のとおりです。
この出力フォルダーを使用すると、その中の単語をチェックして、スクランブル文字に含まれているかどうかを確認するだけです。これを行うコードは次のとおりです:
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」の単純さにあります。複数回出現する文字に対して追加のロジックが記述されるため、個々の文字がスクランブルされた単語に含まれているかどうかを確認する必要はありません。
辞書の単語の各文字が、スクランブルされた単語の出現回数以下であるかどうかを確認するだけで済み、辞書の単語の各文字が実際に存在するかどうかを確認できます。スクランブルされた手紙の中で。
万歳!そして、行き詰まったときに前に進む方法ができました。常にシステムを不正行為するだけではなく、楽しいことはありませんが、本当に必要な場合には、このソルバーが役に立ちます。また、できるだけ多くの追加の単語を取得して、瓶をいっぱいにして素晴らしいリソースを入手することもできます。
そして、そこにあります。 Python は、簡単な作業を自動化するための多用途言語です。このような日常の活動で単純に使用することも、複雑な作業タスクや、機械学習などのより高度な作業で使用することもできます。今日取り組む Python プロジェクトを見つけてください。乾杯
こんにちは、Ifedolapo と申します。私はフロントエンド開発者であり、Python プログラマーです (ちなみに、デザインもしています)。私のことをもっと詳しく知るには、ポートフォリオのウェブサイトをご覧ください
この投稿をご覧いただきありがとうございます。
以上がWord Cookie パズルを解く: Python の冒険の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。