Linux でゲームをする

LINEで送る
Pocket

今はスマフォのゲームは星の数ほどあるし、グラフィックスがものすごく綺麗なPS4、いつでも何処でも遊べる Nintendo Switch もある。しかし、コンソールのCUI画面でも遊べるゲームもあるのです。おじさん達には、「お!懐かしい」、新社会人、大学生になって本誌の読者になった若者には「何コレ??」といったレトロなゲームを紹介していこうと思います。きっと、App Store や、Play ストア にも同様のアプリがあると思います。しかし CUI でもこんなことが出来るんだ!と感じてもらえれば、今後、CUIメニューを開発する機会に出くわした際、重要なお手本になるのではないかと思います。

なおゲームによってターミナルのウィンドウサイズが小さい場合、起動しないものもあるのでウィンドウサイズを広げてから実行して下さい。

インベーダーゲーム風

シューティングゲームの元祖と言われているスペースインベーダーをアスキーアートで表現したゲームです。 敵のビームは、: こちらのビームは ! で表現され、矢印キーの左右で移動を行い、スペースキーでミサイルを撃ちます。

$ sudo apt -y install ninvaders
$ ninvaders

テトリス風

こちらも落ち物パズルの元祖、テトリスをアスキーアートで表現したゲームです。

起動すると、normal か harder version どちらでプレーするか選択します。
harder version は、次のブロックが何なのか表示されません。

矢印キーの左右下でブロックを移動して、スペースキーで回転させます。

$ sudo apt -y install bastet
$ bastet

テトリスはゲームプログラミンを書く教材としてよく利用されます。 GitHub で、C++のソースコードを確認することが出来るので、眺めてみては如何でしょうか。

https://github.com/fph/bastet/

パックマン風

$ sudo apt-get install pacman4console
$ pacman4console

こちらは、パックマンをアスキーアートで表現したゲームです。黄色い[C]マークのパックマンを十字キーで操作して [&]マークのモンスターに食べられないように、エサ[.] とパワーエサ [*]を食べつくすゲームです。 パワーエサを食べると一定時間、立場が逆転して、パックマンがモンスターを食べられるようになります。

オリジナルのパックマンは、ラウンドをクリアしても迷路に変化がなく、難易度が上がってプレーが再開するが、 こちらは、Level01〜Level09の迷路が用意されています。
また、自分で迷路を作ってプレーする事もできます。 また、/usr/share/pacman4console/Levels/ に置かれているdataファイルを編集する事により
自分で迷路を変更する事も出来ます。

my.dat に迷路情報を作成します。
$ pacman4consoleedit my.dat
作成た迷路をプレーします。
$ pacman4console --level=my.dat

囲碁

GNU Go は、CUIの囲碁ですが、ソースコードの可搬性が高く、いろいろなプラットフォーム、言語に移植されており、 GNU GO 派生の GUI版も存在します。レベルの変更も行え、およそ8から12級の強さのユーザーと対戦可能です。

起動後 help と入力すると、ヘルプを参照する事が出来ます。デフォルトは、先手の黒ですが、 playwhite, playblack とすれば先手、後手の変更が行え、石の配置は、XY座標を入力して行います。

その他のコマンドを紹介
level num レベルの変更を行います。
komi コミ(ハンデキャップ) の設定が行えます。
goto num 指定した手まで戻る事ができます。
switch プレー中に黒(先手)白(後手)を入れ替えます。(ピンチ時、形勢逆転!)
handicap num ハンデキャップを指定出来ます。指定した値だけ事前に黒石が碁盤に置かれます。
(ハンデキャップをもらう方は常に後手(黒)です。)
showboard on/off 碁盤を表示、非表示します。

※ 黒石X白石O

