Hajime Saito

Cプログラミングの話題を中心としたマガジンを作成しています。完成したマガジンは電子書籍にまとめなおしてAmazonで販売しています。 Amazon著者ページ https://amzn.to/2IIHyv0
    • シューティングゲームの歴史
      シューティングゲームの歴史
      • 24本

      シューティングゲームの歴史を綴ります。 ※10年ほど前に個人サイトで読み物として公開していたものです。

    • OpenSiv3Dゲーム開発
      OpenSiv3Dゲーム開発
      • 7本

      OpenSiv3Dを使ってゲームを作るよ!

疑似乱数発生器を移植する

ローグの疑似乱数は自前の関数rndで生成されている。関数rndは、第1引数で指定された数の剰余を取った疑似乱数値を返す。 --- main.c ---214: /*215: * rnd:216: * P…

アイテムの名称まとめ

アイテムがどのような名前で表示されるのかを一覧にまとめた。これはそのまま関数inv_nameの実装に相当する。 この一覧のほか、アイテムが複数ある場合は表示が複数形に変…

アイテムの暫定名を設定する

ローグのアイテム名はユニークで、3種類の呼び名が用意されている。 1) 正式名(Canonical Name) 2) 推測名(Guess Name) 3) 暫定名(Tantative Name) 正式名は、一般的なゲ…

cursesのキー入力

pythonのcursesライブラリでメソッドgetchを使うとキーボードから入力を受け取れる。戻り値はキャラクタコード。 ch = stdscr.getch() Cの文字リテラルであれば、コンパ…

文字列のフォーマットを使い分ける

戦闘時にモンスターへダメージを与えると、その旨が画面へ表示される。ソースコードを解析するまで知らなかったんだけど、ダメージ値に応じてメッセージが選ばれているわけ…

複数回攻撃用のパーサ実装

複数回攻撃用のパースを実装することにした。オリジナルのソースコードでは、使用するメモリ量を節約するためなのか、関数fightでダメージ文字列をリアルタイムにパースし…