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)

#&#34920;&#31034;
random

Lights Out 3x3 board
Game mode: classic

0 1 0
1 0 1
0 0 1

#&#12466;&#12540;&#12512;&#12398;&#25805;&#20316;:play&#12467;&#12510;&#12531;&#12489;
#&#20301;&#32622;&#12434;&#25351;&#23450;;row,col&#12458;&#12503;&#12471;&#12519;&#12531;
play(board = random, row = 2, col = 2)

Lights Out 3x3 board
Game mode: classic

0 0 0
0 1 0
0 1 1

#&#12458;&#12522;&#12472;&#12490;&#12523;&#12398;&#12508;&#12540;&#12489;&#12434;&#20316;&#25104;:new_board&#12467;&#12510;&#12531;&#12489;
#&#12487;&#12540;&#12479;&#12399;&#12510;&#12488;&#12522;&#12483;&#12463;&#12473;&#12391;&#25351;&#23450;
EntData <- matrix(nrow = 3, byrow = TRUE,
                  c(0, 1, 0, 1, 1, 1, 0, 1, 0))
OriginalBoard <- new_board(entries = EntData)

#&#34920;&#31034;
OriginalBoard

Lights Out 3x3 board
Game mode: classic

0 1 0
1 1 1
0 1 0

#&#20013;&#22830;&#12434;&#36984;&#25246;&#12375;&#12390;&#12466;&#12540;&#12512;&#12463;&#12522;&#12450;&#12540;
play(board = OriginalBoard, row = 2, col = 2)

Good job, you won!
  
#&#12466;&#12540;&#12512;&#12398;&#35299;&#31572;&#12434;&#21462;&#24471;:solve_board&#12467;&#12510;&#12531;&#12489;
GetGoal <- solve_board(OriginalBoard)

#&#34920;&#31034;
GetGoal

0 0 0
0 1 0
0 0 0

#&#35299;&#31572;&#12434;&#12466;&#12540;&#12512;&#12395;&#36969;&#24540;
play(board = OriginalBoard, matrix = GetGoal)

Good job, you won!

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

lightsout

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

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