Rで解析:ライツアウトで遊びませんか?「lightsout」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

ライツアウトは点灯したシンボルを全て消灯するパズルゲームです。中毒性がかなり高いです。没頭に注意です。

ライツアウトの概要
https://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%A4%E3%83%84%E3%82%A2%E3%82%A6%E3%83%88

本パッケージではShinyによるブラウザでグラフィカルにゲームをするほか、Rのコンソールでこっそりゲームができます。解析してるふりをしてゲームをすることができますが、ライツアウトは中毒性が高く時間があっという間に過ぎてしまうのでオススメしません。

ぜひ、休憩時間に試してみてください。

パッケージバージョンは0.3。実行コマンドはR version 4.2.2で確認しています。

スポンサーリンク

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

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

#パッケージのインストール
install.packages("devtools")
devtools::install_github("daattali/lightsout")

実行コマンド

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

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

#Shinyでゲーム:launchコマンド
launch()

#コンソールでゲーム
#ランダムでゲームを作成:random_boardコマンド
#ゲームサイズを指定:sizeオプション;3,5,7,9の指定が可能
random <- random_board(size = 3)

#表示
random

Lights Out 3x3 board
Game mode: classic

0 1 0
1 0 1
0 0 1

#ゲームの操作:playコマンド
#位置を指定;row,colオプション
play(board = random, row = 2, col = 2)

Lights Out 3x3 board
Game mode: classic

0 0 0
0 1 0
0 1 1

#オリジナルのボードを作成:new_boardコマンド
#データはマトリックスで指定
EntData <- matrix(nrow = 3, byrow = TRUE,
                  c(0, 1, 0, 1, 1, 1, 0, 1, 0))
OriginalBoard <- new_board(entries = EntData)

#表示
OriginalBoard

Lights Out 3x3 board
Game mode: classic

0 1 0
1 1 1
0 1 0

#中央を選択してゲームクリアー
play(board = OriginalBoard, row = 2, col = 2)

Good job, you won!
  
#ゲームの解答を取得:solve_boardコマンド
GetGoal <- solve_board(OriginalBoard)

#表示
GetGoal

0 0 0
0 1 0
0 0 0

#解答をゲームに適応
play(board = OriginalBoard, matrix = GetGoal)

Good job, you won!

Shinyでゲーム:launchコマンド例

lightsout

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

タイトルとURLをコピーしました