清一色の上がり判定を考えてみる。

色がそろっているのは所与として。

まずは雀頭を選抜。残った牌から面子(順子・刻子)を抜くのを再帰で。きれいになくなったら上がり。

あとは七対子判定を特別につければOKかな。

 

あくまで上がってるか否かだけ。役は関係ないのでこれでいいか。

 

flash麻雀チンイツ麻雀ゲーム「BAMBOO麻雀」を楽しく遊ぶために。

NVMe買った。つないだ。

turkey-pc.hatenablog.com

の、続き。

 

気づけば届いてたのでさくさくつなぐ。世間からは周回遅れのNVMeですが私にとっては初体験。

M.2に差すのは向きさえ間違えなければどうってことないのですが固定用のねじがWD Blackにはついてなかったのでベアボーン(DeskMini110)の箱から取り出すことになりました。

↑以外は大きなトラブルなし。起動ドライブの移行は手持ちのAcronisTrueImageであっさり。

順調すぎてたまらん(オチありません)。

 

で、つないだ感想ですが、

①OSのブート速い。Win10のくるくる回るやつが表示される暇なくブート完了してしまう。

②本体が軽くなった。

SATA+ケーブル=48g*1

WD Black=7.2g*2

差し引きで約40gの減量となった。

PC全体が1117g*3のDeskMini110なので4%程。体重70Kgに置き換えると約3Kgのダイエット!!!!!!

 

まだ負荷かけてないので熱がどうなのかはわかりません。とくに夏場はどうなるのか不安ですが、当面はWD Blackに頑張ってもらいましょう。

 

*1:実測

*2:スペックシート

*3:WD Black実装時

NVMe買った。いまさら。

NVMeなSSD

WD Black PCIe SSD | Western Digital(WD)

を購入した(以下WD Black)。

今買いたいNVMe SSDはこれだ!速度と動作温度で見る超高速SSD選び - AKIBA PC Hotline!

によりますと、WD Blackのベンチの数値はあまりよろしくないらしい。SATASSDと首の上げ下げ*1な項目があるとかNVMeの意味はいずこへと思うところがありますが

その分安い!!!!!!

1GBあたり単価45円は「500GB超ので3万以下のNVMe*2」としては最安*3ときたものだ。

安さは力

です。

 

え?安さが力ならSATA SSDでいいじゃんって?

 

違うの。そうじゃないの。正直に言うね。

M.2スロットに何か入れてみたかったの。

(お財布にやさしいかつ実用レベルで)

 

新しい規格を初めて使うときの快感。自作PCやる人はみんなもってるはずなの。SATAPCI-Expressにわくわくしたものなの(昔の人ならPCIAGPにもわくわくしたはず)。使ってみてベンチ取ってわーすごいと思い、実際使ってみて「まぁこんなもん」と思うものなの。それが自作PCのお楽しみの一つ。

 

というわけで購入したWD Blackが我が家に届くのを心待ちにしている。

 

(追記)届いた。

turkey-pc.hatenablog.com

 

 

*1:ほぼ変わらないことの競馬的表現

*2:細かい分類w

*3:価格.com

自転車にカメラつけた。前は失敗、後ろは成功。

自転車にドライブレコーダー替わりのカメラ付けてみんとしてつけるものなり。

 

 

まずは前のカメラ。防水ケースに入れると音がうまく取れないんじゃないかと思い、中華なGoPro付属の豊富なアタッチメントの中から選んたのと自転車用のカメラマウント(Minoura Japan – VC-100)を組み合わせて*1

f:id:turkey_pc:20171106110441j:plain

 

目立たないようにぶら下げにしてみた。

 

が、この取り付け方は失敗。グレーチングにハマった衝撃でカメラが落下して破損orz

 

後ろは中華なGoPro付属の豊富なアタッチメントを組み合わせたところに

アクションカメラ(Full HD) - ACAM-F01TBK

をつけてみました。

f:id:turkey_pc:20171106111053j:plain

こっちのカメラ唯一の長所はカメラ本体に三脚穴が付いているということ*2。中華なGoProで本体に三脚穴があるのはたぶんないんじゃないかなぁ?

 

こちらの方は普通に撮れてました。ではさっそく撮った動画を・・・はてブロは動画直接上げられないのね。めんどくさいから動画はやめとく。

 

*1:VC-100を走行中に使用するのは自己責任

