初森ベアーズorz

2015年07月29日

windows10ねぇ〜

今日から配信ですね、今週末帰って最初の仕事はこれだな。。。
ちゃんと動いてくれる事を祈ります、ソフト引き継ぎが一番心配。
出張先ではMacBookなので関係ないけど。。。

週末は。。。
土曜日:大垣ひまわりランド+花火
日曜日:ゴルフ

そして来週月曜日は出張元に出勤して会議、そこから更にこことは別の場所に出張。
火曜日から今の出張先に戻ります。(新幹線ホテル予約変更済)

お盆休み前の追い込みかな。。。着手しているお仕事はソコソコ進みました。
基本機能だけは、お休み前に片付けたいのですが。。。

BU1A7936

BU1A7881

BU1A8420

さあ、今日も時間までzeburaのsolver読んでみます。
昨日の続き。。。

/*! macros to check if a move (<= 4 flips) is correct along a direction */

#define BOARD_CHECK_MOVE_4(dir)                         \

( square[dir] == o &&                               \

( square[2 * dir] == p || (square[2 * dir] == o &&  \

( square[3 * dir] == p || (square[3 * dir] == o &&  \

( square[4 * dir] == p || (square[4 * dir] == o &&  \

  square[5 * dir] == p)))))))


6個と4個返すdefineを分ける意味は???です。
読み時間短縮だとは思いますが、今後の読み込みに期待ですね。
やってる事は昨日の6個返すdefineが4個になってるだけみたい。。。
さて、次は。。。

/*! macro to count (at most 6) discs flipped along a direction */

#define BOARD_COUNT_FLIPS_6(dir)                                     \

if (square[dir] == o) {                                          \

if (square[2 * dir] == p) n_flips++;                         \

else if (square[2 * dir] == o) {                             \

if (square[3 * dir] == p) n_flips += 2;                  \

else if (square[3 * dir] == o) {                         \

if (square[4 * dir] == p) n_flips += 3;              \

else if (square[4 * dir] == o) {                     \

if (square[5 * dir] == p) n_flips += 4;      \

else if (square[5 * dir] == o) {             \

if (square[6 * dir] == p) n_flips += 5;  \

else if (square[6 * dir] == o            \

&& square[7 * dir] == p) n_flips += 6;  \

}}}}}


これは見たまんまですね。。。返す数のカウント、n_flipsに返す数を+しています。
さらに、次は。。。

/*! macro to count (at most 4) discs flipped along a direction */

#define BOARD_COUNT_FLIPS_4(dir)                                \

if (square[dir] == o) {                                     \

if (square[2 * dir] == p) n_flips++;                    \

else if (square[2 * dir] == o) {                        \

if (square[3 * dir] == p) n_flips += 2;             \

else if (square[3 * dir] == o) {                    \

if (square[4 * dir] == p) n_flips += 3;         \

else if (square[4 * dir] == o                   \

&& square[5 * dir] == p) n_flips += 4; \

}}}


これは4枚の場合ですね、使い方は6枚と同じですね。。。
それからそれから。。。

*! macro to flip discs along a direction */

#define BOARD_FLIP(dir, max_flip)           \

if (BOARD_CHECK_MOVE_##max_flip(dir)) { \

int z = x + (dir);                  \

do {                                \

board->square[z] = p;           \

move->position[++move->n] = z;  \

z += (dir);                     \

} while (board->square[z] == o);    \

}


コマを返すdefineですね、もうちょっと見たいのですが、
出張疲れと、練習疲れ(今日も400球)があるので、
今日はこれ位で。。。

























 

hiwata_72 at 23:43│Comments(0)TrackBack(0)mixiチェック 日記 

トラックバックURL

コメントする

名前
 
  絵文字
 
 
初森ベアーズorz