kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

リバーシを作る golang

新人研修でオセロを作っていたチームを思い出し、どれくらいでできるかやってみました。

研修ではc言語で行いましたが、c言語を書く機会はほぼありませんのでgolangで書いてみました。

研修はネットを利用できない環境でしたが、そこまでの縛りはなくネットにあるサンプルから作成しても大丈夫にしました。

CUI上で動作するようになっています。

コード

github.com

CPUの置く場所については、置ける場所においています。アルゴリズムも今度やってみます。

termbox-go

画面描画とキーボード入力に、termbox-goを使用しました。

スレッドで動作するようにし、入力と画面描画がわかれるようになっています。

github.com/fatih/color

枠の描画時に下の境界を文字にunderlineを追加することで綺麗にみせていたみたいです。

termboxを使用する際に描画がrune指定になっていたためどう文字装飾を設定するかわからなかったため、現在適用していません。

雑記

golangでやってみましたが、c言語でよくやってたなー。としみじみ思ってしまいます。

新人研修をC言語でやっていたときは考えずにやっていましたが、結局C言語を会社で使う機会も少なかったし、今思ってもプログラムに対して苦手意識を植え付ける可能性もある研修でいいのか気になっています。

今の時代では言語の選択肢が増え、実際に現場で利用する言語も変わってきたため研修も変わっててくれるといいな。と思います。

研修でオセロをつくってたり、シューティングを作ってたり、よくみんなできてたなー。

同期のスーパーサイヤ人テトリスを作っており、普通に面白い作品を作っていました。休憩時間にハマって遊んでいたぐらい面白かったです。

参考

github.com

qiita.com

Go言語による並行処理

Go言語による並行処理