2015年07月

2015年07月31日

7月成績

下げが続く7月でした。
そろそろ、下げ止まって欲しいのですが。。。かな。。。

■マーケットFX
 6月30日 8,917,308円 → 7月31日 8,243,398円(-673,910円)

 7月は2万NZドル買い足しましたが、きつい下げです。
 ランドも下げているのでちょっと厳しい状態です。
 年末までにスワップ3千円台後半を目標にします。
 スワップ5.12倍はいただけないのですが、
 前回5倍になった時は含み益を全て吐き出しましたが、
 スワップ累積と評価損益も+70万程あります。
 トルコリラの登場まちかな。。。
 
■株
 6月30日 10,692,741円 → 7月31日 10,989,249円(+296,508円)

 NISAまだ連絡ありません、東芝はまだ購入圏内です。

■投信
 中国 6月30日 8,715,697円 → 7月31日 8,068,655円(-647,042円)

 インベ欧州 6月30日 980,514円 → 7月31日 947,933円(-32,581円)

 日経 6月30日 5,322,411円 → 7月31日 5,429,745円(+107,334円)

 ギリシャも一旦落ち着き、米利上げも早くて9月、中国リスクだな残りは。。。
 今月増減 -572,289円

■合計
 6月比 -949,691円
 -100万円ですね。。。先月-200万円なので下げ足が鈍っているとも言える。

■リスク資産合計
 投資総額:23,000,000円 → 7月31日 33,678,980円(+10,678,980円)

BU1A8533

BU1A8746

BU1A7750

BU1A7749

明日は大垣ひまわり→(醒ヶ井梅花藻?)→練習→花火撮影と長丁場。
熱中症に注意して撮影満喫します。



hiwata_72 at 23:02|PermalinkComments(0)TrackBack(0)mixiチェック

2015年07月30日

orz

うーん、世の中思うように行かないねぇ〜
来週末予定が、金曜日出張元召喚で全てキャンセルとなりました。
綺麗な花と綺麗なお姉さんとは縁がないのでしょう。。。
まあ、お仕事なので生姜ないですね(涙)。
夏休み前の週末は庭の草むしりと掃除に集中します。

BU1A8168

BU1A7900

BU1A8322

今日はお盆休みのゴルフのお誘いが2件。
後1件が申請中で確定してないのですが。。。
8月8日〜16日の9日間で、5ラウンドの予定です。
ちょっと行き過ぎですが。。。

10月出張先ゴルフがあるのですが(実家から参加かな。。。)、
新人さん(スイスのアダムスコット)の練習がヤバイらしい。
身長190以上のスイングから放たれる球は3段ロケットの様に加速して飛んでいくとのこと。。。
勝手に線引きした電気vsメカ対抗がぁ〜負けそうです。
夏の5ラウンド合宿で80台回れる様に調整します(気合だぁ〜)

今日もsolver読み込みは続けますが、記事としては割愛。。。
コインランドリーと荷物の片付けで時間が取られるので。。。



hiwata_72 at 22:21|PermalinkComments(0)TrackBack(0)mixiチェック

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|PermalinkComments(0)TrackBack(0)mixiチェック 日記 

2015年07月28日

初森ベアーズ

ホテルから出張先の通勤途中の公園で何回か撮影現場に遭遇しました。
今朝も撮影、ブランコにセーラーの女優さんがポツンと。。。
気になって検索してみました。
タイトルの撮影、テレ東の乃木坂46主演ソフトドラマ。。。
金曜深夜にしては健全なドラマのようです。

BU1A8440

BU1A8064

BU1A7733

Zeburaのsolverの続きです。。。
defineで置き換えてみようの巻

int board_check_move(const Board *board, int x, int player)