$ sudo apt -y install gnugo
$ gnugo
black(1): help
Commands:
 back                Take back your last move
 boardsize           Set boardsize (on move 1 only)
 comment             Write a comment to outputfile
 depth <num>         Set depth for reading
 display             Display game board
 exit                Exit GNU Go
 force <move>        Force a move for current color
 forward             Go to next node in game tree
 goto <movenum>      Go to movenum in game tree
 level <amount>      Playing level (default = 10)
 handicap <num>      Set fixed handicap (on move 1 only)
 freehandicap <num>  Place free handicap (on move 1 only)
                     Omit <num> to place handicap yourself
 help                Display this help menu
 helpdebug           Display debug help menu
 info                Display program settings
 komi                Set komi (on move 1 only)
 last                Goto last node in game tree
 pass                Pass on your move
 play <num>          Play <num> moves
 playblack           Play as Black (switch if White)
 playwhite           Play as White (switch if Black)
 quit                Exit GNU Go
 resign              Resign the current game
 save <file>         Save the current game
 load <file>         Load a game from file
 score               Toggle display of score On/Off
 showboard           Toggle display of board On/Off
 switch              Switch the color you are playing
 undo                Take the last move back (same as back)
 <move>              A move of the format <letter><number>

    White (O) has captured 0 pieces
    Black (X) has captured 0 pieces

    A B C D E F G H J K L M N O P Q R S T
 19 . . . . . . . . . . . . . . . . . . . 19
 18 . . . . . . . . . . . . . . . . . . . 18
 17 . . . . . . . . . . . . . . . . . . . 17
 16 . . . + . . . . . + . . . . . + . . . 16
 15 . . . . . . . . . . . . . . . . . . . 15
 14 . . . . . . . . . . . . . . . . . . . 14
 13 . . . . . . . . . . . . . . . . . . . 13
 12 . . . . . . . . . . . . . . . . . . . 12
 11 . . . . . . . . . . . . . . . . . . . 11
 10 . . . + . . . . . + . . . . . + . . . 10
  9 . . . . . . . . . . . . . . . . . . .  9
  8 . . . . . . . . . . . . . . . . . . .  8
  7 . . . . . . . . . . . . . . . . . . .  7
  6 . . . . . . . . . . . . . . . . . . .  6
  5 . . . . . . . . . . . . . . . . . . .  5
  4 . . . + . . . . . + . . . . . + . . .  4
  3 . . . . . . . . . . . . . . . . . . .  3
  2 . . . . . . . . . . . . . . . . . . .  2
  1 . . . . . . . . . . . . . . . . . . .  1
    A B C D E F G H J K L M N O P Q R S T


black(3): m12

    White (O) has captured 0 pieces
    Black (X) has captured 0 pieces

    A B C D E F G H J K L M N O P Q R S T        Last move: Black M12
 19 . . . . . . . . . . . . . . . . . . . 19
 18 . . . . . . . . . . . . . . . . . . . 18
 17 . . . . . . . . . . . . . . . . . . . 17
 16 . . . + . . . . . + . . . . . + . . . 16
 15 . . . . . . . . . . . . . . . . . . . 15
 14 . . . . . . . . . . . . . . . . . . . 14
 13 . . . . . . . . . . . . . . . . . . . 13
 12 . . . . . . . . . . .(X). . . . . . . 12
 11 . . . . . . . . . . . . . . . . . . . 11
 10 . . . + . . . . . X . . . . . + . . . 10
  9 . . . . . . . . . . . . . . . . . . .  9
  8 . . . . . . . . . . . . . . . . . . .  8
  7 . . . . . . . . . . . . . . . . . . .  7
  6 . . . . . . . . . . . . . . . . . . .  6
  5 . . . . O . . . . . . . . . . . . . .  5
  4 . . . + . . . . . + . . . . . + . . .  4
  3 . . . . . . . . . . . . . . . . . . .  3
  2 . . . . . . . . . . . . . . . . . . .  2
  1 . . . . . . . . . . . . . . . . . . .  1
    A B C D E F G H J K L M N O P Q R S T

