本文へスキップ
からだにいいもの

Rのトピックスを中心に『まだ、まだ、知らない、役に立つ情報?』を発信します。

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

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

ライツアウトの概要
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

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

スポンサーリンク
Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.