{

const char p = player;

const char o = OPPONENT(p);

const char *square = board->square + x;


switch (FLIPPING_DIRECTION_ID[x]) {

case 1:

return  (BOARD_CHECK_MOVE_6(SE) ||

BOARD_CHECK_MOVE_6(S ) ||

BOARD_CHECK_MOVE_6( E));


ここの「BOARD_CHECK_MOVE_6(SE)」ですが、まずは。。。

  square[dir] == o

ここのsquareは、charのポインタつまりアドレスです。

  → (
board->square + x)[dir] == o

board->squareは、board構造体のsquareメンバーの先頭アドレス。
squareはcharの配列ですから、先頭からx移動したアドレスは、
配列x番目、square[x]のアドレスつまり、*(square[x])。
[dir]は、*(square[x])を配列名とするとそこから、dir番目の中身となります。
square[x+dir]かな。。。
boardから書くと、board->square[x+dir] ですね。

   →
board->square[x+dir] == o   

この意味は、xのdir方向のsquare配列が相手の色なら真となります。
ここまで来ると昨日のdefine

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

#define BOARD_CHECK_MOVE_6(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 || (square[5 * dir] == o &&  \

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

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


xからdir方向
1個目コマ色が相手の色で、
 2個目コマ色が自分と同じであれば真、相手の色の場合は
  3個目コマ色が自分と同じであれば真、相手の色の場合は
   4個目コマ色が自分と同じであれば真、相手の色の場合は
    5個目コマ色が自分と同じであれば真、相手の色の場合は
     6個目コマ色が自分と同じであれば真、相手の色の場合は
      7個目コマ色が自分と同じであれば真、それ以外は偽
オセロの規則ですね。
ただ、xの位置によってはsquare領域外になりますね。
そこはこれからの読み込みで解決するはず。
この調子で読み進めると、お盆休み前には概要習得できそうです。
僕の盤面構成は10X10=100なのでまんま書き換えはできませんが、
エッセンスを自分のソースに注入してみてスピード確認ができるといいなぁ〜



hiwata_72 at 23:14|PermalinkComments(0)TrackBack(0)mixiチェック

2015年07月27日

Zebraのsolver読んでみる その6

厚木に戻ってきました(滞在日数から言うとこうなります)。
1週間の始まりですが、日中駅からの移動は疲れます(暑いんですよね)。
お盆前までにお仕事を。。。の意気込み空しく、進まなかったお仕事でした。
社食で夕飯を食べてから、何となくこんな事かもと事態が飲み込めてきましたが、
「がんばりましょう」な月曜日でした。

オセロ検討も頑張らないと。。。前回と同じdefine

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

#define BOARD_CHECK_MOVE_6(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 || (square[5 * dir] == o &&  \

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

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


ある場所のdir方向をコマを置けるか確認するマクロかな。。。
今日はちょっと深く読んでみます。
 square[dir] == o
dirの場所相手の色である事、隣が相手の色じゃないとヒックリ返せない。
これは納得、かつ。。。
2 * dirねぇ〜???、ちょっと置いていて
同じ方向の次が同じ色であれば挟めたので置けるばしょが確定、
相手の色であればその隣が何かで判断しますよね。
ここも、納得、かつ。。。
って事を7回続けて、置けるか判断しています。
先読みしてdirは何なの?を調べました。
dirは、SとかSEつまり下記で定義した方向です。

/*! flipping directions */

enum {

NW = -10,

N  =  -9,

NE =  -8,

W =  -1,

E =  +1,

SW =  +8,

S  =  +9,

SE = +10

};


ちょっと置いていたdir * 1・・・の意味は、
Eは、+1ですよね、
*2は2、*3は3・・・うーん、square[]でそんな場所意味あるの?
10からですよね、盤面で意味があるのは、という事でそろそろ使っている部分を見てみる。

int board_check_move(const Board *board, int x, int player)

{

const char p = player;

const char o = OPPONENT(p);

const char *square = board->square + x;


switch (FLIPPING_DIRECTION_ID[x]) {

case 1:

return  (BOARD_CHECK_MOVE_6(SE) ||

BOARD_CHECK_MOVE_6(S ) ||

BOARD_CHECK_MOVE_6( E));

case 3:


なるほど。。。squareは、*squre = board->squre + x; なんですね!
ポインタであれば*2は2つE(右って事です)の盤面に置かれたコマの色。。。納得。

BU1A8051

BU1A7999

BU1A8286

BU1A8504

BU1A8540

BU1A8604

肩凝りがひどいので、バファリン飲んで早めに寝ます。
オセロ検討も遅いねぇ〜(涙)

来週末の御岳山レンゲショウマと大磯撮影会の行き方を調べてみました。
厚木ホテル予約追加して、ここから移動がよいかなと。。。
再来週金曜日は追加2泊分の着替えを今日持ってきたボストンに入れ、
それ以外の荷物は会社に置いておく。
土日と神奈川にいて月曜日に実家帰省、新幹線混むかな?
ポイントでグリーンアップグレードかな、
その前に予約したほうがいいかな。。。。



hiwata_72 at 23:41|PermalinkComments(0)TrackBack(0)mixiチェック