Rで解析:wordleであそびましょっ!!「wordler」パッケージ


投稿日: Rの解析に役に立つ記事

5文字の単語のアルファベットを推測するゲーム「wordle」をRのコンソールで遊ぶことができるパッケージの紹介です。「wordle」は最大で6回の実行で、アルファベットの入力のたびに出される「緑色はアルファベットと位置が正解」、「黄色はアルファベットが正解、位置が不正解」、「色なしはアルファベットと位置が不正解」のヒントから正解の単語を推測するゲームです。

紹介では「wordle」の開始コマンドとpokemon GOが楽しいのでポケモンWiki「http://wiki.xn--rckteqa2e.com/」からポケモン名を取得して英語のポケモン名のwordleゲームを実行するコマンドを紹介します。

なお、コマンド例内でも記載していますが、5文字以上のポケモン名は先頭5文字を切り出し、5文字未満は「X」を追加して5文字の長さに調整しています。そのため、ポケモン名が一部重複しています。

パッケージのバージョンは0.3.1。実行コマンドはwindows 11のR version 4.1.2で確認しています。

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("wordler")

実行コマンド

詳細はコメント、パッケージヘルプを確認してください。

#パッケージの読み込み
library("wordler")

#Wordleの開始:play_wordlerコマンド
#単語を最大で6回で推測する
#緑色はアルファベットと位置が正解
#黄色はアルファベットが正解,位置が不正解
#色なしはアルファベットと位置が不正解
play_wordler()

##############################
###参考:ポケモンのwordleゲーム#####
#データの作成
#rvestパッケージがなければインストール
#htmlやxmlデータの編集に便利です
if(!require("rvest", quietly = TRUE)){
  install.packages("rvest");require("rvest")
}

#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}

#文字化け防止のおまじない
Sys.setlocale("LC_ALL", "English")

#ポケモンWikiからデータを取得
#http://wiki.xn--rckteqa2e.com/
Pokehtml <- read_html("https://wiki.xn--rckteqa2e.com/wiki/%E3%83%9D%E3%82%B1%E3%83%A2%E3%83%B3%E3%81%AE%E5%A4%96%E5%9B%BD%E8%AA%9E%E5%90%8D%E4%B8%80%E8%A6%A7")

#取得データの加工
Pokehtml %>% 
  #tableノードを抽出
  html_nodes("table") %>% 
  #tableノードのテーブル化
  html_table() %>%
  #全データを結合
  bind_rows() %>%
  #列名を変更
  rename(!!!setNames(names(.), c("No", "Japanese", "English", "German",
                                 "French", "Korean", "Chinese (Simplified)",
                                 "Chinese (Traditional)"))) %>%
  #Englishの先頭小文字で切り出し
  mutate(Judge = str_trunc(English, width = 5,
                             side = "right", ellipsis = "")) %>%
  #Judgeで5文字以下を末尾に空白を足して5文字にする
  mutate(Judge = str_pad(Judge, width = 5, pad = "X", side = "right")) %>%
  ###おまけ#####
  #Englishで文字数が5をTRUE
  #mutate(Judge = ifelse(str_length(English) == 5,
  #                      TRUE, FALSE)) %>%
  #JudgデータのTRUEを抽出
  #filter(Judge == TRUE) %>%
  #####
  #Judgeデータの大文字化
  mutate(Judge = str_to_upper(Judge)) -> PokeDATA

#ポケモン_wordleの開始
play_wordler(target_words = PokeDATA[["Judge"]],
             allowed_words = PokeDATA[["Judge"]])

出力例

・ポケモン_wordleの例


少しでも、あなたの解析が楽になりますように!!

スポンサードリンク

スポンサードリンク