ヌメロン製作講座第23回:Double アイテム処理
今回は Double アイテム処理を実装します。
enum ErrorID(ファイル読込みエラーコード)
棋譜データファイル読込み時の以下のエラーコードを追加しました。
- ERR_DOUBLE_RANK
- Double アイテムの位数読込みエラー
- ERR_DOUBLE_DIGIT
- Double アイテムの指定位の番号読込みエラー
Rank ThinkDoubleRank()
Double アイテム使用の際、相手がオープンする位を決めるためのコンピュータ思考ルーチンを追加しました。
Rank ThinkDoubleRank( MoveID move ) { Analyze & anal = anals[ move ][ maxRecord ]; int max = 0; Column column = 0; for ( int column2 = 0; column2 < maxColumn; column2++ ) { for ( int digit = 0, count = 0; digit < MAX_DIGIT; digit++ ) { if ( anal.valids[ column2 ][ digit ] ) { if ( ++count > max ) { max = count; column = ( Column ) column2; } } } } return ColumnToRank( column ); }
処理内容
- すべての位の有効番号の数を調べ、もっとも数の多い位を選択して返す
class Numer0n(ヌメロンクラス)
Save() 関数と Load() 関数に Double アイテム対応処理を追加しました。
- BOOL Save( LPCTSTR path )
- BOOL Load( LPCTSTR path )
- Double アイテム対応処理追加
struct Cell(セル構造体)
関連する既存関数に Double アイテム処理を追加しました。
- BOOL GetRecordText( PTCHAR text )
- セル表示文字列取得関数
- BOOL GetRecordEditParam( EditParam & edit )
- セル編集開始関数
- BOOL SetRecordEditData( EditParam & edit )
- セル編集終了関数
以上です。