run_game {mineSweepR} | R Documentation |
Run mine sweeper game
Description
run_game
runs mine sweeper game. It opens a window through x11
.
Please do not run multiple instances (windows) of the game. For game instructions, please check the details.
Usage
run_game(
n_mine = max(round(0.2 * n_row * n_col), 1L),
n_row = 10L,
n_col = 10L,
unmask_button = 0L,
flag_button = 2L,
digit_char = format(seq_len(8L), scientific = FALSE),
mine_char = "M",
flag_char = "F",
unmask_color = "#9F9F9F",
mask_color = "#3F3F3F",
hit_color = "#9F3F3F",
wrong_color = "#7F1F7F",
digit_color = pals::cols25(n = 8L),
mine_color = "black",
flag_color = "white",
window_title = "Mine Sweeper in R",
x11_args = list(),
time_prec = 3L,
restart_key = "r",
exit_key_press = 2L,
debug = FALSE
)
Arguments
n_mine , n_row , n_col |
Integers as numbers of mines/rows/columns in game panel,
|
unmask_button , flag_button |
Integers as buttons to unmask/flag tiles. Usually, 0 for left mouse button (to unmask) and 2 for right mouse button (to flag). |
digit_char , mine_char , flag_char |
Characters to mark counts/mines/flags. |
unmask_color , mask_color , hit_color , wrong_color |
Strings as colors for unmasked tiles / masked tiles / mine-triggering tile / wrongly flagged tiles. |
digit_color , mine_color , flag_color |
Strings as colors for |
window_title |
String as window title. |
x11_args |
Named list of arguments passed on to |
time_prec |
Integer as time precision (e.g. 0 for seconds or 3 for miliseconds). |
restart_key |
Character as the key to restart game, used when you have won or lost a game. |
exit_key_press |
Integer as the times of boss key presses (boss key is any key
other than |
debug |
Logical, internal use only. |
Details
Game instructions:
- Goal
All tiles start masked. If you unmask all tiles without mines, you win the game; if you unmask any tiles containing mines, you lose the game.
- Unmask tiles
You may click with
unmask_button
on any masked tile to unmask. The first tile unmasked cannot contain a mine. Timing starts when any tile is unmasked.- Find out mines
Each unmasked tile tells you the number of mines in adjacent tiles, unless itself contains a mine. You may use these numbers to find out the adjacent tiles with mines.
- Flag mines
You may click with
flag_button
on an unmasked tile to flag it as a possible mine. Flagged tiles cannot be unmasked, unless you click on them withflag_button
again to remove the flags.- Unmask adjacent tiles
You may click with
unmask_button
on any unmasked tile to unmask adjacent unflagged tiles, after you have set up the number of flags that equals to the count of adjacent mines shown on this tile. If any unflagged adjacent tiles contain mines, one of them is triggered and you lose the game.- Game statistics
After you win or lose a game, game statistics are recorded.
- Restart game
You may restart game with
restart_key
at any time. If you have not won or lost the game, it is not recorded in game statistics.- BOSS KEY!
You may press boss key (any key other than
restart_key
) for\ge
exit_key_press
times to close game window.
Value
A data.frame
containing game statistics, invisibly, where each row is a game play.
To look at game statistics, save the output of run_game()
to a variable
for later use or run print(run_grame)
to print.
Note
Change log:
0.1.0 Xiurui Zhu - Initiate the function.
Author(s)
Xiurui Zhu
Examples
if (interactive() == TRUE) {
run_game()
}