Go でタイピングゲーム作った
メルカリさんのご好意で「プログラミング言語 Go 完全入門」の期間限定公開のお知らせがあり、早速入門しました!
「プログラミング言語Go完全入門」の期間限定公開のお知らせ
メルペイ エキスパートチームの@tenntennです。メルペイでは、社外の方向けにGopher道場という体系的にGoを学べる場を無償で提供してきました。Goの普及を目的にこれまでに7回開催し100人以上の方に参加していただきました。自社でも
とても良いなと思ったのは、各章毎、学んだことをハンズオン形式でプログラミングして都度使い方を試せるところかなと思います。
そこにお題としてあった Go でタイピングゲームを作りました ♪
時間制限内に出題されたワードをタイピングし正解する毎にすこアップする、というゲームです。
GitHub - kenzo0107/typing-game-go: Typing Game
Typing Game. Contribute to kenzo0107/typing-game-go development by creating an account on GitHub.
やったこと
お題を出す
tjarratt/babble でランダムにお題とするワードを取得し標準出力
1 | import ( |
ゲーム開始前のカウントダウン
1 | func _main() { |
context.WithTimeout でタイムアウト処理
for-select パターンで無限にチャネルを作り、受け取れる様にしています。
時間制限
1 | // タイムアウト処理付き context |
標準入力から文字列取得し chan に送信
for-select パターンが待ち受けているので、無限に標準入力からの文字列取得処理が発行されます。
タイムアウト context によって、これらの処理ができなくなる様、打ち切られます。
1 | func input(r io.Reader) <-chan string { |
こんなことやってみたい!
- ゲーム中に音を出したい
- PC タイピングゲームの様に敵が現れ、正しくタイピングする度に敵がダメージを受けている様なアクションをさせたい
こんなことを Go でやってみたいです。
ebiten の出番か!?
引き続き入門続けます ♪
以上
参考になれば幸いです。