*2:フレームレートがが25や50といった耳慣れない値になっていたり日時の逆さに対応してないとかまぁ短所はある

実装するまで細かいことは考えられない病

https://twitter.coaam/turkey_pc/status/924077426174390272

C#のRandom.Next(int maxValue)のヘルプを見てわいてきた疑問が下記ツイートの件。

 

実際動かすとRandom.Next(0)は常に0を返していました。ヘルプの「指定した最大値より小さい」には反していますが、まぁこれはこれでいいのかなぁと。

 

で、なんでこんなアホなことに気が付いたのかといいますと、乱数を使うプログラムのテストプログラムを書きたかったからです。

乱数が最大値-1,最大値-2・・・・0を順序良く返した場合のテストを書くにはどうしたらいいのか?

ああ、そうだ。Randomクラスに似せてテストに都合のいい任意の値を吐いてくれるクラスを作ればいいんだと。

まあ上記のことはたぶん自動テスト書く人はみんなやってることでしょうが、自分もやってみたくて。 で、書いた。

f:id:turkey_pc:20171028104139p:plain

乱数をInterfaceにして本番用の乱数(RealRandom)とテスト用の乱数(FakeRandom)をそれぞれ実装。

 

FakeRandom.Nextを実装する際に「maxValueが0のときどうしよ?」と疑問が。で、本家のRandomはどうしているのか調べてみたところで冒頭のツイート。

 

境界値なんてバグの温床だからきちんと事前に確認しとけ、と言われるのですが日本語を読んでる段階では境界値に思いをはせることができないおいらです。

コードコピペで失敗した。

twitterに流すほどじゃないこと。

 

Value_A=0;
Value_B=0;
Value_C=0;

If(Obj_A!=null){
 Value_A=Obj_A.Value;
}
If(Obj_B!=null){
 Value_B=Obj_B.Value;
}
If(Obj_C!=null){
 Value_C=Obj_C.Value;
}

 

というコードがあったところに_Dを追加してほしいとのこと。はいはいコピペコピペということで

Value_C=0;

 をコピペしてCをDに書き換える。

Value_D=0;

 

んでもって

If(Obj_C!=null){
 Value_C=Obj_C.Value;
}

をコピペしてCをDに書き換える。

If(Obj_C!=null){
 Value_D=Obj_D.Value;
}

・・・・

さて実行だ。よし、動いた。

・・・・

コードレビューで指摘一件。

やっちゃった。

でもね、ちゃんと動くのよ。実際コードが動く場面ではObj_ホニャがnullになるケースないんで。とはいえ、そんなこと逆ギレしてもしかたないんで反省。

 

開発言語は日々進化する。

などと大げさなタイトルつけましたが内容はショボく中途半端にググったことをメモっただけ。

 

きっかけは拙ツイート

 でした。

Hoge(15,000,000)となっていれば見た目ですぐに引数の誤りが分かるのになぁとツイートしたとこでした。そこに救いの神が約一名

まぢですか?

Hoge(1_500_000)

・・・あかんやないか。

と神を疑い掛けたところで一番疑うべきポイントが頭に浮かんだ。

拙の開発環境が

<marquee>★★★Visual Studio 2010★★★</marquee>

ということである。おもわず変なタグつけちゃったよ(文字流れませんよ?)

 

いまだにVS2010を使ってる事情はさておき(上の会社から指示されたとかそういうこと)、最新環境でならできるのだろうなとググった。

 

"C# 2017 新機能 アンダースコア"でMicrosoft様のサイト引っ掛けることに成功

.NET Framework - C# 7.0 の新機能

https://msdn.microsoft.com/ja-jp/magazine/mt790184.aspx

f:id:turkey_pc:20171012162205p:plain

 

これだぁぁ!!!!!!

 

まさかこんな機能が実装されているとは思わずネタのつもりでツイートしたところ、神のお導きによりここにたどり着くことになろうとは。


 

この例に限らず、開発言語は常にわかりやすく間違えないようにコードを書けるように進歩を続けている。多くのプログラマの要望を少しずつかなえたものである。

プログラマたるもの、よりよき開発言語を用意してくれたMicrosoftに感謝して新しい開発言語を使っていこうではないかと思うものであります。

 

・・・というわけで、そろそろVS2017への移行を考えていただけませんでしょうか?>お偉い人々