Nim言語の学習として、ブラックジャックを作成してみました。
こちらの記事
プログラミング入門者からの卒業試験は『ブラックジャック』を開発すべし
がとても良かったので、真似してブラックジャックを作ってみた次第です。
作るうえで気を付けたこと
- 公式のマニュアルのみを参照する
こちらの記事
ググるのをやめるとプログラムの生産性が上がるかもしれない
に感銘を受けたこともあり、
主に下記の公式ページのみを参照して、コーディングを進めました。
- Tutorial
- Documentation
https://nim-lang.org/documentation.html
作成したプログラム
https://github.com/TakumiHANAUE/nim_blackjack
(本記事ではプログラムの解説は割愛します)
作ってみた感想
言語の基本的な書き方(下記)を習得することができました。
新しい言語の学び始めとして、とても良い課題だと思いました。
(参考)プログラム中で経験できた型/命令など
- 型
- int
- bool
- range
- enum
- string
- seq
- tuple
- Object
- 命令文
- var
- const
- if
- for
- while
- case
- return
- break
- cast
- proc
- method
- import
(参考)実行結果
Welcome to Nim Blackjack !
>>> Initializing
>>> Deal Cards
**** Dealer **** // ディーラーの最初の手札(1枚は"X"表示で伏せてある)
Score: 4
♥ X
4 X
**** Player01 **** // プレイヤーの最初の手札
Score: 10
♣ ♥
8 2
>>> Draw Card (Player) // プレイヤーがカードを引く
> Do you draw an additinal card ? [y/n] // カードを引くなら y、 もう引かないなら n
y // もう1枚引くので y を入力
**** Player01 ****
Score: 20
♣ ♥ ♠
8 2 K // K を引いた
> Do you draw an additinal card ? [y/n]
n // もう引かないので n を入力。
> Your turn finished
>>> Draw Card (Dealer) // ディーラーがカードを引く
> Dealer turn a card up
**** Dealer ****
Score: 5
♥ ♥
4 A // 伏せていたカードを表にした。A だった。
> Dealer draws a card [Press ENTER]
**** Dealer ****
Score: 12
♥ ♥ ♣
4 A 7 // ディーラーが 7 を引いた
> Dealer draws a card [Press ENTER]
**** Dealer ****
Score: 21
♥ ♥ ♣ ♣
4 A 7 9 // ディーラーが 9 を引いた
>>> Judgememt // 勝敗判定
**** Dealer ****
Score: 21
♥ ♥ ♣ ♣
4 A 7 9
**** Player01 ****
Score: 20
♣ ♥ ♠
8 2 K
> Player01 LOSE ! // 負けた