ポーカーデッキ52効率的な手の表現と評価ポーカーハンド表現と評価
A K Q J T 9 8 7 6 5 4 3 2
scdh scdh scdh scdh scdh scdh scdh scdh scdh scdh scdh scdh scdh
52ビット
として、AC、Qsの上に作業カード
13ランク及び4スーツ
Qh、8s、7s 6s
A K Q J T 9 8 7 6 5 4 3 2
scdh scdh scdh scdh scdh scdh scdh scdh scdh scdh scdh scdh scdh
1 1 1 1 1 1 1
It 9枚のカード36ビットで破壊されることは
私がこれは私が削除する必要があります知ってはいけない修正
だと思う私はUInt64型と同じ問題
byte s = 1;
UInt16 spades4 = (UInt16)((s << 12) + (s << 8) + (s << 4) + (s & 0xff));
Debug.WriteLine("Hexadecimal value of {0} is {1} {2}", spades4, String.Format("{0:X}", spades4), Convert.ToString(spades4, 2).PadLeft(16, '0'));
Debug.WriteLine("");
UInt32 spades8 = (UInt32)((s << 28) + (s << 24) + (s << 20) + (s << 16) + (s << 12) + (s << 8) + (s << 4) + (s & 0xff));
Debug.WriteLine("Hexadecimal value of {0} is {1} {2}", spades8, String.Format("{0:X}", spades8), Convert.ToString(spades8, 2).PadLeft(32, '0'));
Debug.WriteLine("");
Int64 spades9 = (Int64)((s << 30) + (s << 28) + (s << 24) + (s << 20) + (s << 16) + (s << 12) + (s << 8) + (s << 4) + (s & 0xff));
Debug.WriteLine("Hexadecimal value of {0} is {1} {2}", spades9, String.Format("{0:X}", spades9), Convert.ToString(spades9, 2).PadLeft(36, '0'));
Debug.WriteLine("");
// once the shift is up to 31 it breaks - it goes negative
Int64 spades9b = (Int64)((Int64)(s << 31) + (Int64)(s << 28) + (Int64)(s << 24) + (Int64)(s << 20) + (Int64)(s << 16) + (Int64)(s << 12) + (Int64)(s << 8) + (Int64)(s << 4) + (Int64)(s & 0xff));
Debug.WriteLine("Hexadecimal value of {0} is {1} {2}", spades9b, String.Format("{0:X}", spades9b), Convert.ToString(spades9b, 2).PadLeft(36, '0'));
Debug.WriteLine("");
最後のセットまでで結構です
Int64 spades9b = (Int64)(((Int64)s << 44) | ((Int64)s << 40) | ((Int64)s << 36) | ((Int64)s << 32) | (Int64)(s << 28) | (Int64)(s << 24) | (Int64)(s << 20) | (Int64)(s << 16) | (Int64)(s << 12) | (Int64)(s << 8) | (Int64)(s << 4) | (Int64)(s & 0xff));
Debug.WriteLine("Hexadecimal value of {0} is {1} {2}", spades9b, String.Format("{0:X}", spades9b), Convert.ToString(spades9b, 2).PadLeft(48, '0'));
私はこれが修正だと思います((Int64)s << 32) – Paparazzi
ポーカーハンド評価の非常に効率的なアルゴリズムが既に存在するので、うまくいけばうまくいけばうれしいです。 – Evk
@エヴァークC#で私に1つを指摘できますか? – Paparazzi