GNU Go is thinking...
white(4): D16

    White (O) has captured 0 pieces
    Black (X) has captured 0 pieces

    A B C D E F G H J K L M N O P Q R S T        Last move: White D16
 19 . . . . . . . . . . . . . . . . . . . 19
 18 . . . . . . . . . . . . . . . . . . . 18
 17 . . . . . . . . . . . . . . . . . . . 17
 16 . . .(O). . . . . + . . . . . + . . . 16
 15 . . . . . . . . . . . . . . . . . . . 15
 14 . . . . . . . . . . . . . . . . . . . 14
 13 . . . . . . . . . . . . . . . . . . . 13
 12 . . . . . . . . . . . X . . . . . . . 12
 11 . . . . . . . . . . . . . . . . . . . 11
 10 . . . + . . . . . X . . . . . + . . . 10
  9 . . . . . . . . . . . . . . . . . . .  9
  8 . . . . . . . . . . . . . . . . . . .  8
  7 . . . . . . . . . . . . . . . . . . .  7
  6 . . . . . . . . . . . . . . . . . . .  6
  5 . . . . O . . . . . . . . . . . . . .  5
  4 . . . + . . . . . + . . . . . + . . .  4
  3 . . . . . . . . . . . . . . . . . . .  3
  2 . . . . . . . . . . . . . . . . . . .  2
  1 . . . . . . . . . . . . . . . . . . .  1
    A B C D E F G H J K L M N O P Q R S T

badgames

badgames は、NetBSD のゲーム集をLinux用に移植したゲーム集で、レトロなゲームが50種類遊べます。

※ NetBSD : UNIXライクなオープンソースのオペレーティングシステム

$ sudo apt -y install bsdgames
ゲームは、/usr/games/ 配下にインストールされるので、どんな名前のゲームがインストールされたか
ls コマンドで確認してください。
$ ls /usr/games/

badgames には、五目並べが含まれています。 操作方法は、囲碁と同じですが、起動直後にblack or white を選択します。

$ gomoku
         :
 6 . . . . . . . . . . . . . . . . . . . 6
 5 . . . . . . . . . . . . . . . . . . . 5
 4 . . . . . . . . . . . . . . . . . . . 4
 3 . . . . . . . . . . . . . . . . . . . 3
 2 . . . . . . . . . . . . . . . . . . . 2
 1 . . . . . . . . . . . . . . . . . . . 1
   A B C D E F G H J K L M N O P Q R S T
     BLACK/???      vs.      WHITE/???

black or white? black

   A B C D E F G H J K L M N O P Q R S T       #  black  white
19 . . . . . . . . . . . . . . . . . . . 19    22        J3
18 . . . . . . . . . . . . . . . . . . . 18    23 N7
17 . . . . . . . . . . . . . . . . . . . 17    24        O8
16 . . . . . . . . . . . . . . . . . . . 16    25 M8
15 . . . . . . . . . . . . . . . . . . . 15    26        K11
14 . . . . . . . . . . . . . . . . . . . 14    27 M9
13 . . . . . . . . . . . . . . . . . . . 13    28        M10
12 . . . . . . . . . . . . O O . . . . . 12   Illegal move
11 . . . . . . . . . O . * O . . . . . . 11    29 M7
10 . . . . . . . * O * * O . . . . . . . 10    30        M5
 9 . . . . . . . . O * O * . . . . . . . 9     31 N8
 8 . . . . . . . * * O O * * O . . . . . 8     32        O12
 7 . . . . . . . O * . O * * . . . . . . 7     33 O6
 6 . . . . . . . . . O O * . * . . . . . 6     34        N11
 5 . . . . . . . . . . * O . . . . . . . 5
 4 . . . . . . . . . * . . . . . . . . . 4     15 J8
 3 . . . . . . . . O . . . . . . . . . . 3     16        H7
 2 . . . . . . . . . . . . . . . . . . . 2     17 M11
 1 . . . . . . . . . . . . . . . . . . . 1     18        N12
   A B C D E F G H J K L M N O P Q R S T       19 J7
     BLACK/you      vs.    WHITE/gomoku        20        K6
Ha ha, I won
replay?

その他 bsdgames のゲーム集の中で私が個人的におすすめなのは worm です。
上下左右でワーム操作して数字を食べます。食べた数字分ワームが長くなっていき、 壁もしくは自分自身にぶつかったらゲームオーバです。

$ worm
LINEで送る
Pocket

  • このエントリーをはてなブックマークに追加

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください