| @@ -66,11 +66,11 @@ | ||
| 66 | 66 | '''</summary> |
| 67 | 67 | <TestMethod()> _ |
| 68 | 68 | Public Sub KomaToCSANameTest() |
| 69 | - Assert.AreEqual("KY", _CSAKifuUtil.KomaToCSAName(Koma.C_KYO)) | |
| 70 | - Assert.AreEqual("FU", _CSAKifuUtil.KomaToCSAName(Koma.C_FU)) | |
| 71 | - Assert.AreEqual("HI", _CSAKifuUtil.KomaToCSAName(Koma.C_HISYA)) | |
| 72 | - Assert.AreEqual("OU", _CSAKifuUtil.KomaToCSAName(Koma.C_GYOKU)) | |
| 73 | - Assert.AreEqual("OU", _CSAKifuUtil.KomaToCSAName(Koma.C_OU)) | |
| 69 | + Assert.AreEqual("KY", _CSAKifuUtil.KomaToName(Koma.C_KYO)) | |
| 70 | + Assert.AreEqual("FU", _CSAKifuUtil.KomaToName(Koma.C_FU)) | |
| 71 | + Assert.AreEqual("HI", _CSAKifuUtil.KomaToName(Koma.C_HISYA)) | |
| 72 | + Assert.AreEqual("OU", _CSAKifuUtil.KomaToName(Koma.C_GYOKU)) | |
| 73 | + Assert.AreEqual("OU", _CSAKifuUtil.KomaToName(Koma.C_OU)) | |
| 74 | 74 | End Sub |
| 75 | 75 | |
| 76 | 76 | '''<summary> |
| @@ -78,11 +78,11 @@ | ||
| 78 | 78 | '''</summary> |
| 79 | 79 | <TestMethod()> _ |
| 80 | 80 | Public Sub KomaToCSANameWithWhichTest() |
| 81 | - Assert.AreEqual("+FU", _CSAKifuUtil.KomaToCSANameWithWhich(Koma.SENTE_FU)) | |
| 82 | - Assert.AreEqual("-FU", _CSAKifuUtil.KomaToCSANameWithWhich(Koma.GOTE_FU)) | |
| 83 | - Assert.AreEqual("+HI", _CSAKifuUtil.KomaToCSANameWithWhich(Koma.SENTE_HISYA)) | |
| 84 | - Assert.AreEqual("+OU", _CSAKifuUtil.KomaToCSANameWithWhich(Koma.SENTE_OU)) | |
| 85 | - Assert.AreEqual("+OU", _CSAKifuUtil.KomaToCSANameWithWhich(Koma.SENTE_GYOKU)) | |
| 81 | + Assert.AreEqual("+FU", _CSAKifuUtil.KomaToNameWithWhich(Koma.SENTE_FU)) | |
| 82 | + Assert.AreEqual("-FU", _CSAKifuUtil.KomaToNameWithWhich(Koma.GOTE_FU)) | |
| 83 | + Assert.AreEqual("+HI", _CSAKifuUtil.KomaToNameWithWhich(Koma.SENTE_HISYA)) | |
| 84 | + Assert.AreEqual("+OU", _CSAKifuUtil.KomaToNameWithWhich(Koma.SENTE_OU)) | |
| 85 | + Assert.AreEqual("+OU", _CSAKifuUtil.KomaToNameWithWhich(Koma.SENTE_GYOKU)) | |
| 86 | 86 | End Sub |
| 87 | 87 | |
| 88 | 88 | '''<summary> |
| @@ -101,7 +101,7 @@ | ||
| 101 | 101 | <TestMethod()> _ |
| 102 | 102 | Public Sub CSAStringToNullMoveTest() |
| 103 | 103 | Dim actual As Te |
| 104 | - actual = _CSAKifuUtil.CSAStringToNullMove("%TORYO", Koma.GOTE) | |
| 104 | + actual = _CSAKifuUtil.StringToNullMove("%TORYO", Koma.GOTE) | |
| 105 | 105 | Assert.AreEqual(True, actual.IsNullMove) |
| 106 | 106 | Assert.AreEqual(NullMoveType.TORYO, actual.NullMoveType) |
| 107 | 107 | End Sub |
| @@ -121,7 +121,7 @@ | ||
| 121 | 121 | Public Sub CSAMoveStringToTeTest() |
| 122 | 122 | Dim line As String = "-3334FU" |
| 123 | 123 | Dim kyokumen As New Kyokumen |
| 124 | - Dim actual As Te = _CSAKifuUtil.CSAMoveStringToTe(line, kyokumen) | |
| 124 | + Dim actual As Te = _CSAKifuUtil.MoveStringToTe(line, kyokumen) | |
| 125 | 125 | Assert.AreEqual(4, actual.ToLocation.Row) |
| 126 | 126 | Assert.AreEqual(3, actual.ToLocation.Col) |
| 127 | 127 | Assert.AreEqual(3, actual.FromLocation.Row) |
| @@ -136,14 +136,14 @@ | ||
| 136 | 136 | '''</summary> |
| 137 | 137 | <TestMethod()> _ |
| 138 | 138 | Public Sub CSAKomaNameWithWhichToValueTest() |
| 139 | - Assert.AreEqual(Koma.SENTE_FU, _CSAKifuUtil.CSAKomaNameWithWhichToValue("+FU")) | |
| 140 | - Assert.AreEqual(Koma.SENTE_GYOKU, _CSAKifuUtil.CSAKomaNameWithWhichToValue("+OU")) | |
| 141 | - Assert.AreEqual(Koma.GOTE_FU, _CSAKifuUtil.CSAKomaNameWithWhichToValue("-FU")) | |
| 142 | - Assert.AreEqual(Koma.GOTE_RYU, _CSAKifuUtil.CSAKomaNameWithWhichToValue("-RY")) | |
| 143 | - Assert.AreEqual(Koma.GOTE_OU, _CSAKifuUtil.CSAKomaNameWithWhichToValue("-OU")) | |
| 144 | - Assert.AreEqual(CByte(0), _CSAKifuUtil.CSAKomaNameWithWhichToValue(" * ")) | |
| 145 | - Assert.AreEqual(Koma.SENTE_HISYA, _CSAKifuUtil.CSAKomaNameWithWhichToValue("+HI")) | |
| 146 | - Assert.AreEqual(Koma.GOTE_KAKU, _CSAKifuUtil.CSAKomaNameWithWhichToValue("-KA")) | |
| 139 | + Assert.AreEqual(Koma.SENTE_FU, _CSAKifuUtil.KomaNameWithWhichToValue("+FU")) | |
| 140 | + Assert.AreEqual(Koma.SENTE_GYOKU, _CSAKifuUtil.KomaNameWithWhichToValue("+OU")) | |
| 141 | + Assert.AreEqual(Koma.GOTE_FU, _CSAKifuUtil.KomaNameWithWhichToValue("-FU")) | |
| 142 | + Assert.AreEqual(Koma.GOTE_RYU, _CSAKifuUtil.KomaNameWithWhichToValue("-RY")) | |
| 143 | + Assert.AreEqual(Koma.GOTE_OU, _CSAKifuUtil.KomaNameWithWhichToValue("-OU")) | |
| 144 | + Assert.AreEqual(CByte(0), _CSAKifuUtil.KomaNameWithWhichToValue(" * ")) | |
| 145 | + Assert.AreEqual(Koma.SENTE_HISYA, _CSAKifuUtil.KomaNameWithWhichToValue("+HI")) | |
| 146 | + Assert.AreEqual(Koma.GOTE_KAKU, _CSAKifuUtil.KomaNameWithWhichToValue("-KA")) | |
| 147 | 147 | End Sub |
| 148 | 148 | |
| 149 | 149 | '''<summary> |
| @@ -152,8 +152,8 @@ | ||
| 152 | 152 | <TestMethod()> _ |
| 153 | 153 | Public Sub CSAKomaNameToValueTest() |
| 154 | 154 | |
| 155 | - Assert.AreEqual(Koma.C_FU, _CSAKifuUtil.CSAKomaNameToValue("FU")) | |
| 156 | - Assert.AreEqual(Koma.C_OU, _CSAKifuUtil.CSAKomaNameToValue("OU")) | |
| 155 | + Assert.AreEqual(Koma.C_FU, _CSAKifuUtil.KomaNameToValue("FU")) | |
| 156 | + Assert.AreEqual(Koma.C_OU, _CSAKifuUtil.KomaNameToValue("OU")) | |
| 157 | 157 | |
| 158 | 158 | End Sub |
| 159 | 159 | End Class |
| @@ -0,0 +1,73 @@ | ||
| 1 | +Imports Microsoft.VisualStudio.TestTools.UnitTesting | |
| 2 | + | |
| 3 | +Imports ShogiNextMove.Board.Kifu | |
| 4 | +Imports ShogiNextMove.Board | |
| 5 | + | |
| 6 | + | |
| 7 | +'''<summary> | |
| 8 | +'''KifKifuUtilTest のテスト クラスです。すべての | |
| 9 | +'''KifKifuUtilTest 単体テストをここに含めます | |
| 10 | +'''</summary> | |
| 11 | +<TestClass()> _ | |
| 12 | +Public Class KifKifuUtilTest | |
| 13 | + | |
| 14 | + | |
| 15 | + Private testContextInstance As TestContext | |
| 16 | + | |
| 17 | + '''<summary> | |
| 18 | + '''現在のテストの実行についての情報および機能を | |
| 19 | + '''提供するテスト コンテキストを取得または設定します。 | |
| 20 | + '''</summary> | |
| 21 | + Public Property TestContext() As TestContext | |
| 22 | + Get | |
| 23 | + Return testContextInstance | |
| 24 | + End Get | |
| 25 | + Set(value As TestContext) | |
| 26 | + testContextInstance = Value | |
| 27 | + End Set | |
| 28 | + End Property | |
| 29 | + | |
| 30 | + Private _KifKifuUtil As KifKifuUtil = KifKifuUtil.GetInstance | |
| 31 | + | |
| 32 | +#Region "追加のテスト属性" | |
| 33 | + ' | |
| 34 | + 'テストを作成するときに、次の追加属性を使用することができます: | |
| 35 | + ' | |
| 36 | + 'クラスの最初のテストを実行する前にコードを実行するには、ClassInitialize を使用 | |
| 37 | + '<ClassInitialize()> _ | |
| 38 | + 'Public Shared Sub MyClassInitialize(ByVal testContext As TestContext) | |
| 39 | + 'End Sub | |
| 40 | + ' | |
| 41 | + 'クラスのすべてのテストを実行した後にコードを実行するには、ClassCleanup を使用 | |
| 42 | + '<ClassCleanup()> _ | |
| 43 | + 'Public Shared Sub MyClassCleanup() | |
| 44 | + 'End Sub | |
| 45 | + ' | |
| 46 | + '各テストを実行する前にコードを実行するには、TestInitialize を使用 | |
| 47 | + '<TestInitialize()> _ | |
| 48 | + 'Public Sub MyTestInitialize() | |
| 49 | + 'End Sub | |
| 50 | + ' | |
| 51 | + '各テストを実行した後にコードを実行するには、TestCleanup を使用 | |
| 52 | + '<TestCleanup()> _ | |
| 53 | + 'Public Sub MyTestCleanup() | |
| 54 | + 'End Sub | |
| 55 | + ' | |
| 56 | +#End Region | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + <TestMethod()> _ | |
| 61 | + Public Sub KomaNameToValueTest() | |
| 62 | + Assert.AreEqual(Koma.C_OU, _KifKifuUtil.KomaNameToValue("玉")) | |
| 63 | + Assert.AreEqual(Koma.C_FU, _KifKifuUtil.KomaNameToValue("歩")) | |
| 64 | + Assert.AreEqual(Koma.C_NARI_KEI, _KifKifuUtil.KomaNameToValue("成桂")) | |
| 65 | + End Sub | |
| 66 | + | |
| 67 | + <TestMethod()> _ | |
| 68 | + Public Sub KomaNameWithWhichToValueTest() | |
| 69 | + Assert.AreEqual(Koma.SENTE_GIN, _KifKifuUtil.KomaNameWithWhichToValue(" 銀")) | |
| 70 | + Assert.AreEqual(Koma.GOTE_KYO, _KifKifuUtil.KomaNameWithWhichToValue("v香")) | |
| 71 | + End Sub | |
| 72 | + | |
| 73 | +End Class |
| @@ -104,7 +104,7 @@ | ||
| 104 | 104 | Dim text As String = "P" |
| 105 | 105 | text += dan.ToString() |
| 106 | 106 | For i As Integer = 9 To 1 Step -1 |
| 107 | - text += _CSAKifuUtil.KomaToCSANameWithWhich(_firstKyokumen.GetMasu(i, dan).Value) | |
| 107 | + text += _CSAKifuUtil.KomaToNameWithWhich(_firstKyokumen.GetMasu(i, dan).Value) | |
| 108 | 108 | Next |
| 109 | 109 | Return text |
| 110 | 110 | End Function |
| @@ -114,7 +114,7 @@ | ||
| 114 | 114 | For i As Integer = Koma.C_HISYA To Koma.C_FU Step -1 |
| 115 | 115 | Dim komaValue = CByte(i) |
| 116 | 116 | For j As Integer = 1 To _firstKyokumen.SenteHand(komaValue) |
| 117 | - textBuilder.AppendFormat("00{0}", _CSAKifuUtil.KomaToCSAName(komaValue)) | |
| 117 | + textBuilder.AppendFormat("00{0}", _CSAKifuUtil.KomaToName(komaValue)) | |
| 118 | 118 | Next |
| 119 | 119 | Next |
| 120 | 120 | Return textBuilder.ToString |
| @@ -125,7 +125,7 @@ | ||
| 125 | 125 | For i As Integer = Koma.C_HISYA To Koma.C_FU Step -1 |
| 126 | 126 | Dim komaValue = CByte(i) |
| 127 | 127 | For j As Integer = 1 To _firstKyokumen.GoteHand(komaValue) |
| 128 | - textBuilder.AppendFormat("00{0}", _CSAKifuUtil.KomaToCSAName(komaValue)) | |
| 128 | + textBuilder.AppendFormat("00{0}", _CSAKifuUtil.KomaToName(komaValue)) | |
| 129 | 129 | Next |
| 130 | 130 | Next |
| 131 | 131 | Return textBuilder.ToString |
| @@ -156,7 +156,7 @@ | ||
| 156 | 156 | str += MoveToCSAString(te) |
| 157 | 157 | result = str + ",T" + thinkTime.ToString() |
| 158 | 158 | Else |
| 159 | - Dim text As String = _CSAKifuUtil.NullMoveToCSAString(te.NullMoveType) | |
| 159 | + Dim text As String = _CSAKifuUtil.NullMoveToString(te.NullMoveType) | |
| 160 | 160 | If te.NullMoveType = NullMoveType.ILLEGAL_ACTION Then |
| 161 | 161 | If te.IsGote Then |
| 162 | 162 | text = "%-" + text |
| @@ -181,7 +181,7 @@ | ||
| 181 | 181 | Dim str As String = LocationToCSAString(te.FromLocation) |
| 182 | 182 | Dim str2 As String = LocationToCSAString(te.ToLocation) |
| 183 | 183 | Dim b As Byte = te.KomaKind |
| 184 | - Dim str3 As String = _CSAKifuUtil.KomaToCSAName(te.KomaKind) | |
| 184 | + Dim str3 As String = _CSAKifuUtil.KomaToName(te.KomaKind) | |
| 185 | 185 | Return str + str2 + str3 |
| 186 | 186 | End Function |
| 187 | 187 |
| @@ -6,9 +6,6 @@ | ||
| 6 | 6 | Public Class CSAKifuUtil |
| 7 | 7 | Inherits KifuUtilBase |
| 8 | 8 | |
| 9 | - | |
| 10 | - | |
| 11 | - | |
| 12 | 9 | Private Shared _instance As New CSAKifuUtil |
| 13 | 10 | Private Sub New() |
| 14 | 11 | End Sub |
| @@ -17,7 +14,7 @@ | ||
| 17 | 14 | End Function |
| 18 | 15 | |
| 19 | 16 | |
| 20 | - Protected Overrides ReadOnly Property nullMoveCSAStrArray As String() | |
| 17 | + Protected Overrides ReadOnly Property nullMoveStrArray As String() | |
| 21 | 18 | Get |
| 22 | 19 | Dim arrray As String() = { |
| 23 | 20 | "", |
| @@ -33,7 +30,7 @@ | ||
| 33 | 30 | End Get |
| 34 | 31 | End Property |
| 35 | 32 | |
| 36 | - Protected Overrides ReadOnly Property komaCSANameArray As String() | |
| 33 | + Protected Overrides ReadOnly Property komaNameArray As String() | |
| 37 | 34 | Get |
| 38 | 35 | Dim array As String() = { |
| 39 | 36 | "", |
| @@ -56,7 +53,7 @@ | ||
| 56 | 53 | End Get |
| 57 | 54 | End Property |
| 58 | 55 | |
| 59 | - Protected Overrides ReadOnly Property komaCSANameWithWhichArray As String() | |
| 56 | + Protected Overrides ReadOnly Property komaNameWithWhichArray As String() | |
| 60 | 57 | Get |
| 61 | 58 | Dim array As String() = { |
| 62 | 59 | " * ", |
| @@ -94,6 +91,64 @@ | ||
| 94 | 91 | Return array |
| 95 | 92 | End Get |
| 96 | 93 | End Property |
| 94 | + | |
| 95 | + | |
| 96 | + Public Function MoveStringToTe(line As String, kyokumen As Board.Kyokumen) As Board.Te | |
| 97 | + | |
| 98 | + Debug.Assert(Not line.Length < 7) | |
| 99 | + If line.Length < 7 Then | |
| 100 | + Return Nothing | |
| 101 | + End If | |
| 102 | + | |
| 103 | + Dim which As Byte | |
| 104 | + If line.StartsWith("+") Then | |
| 105 | + which = Board.Koma.SENTE | |
| 106 | + ElseIf line.StartsWith("-") Then | |
| 107 | + which = Board.Koma.GOTE | |
| 108 | + Else | |
| 109 | + Debug.Assert(False) | |
| 110 | + End If | |
| 111 | + | |
| 112 | + Dim fromLocation As KomaLocation = KomaLocation.ParseLocation(line.Substring(1, 2)) | |
| 113 | + Dim toLocation As KomaLocation = KomaLocation.ParseLocation(line.Substring(3, 2)) | |
| 114 | + Dim komaName As String = line.Substring(5, 2) | |
| 115 | + Dim komaValue As Byte = Me.KomaNameToValue(komaName) + which | |
| 116 | + Debug.Assert(komaValue <> 0) | |
| 117 | + If komaValue = 0 Then | |
| 118 | + Return Nothing | |
| 119 | + End If | |
| 120 | + | |
| 121 | + If fromLocation.IsMochigoma Then | |
| 122 | + Return New Board.Te(fromLocation, toLocation, komaValue, False) | |
| 123 | + End If | |
| 124 | + | |
| 125 | + Dim preValue As Koma = kyokumen.GetMasu(fromLocation) | |
| 126 | + Dim isPromote As Boolean = CommonKifuUtil.IsPromoteKoma(komaValue, preValue.Value) | |
| 127 | + | |
| 128 | + If komaValue = KomaUtil.KomaKind(Koma.C_OU) Then | |
| 129 | + komaValue = preValue.Value | |
| 130 | + End If | |
| 131 | + | |
| 132 | + Return New Board.Te(fromLocation, toLocation, komaValue, isPromote) | |
| 133 | + | |
| 134 | + End Function | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + Public Function CSAParseThinkTime(ByVal line As String) As Integer | |
| 140 | + Debug.Assert(7 < line.Length) | |
| 141 | + Dim thinkTime As Integer | |
| 142 | + Dim array As String() = line.Split({","}, StringSplitOptions.RemoveEmptyEntries) | |
| 143 | + If array.Length > 1 Then | |
| 144 | + Dim text As String = array(1) | |
| 145 | + Dim idx As Integer = text.IndexOf("T") | |
| 146 | + If idx <> -1 Then | |
| 147 | + Integer.TryParse(text.Substring(idx + 1), thinkTime) | |
| 148 | + End If | |
| 149 | + End If | |
| 150 | + Return thinkTime | |
| 151 | + End Function | |
| 97 | 152 | End Class |
| 98 | 153 | |
| 99 | 154 | End Namespace |
| \ No newline at end of file |
| @@ -5,21 +5,45 @@ | ||
| 5 | 5 | Public Class KifKifuUtil |
| 6 | 6 | Inherits KifuUtilBase |
| 7 | 7 | |
| 8 | - Protected Overrides ReadOnly Property komaCSANameArray As String() | |
| 8 | + Private Shared _instance As New KifKifuUtil | |
| 9 | + Private Sub New() | |
| 10 | + End Sub | |
| 11 | + Public Shared Function GetInstance() As KifKifuUtil | |
| 12 | + Return _instance | |
| 13 | + End Function | |
| 14 | + | |
| 15 | + Protected Overrides ReadOnly Property komaNameArray As String() | |
| 9 | 16 | Get |
| 10 | - | |
| 17 | + Dim array As String() = { | |
| 18 | + "", "歩", "香", "桂", "銀", "金", "角", "飛", "玉", "", | |
| 19 | + "と", "成香", "成桂", "成銀", "馬", "龍"} | |
| 20 | + Return array | |
| 11 | 21 | End Get |
| 12 | 22 | End Property |
| 13 | 23 | |
| 14 | - Protected Overrides ReadOnly Property komaCSANameWithWhichArray As String() | |
| 24 | + Protected Overrides ReadOnly Property komaNameWithWhichArray As String() | |
| 15 | 25 | Get |
| 16 | - | |
| 26 | + Dim array As String() = { | |
| 27 | + "", " 歩", " 香", " 桂", " 銀", " 金", " 角", " 飛", "", " 玉", | |
| 28 | + " と", " 杏", " 圭", " 全", " 馬", " 龍", | |
| 29 | + "", "v歩", "v香", "v桂", "v銀", "v金", "v角", "v飛", "v玉", "", | |
| 30 | + "vと", "v杏", "v圭", "v全", "v馬", "v龍"} | |
| 31 | + Return array | |
| 17 | 32 | End Get |
| 18 | 33 | End Property |
| 19 | 34 | |
| 20 | - Protected Overrides ReadOnly Property nullMoveCSAStrArray As String() | |
| 35 | + Protected Overrides ReadOnly Property nullMoveStrArray As String() | |
| 21 | 36 | Get |
| 22 | - | |
| 37 | + Dim array As String() = {"", | |
| 38 | + "中断", | |
| 39 | + "詰み", | |
| 40 | + "投了", | |
| 41 | + "千日手", | |
| 42 | + "切れ負け", | |
| 43 | + "反則負け", | |
| 44 | + "持将棋", | |
| 45 | + "反則勝ち"} | |
| 46 | + Return array | |
| 23 | 47 | End Get |
| 24 | 48 | End Property |
| 25 | 49 | End Class |
| @@ -4,22 +4,22 @@ | ||
| 4 | 4 | |
| 5 | 5 | Public MustInherit Class KifuUtilBase |
| 6 | 6 | |
| 7 | - Protected MustOverride ReadOnly Property nullMoveCSAStrArray As String() | |
| 7 | + Protected MustOverride ReadOnly Property nullMoveStrArray As String() | |
| 8 | 8 | |
| 9 | - Protected MustOverride ReadOnly Property komaCSANameArray As String() | |
| 9 | + Protected MustOverride ReadOnly Property komaNameArray As String() | |
| 10 | 10 | |
| 11 | - Protected MustOverride ReadOnly Property komaCSANameWithWhichArray As String() | |
| 11 | + Protected MustOverride ReadOnly Property komaNameWithWhichArray As String() | |
| 12 | 12 | |
| 13 | - Public Function KomaToCSAName(ByVal komaValueWithWhich As Byte) As String | |
| 13 | + Public Function KomaToName(ByVal komaValueWithWhich As Byte) As String | |
| 14 | 14 | komaValueWithWhich = Board.KomaUtil.GyokuToOu(komaValueWithWhich) |
| 15 | 15 | Dim komaKind As Byte = Board.KomaUtil.KomaKind(komaValueWithWhich) |
| 16 | - Debug.Assert(komaKind < komaCSANameArray.Length) | |
| 17 | - Return komaCSANameArray(komaKind) | |
| 16 | + Debug.Assert(komaKind < komaNameArray.Length) | |
| 17 | + Return komaNameArray(komaKind) | |
| 18 | 18 | End Function |
| 19 | 19 | |
| 20 | - Public Function CSAKomaNameToValue(ByVal komaName As String) As Byte | |
| 21 | - For i As Integer = 0 To komaCSANameArray.Length - 1 | |
| 22 | - If komaName = komaCSANameArray(i) Then | |
| 20 | + Public Function KomaNameToValue(ByVal komaName As String) As Byte | |
| 21 | + For i As Integer = 0 To komaNameArray.Length - 1 | |
| 22 | + If komaName = komaNameArray(i) Then | |
| 23 | 23 | Return CByte(i) |
| 24 | 24 | End If |
| 25 | 25 | Next |
| @@ -28,20 +28,20 @@ | ||
| 28 | 28 | Return 0 |
| 29 | 29 | End Function |
| 30 | 30 | |
| 31 | - Public Function KomaToCSANameWithWhich(ByVal komaValue As Byte) As String | |
| 32 | - Debug.Assert(komaValue < komaCSANameWithWhichArray.Length) | |
| 31 | + Public Function KomaToNameWithWhich(ByVal komaValue As Byte) As String | |
| 32 | + Debug.Assert(komaValue < komaNameWithWhichArray.Length) | |
| 33 | 33 | If komaValue = Koma.SENTE_OU Then |
| 34 | 34 | komaValue = Koma.SENTE_GYOKU |
| 35 | 35 | ElseIf komaValue = Koma.GOTE_GYOKU Then |
| 36 | 36 | komaValue = Koma.GOTE_OU |
| 37 | 37 | End If |
| 38 | - Return komaCSANameWithWhichArray(komaValue) | |
| 38 | + Return komaNameWithWhichArray(komaValue) | |
| 39 | 39 | End Function |
| 40 | 40 | |
| 41 | 41 | |
| 42 | - Public Function CSAKomaNameWithWhichToValue(ByVal komaName As String) As Byte | |
| 43 | - For i As Integer = 0 To komaCSANameWithWhichArray.Length - 1 | |
| 44 | - If komaName = komaCSANameWithWhichArray(i) Then | |
| 42 | + Public Function KomaNameWithWhichToValue(ByVal komaName As String) As Byte | |
| 43 | + For i As Integer = 0 To komaNameWithWhichArray.Length - 1 | |
| 44 | + If komaName = komaNameWithWhichArray(i) Then | |
| 45 | 45 | Return CType(i, Byte) |
| 46 | 46 | End If |
| 47 | 47 | Next |
| @@ -49,66 +49,10 @@ | ||
| 49 | 49 | Return 0 |
| 50 | 50 | End Function |
| 51 | 51 | |
| 52 | - Public Function CSAMoveStringToTe(line As String, kyokumen As Board.Kyokumen) As Board.Te | |
| 53 | 52 | |
| 54 | - Debug.Assert(Not line.Length < 7) | |
| 55 | - If line.Length < 7 Then | |
| 56 | - Return Nothing | |
| 57 | - End If | |
| 58 | 53 | |
| 59 | - Dim which As Byte | |
| 60 | - If line.StartsWith("+") Then | |
| 61 | - which = Board.Koma.SENTE | |
| 62 | - ElseIf line.StartsWith("-") Then | |
| 63 | - which = Board.Koma.GOTE | |
| 64 | - Else | |
| 65 | - Debug.Assert(False) | |
| 66 | - End If | |
| 67 | - | |
| 68 | - Dim fromLocation As KomaLocation = KomaLocation.ParseLocation(line.Substring(1, 2)) | |
| 69 | - Dim toLocation As KomaLocation = KomaLocation.ParseLocation(line.Substring(3, 2)) | |
| 70 | - Dim komaName As String = line.Substring(5, 2) | |
| 71 | - Dim komaValue As Byte = Me.CSAKomaNameToValue(komaName) + which | |
| 72 | - Debug.Assert(komaValue <> 0) | |
| 73 | - If komaValue = 0 Then | |
| 74 | - Return Nothing | |
| 75 | - End If | |
| 76 | - | |
| 77 | - If fromLocation.IsMochigoma Then | |
| 78 | - Return New Board.Te(fromLocation, toLocation, komaValue, False) | |
| 79 | - End If | |
| 80 | - | |
| 81 | - Dim preValue As Koma = kyokumen.GetMasu(fromLocation) | |
| 82 | - Dim isPromote As Boolean = CommonKifuUtil.IsPromoteKoma(komaValue, preValue.Value) | |
| 83 | - | |
| 84 | - If komaValue = KomaUtil.KomaKind(Koma.C_OU) Then | |
| 85 | - komaValue = preValue.Value | |
| 86 | - End If | |
| 87 | - | |
| 88 | - Return New Board.Te(fromLocation, toLocation, komaValue, isPromote) | |
| 89 | - | |
| 90 | - End Function | |
| 91 | - | |
| 92 | - | |
| 93 | - | |
| 94 | - | |
| 95 | - Public Function CSAParseThinkTime(ByVal line As String) As Integer | |
| 96 | - Debug.Assert(7 < line.Length) | |
| 97 | - Dim thinkTime As Integer | |
| 98 | - Dim array As String() = line.Split({","}, StringSplitOptions.RemoveEmptyEntries) | |
| 99 | - If array.Length > 1 Then | |
| 100 | - Dim text As String = array(1) | |
| 101 | - Dim idx As Integer = text.IndexOf("T") | |
| 102 | - If idx <> -1 Then | |
| 103 | - Integer.TryParse(text.Substring(idx + 1), thinkTime) | |
| 104 | - End If | |
| 105 | - End If | |
| 106 | - Return thinkTime | |
| 107 | - End Function | |
| 108 | - | |
| 109 | - | |
| 110 | - Public Function CSAStringToNullMove(moveStr As String, which As Byte) As Board.Te | |
| 111 | - Dim array As String() = Me.nullMoveCSAStrArray | |
| 54 | + Public Function StringToNullMove(moveStr As String, which As Byte) As Board.Te | |
| 55 | + Dim array As String() = Me.nullMoveStrArray | |
| 112 | 56 | For i As Integer = 1 To array.Length - 1 |
| 113 | 57 | Dim value As String = array(i) |
| 114 | 58 | If moveStr.IndexOf(value) <> -1 Then |
| @@ -118,8 +62,8 @@ | ||
| 118 | 62 | Return Nothing |
| 119 | 63 | End Function |
| 120 | 64 | |
| 121 | - Public Function NullMoveToCSAString(ByVal nullmovetype As NullMoveType) As String | |
| 122 | - Return nullMoveCSAStrArray(CInt(nullmovetype)) | |
| 65 | + Public Function NullMoveToString(ByVal nullmovetype As NullMoveType) As String | |
| 66 | + Return nullMoveStrArray(CInt(nullmovetype)) | |
| 123 | 67 | End Function |
| 124 | 68 | End Class |
| 125 | 69 |
| @@ -67,7 +67,7 @@ | ||
| 67 | 67 | Return flag |
| 68 | 68 | End If |
| 69 | 69 | |
| 70 | - Dim te As Te = _CSAKifuUtil.CSAMoveStringToTe(text, _kifu.LastKyokumen) | |
| 70 | + Dim te As Te = _CSAKifuUtil.MoveStringToTe(text, _kifu.LastKyokumen) | |
| 71 | 71 | If te Is Nothing Then |
| 72 | 72 | Return flag |
| 73 | 73 | End If |
| @@ -82,7 +82,7 @@ | ||
| 82 | 82 | Return flag |
| 83 | 83 | End If |
| 84 | 84 | |
| 85 | - Dim te2 As Te = _CSAKifuUtil.CSAStringToNullMove(text, _kifu.LastKyokumen.Turn) | |
| 85 | + Dim te2 As Te = _CSAKifuUtil.StringToNullMove(text, _kifu.LastKyokumen.Turn) | |
| 86 | 86 | If te2 Is Nothing Then |
| 87 | 87 | Return flag |
| 88 | 88 | End If |
| @@ -111,7 +111,7 @@ | ||
| 111 | 111 | Exit While |
| 112 | 112 | End If |
| 113 | 113 | Dim komaStr As String = line.Substring(num + 2, 2) |
| 114 | - Dim komaValue As Byte = _CSAKifuUtil.CSAKomaNameToValue(komaStr) | |
| 114 | + Dim komaValue As Byte = _CSAKifuUtil.KomaNameToValue(komaStr) | |
| 115 | 115 | h.KomaOchi(l.Col, l.Row, komaValue) |
| 116 | 116 | num += 4 |
| 117 | 117 | End While |
| @@ -144,7 +144,7 @@ | ||
| 144 | 144 | End If |
| 145 | 145 | ParseMochigomaAll(which) |
| 146 | 146 | Else |
| 147 | - Dim b As Byte = _CSAKifuUtil.CSAKomaNameToValue(komaName) | |
| 147 | + Dim b As Byte = _CSAKifuUtil.KomaNameToValue(komaName) | |
| 148 | 148 | Debug.Assert(b <> 0) |
| 149 | 149 | If b = 0 Then |
| 150 | 150 | Exit Sub |
| @@ -190,7 +190,7 @@ | ||
| 190 | 190 | |
| 191 | 191 | For col As Integer = 9 To 1 Step -1 |
| 192 | 192 | Dim komaName As String = line.Substring(3 * (9 - col) + 2, 3) |
| 193 | - Dim b As Byte = _CSAKifuUtil.CSAKomaNameWithWhichToValue(komaName) | |
| 193 | + Dim b As Byte = _CSAKifuUtil.KomaNameWithWhichToValue(komaName) | |
| 194 | 194 | _firstKyokumen.SetMasu(New KomaLocation(col, row), New Koma(b)) |
| 195 | 195 | Next |
| 196 | 196 |