どうぶつしょうぎの完全解析をするGUI
@@ -0,0 +1,74 @@ | ||
1 | +Imports Microsoft.VisualStudio.TestTools.UnitTesting | |
2 | + | |
3 | +Imports doubutu.UI.Form | |
4 | + | |
5 | + | |
6 | + | |
7 | +'''<summary> | |
8 | +'''KomaUtilTest のテスト クラスです。すべての | |
9 | +'''KomaUtilTest 単体テストをここに含めます | |
10 | +'''</summary> | |
11 | +<TestClass()> _ | |
12 | +Public Class KomaUtilTest | |
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 | +#Region "追加のテスト属性" | |
31 | + ' | |
32 | + 'テストを作成するときに、次の追加属性を使用することができます: | |
33 | + ' | |
34 | + 'クラスの最初のテストを実行する前にコードを実行するには、ClassInitialize を使用 | |
35 | + '<ClassInitialize()> _ | |
36 | + 'Public Shared Sub MyClassInitialize(ByVal testContext As TestContext) | |
37 | + 'End Sub | |
38 | + ' | |
39 | + 'クラスのすべてのテストを実行した後にコードを実行するには、ClassCleanup を使用 | |
40 | + '<ClassCleanup()> _ | |
41 | + 'Public Shared Sub MyClassCleanup() | |
42 | + 'End Sub | |
43 | + ' | |
44 | + '各テストを実行する前にコードを実行するには、TestInitialize を使用 | |
45 | + '<TestInitialize()> _ | |
46 | + 'Public Sub MyTestInitialize() | |
47 | + 'End Sub | |
48 | + ' | |
49 | + '各テストを実行した後にコードを実行するには、TestCleanup を使用 | |
50 | + '<TestCleanup()> _ | |
51 | + 'Public Sub MyTestCleanup() | |
52 | + 'End Sub | |
53 | + ' | |
54 | +#End Region | |
55 | + | |
56 | + | |
57 | + '''<summary> | |
58 | + '''OppositeKoma のテスト | |
59 | + '''</summary> | |
60 | + <TestMethod()> _ | |
61 | + Public Sub OppositeKomaTest() | |
62 | + Assert.AreEqual(Koma.GoteHI, KomaUtil.OppositeKoma(Koma.SenteHI)) | |
63 | + Assert.AreEqual(Koma.GoteKI, KomaUtil.OppositeKoma(Koma.SenteKI)) | |
64 | + Assert.AreEqual(Koma.GoteLI, KomaUtil.OppositeKoma(Koma.SenteLI)) | |
65 | + Assert.AreEqual(Koma.GoteNI, KomaUtil.OppositeKoma(Koma.SenteNI)) | |
66 | + Assert.AreEqual(Koma.GoteZO, KomaUtil.OppositeKoma(Koma.SenteZO)) | |
67 | + Assert.AreEqual(Koma.SenteHI, KomaUtil.OppositeKoma(Koma.GoteHI)) | |
68 | + Assert.AreEqual(Koma.SenteKI, KomaUtil.OppositeKoma(Koma.GoteKI)) | |
69 | + Assert.AreEqual(Koma.SenteLI, KomaUtil.OppositeKoma(Koma.GoteLI)) | |
70 | + Assert.AreEqual(Koma.SenteNI, KomaUtil.OppositeKoma(Koma.GoteNI)) | |
71 | + Assert.AreEqual(Koma.SenteZO, KomaUtil.OppositeKoma(Koma.GoteZO)) | |
72 | + | |
73 | + End Sub | |
74 | +End Class |
@@ -0,0 +1,37 @@ | ||
1 | +Imports System | |
2 | +Imports System.Reflection | |
3 | +Imports System.Runtime.InteropServices | |
4 | + | |
5 | +' アセンブリに関する一般情報は以下の属性セットを通して制御されます。 | |
6 | +' アセンブリに関連付けられている情報を変更するには、 | |
7 | +' これらの属性値を変更してください。 | |
8 | + | |
9 | +' アセンブリ属性の値を確認します。 | |
10 | + | |
11 | +<Assembly: AssemblyTitle("doubutu.UI.tests")> | |
12 | +<Assembly: AssemblyDescription("")> | |
13 | +<Assembly: AssemblyCompany("")> | |
14 | +<Assembly: AssemblyProduct("doubutu.UI.tests")> | |
15 | +<Assembly: AssemblyCopyright("Copyright © 2015")> | |
16 | +<Assembly: AssemblyTrademark("")> | |
17 | + | |
18 | +<Assembly: CLSCompliant(True)> | |
19 | + | |
20 | +<Assembly: ComVisible(False)> | |
21 | + | |
22 | +'このプロジェクトが COM に公開される場合、次の GUID がタイプ ライブラリの ID になります。 | |
23 | +<Assembly: Guid("2300f9db-cee6-47a4-9a92-61199aad88e5")> | |
24 | + | |
25 | +' アセンブリのバージョン情報は、以下の 4 つの値で構成されています: | |
26 | +' | |
27 | +' Major Version | |
28 | +' Minor Version | |
29 | +' Build Number | |
30 | +' Revision | |
31 | +' | |
32 | +' すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を | |
33 | +' 既定値にすることができます: | |
34 | +' <Assembly: AssemblyVersion("1.0.*")> | |
35 | + | |
36 | +<Assembly: AssemblyVersion("1.0.0.0")> | |
37 | +<Assembly: AssemblyFileVersion("1.0.0.0")> |
@@ -0,0 +1,41 @@ | ||
1 | +Public Class Board | |
2 | + | |
3 | + Const SIZE_X As Integer = 3 | |
4 | + Const SIZE_Y As Integer = 4 | |
5 | + | |
6 | + ''' <summary> | |
7 | + ''' 盤枠 | |
8 | + ''' </summary> | |
9 | + ''' <remarks></remarks> | |
10 | + Private _Cells(SIZE_X + 2, SIZE_Y + 2) | |
11 | + | |
12 | + ''' <summary> | |
13 | + ''' 持ち駒 | |
14 | + ''' </summary> | |
15 | + ''' <remarks></remarks> | |
16 | + Private _Capured(5) As Integer | |
17 | + | |
18 | + ''' <summary> | |
19 | + ''' 取った駒の持ち駒のインデックスを返す | |
20 | + ''' </summary> | |
21 | + ''' <param name="komaval"></param> | |
22 | + ''' <returns></returns> | |
23 | + ''' <remarks></remarks> | |
24 | + Private Shared Function CapuredKomaIndex(ByVal komaval As Koma) As Koma | |
25 | + '先手のひよこ,ぞう,きりん」,「後手のひよこ,ぞう,きりんの順 | |
26 | + Select Case komaval | |
27 | + Case Koma.SenteHI | |
28 | + Return 0 | |
29 | + Case Koma.SenteZO | |
30 | + Return 1 | |
31 | + Case Koma.SenteKI | |
32 | + Return 2 | |
33 | + Case Koma.GoteHI | |
34 | + Return 3 | |
35 | + Case Koma.GoteZO | |
36 | + Return 4 | |
37 | + Case Koma.GoteKI | |
38 | + Return 5 | |
39 | + End Select | |
40 | + End Function | |
41 | +End Class |
@@ -0,0 +1,57 @@ | ||
1 | +Public Enum Koma | |
2 | + ''' <summary> | |
3 | + ''' 空 | |
4 | + ''' </summary> | |
5 | + ''' <remarks></remarks> | |
6 | + Empty = 0 | |
7 | + ''' <summary> | |
8 | + ''' ライオン | |
9 | + ''' </summary> | |
10 | + ''' <remarks></remarks> | |
11 | + SenteLI = 1 | |
12 | + ''' <summary> | |
13 | + ''' きりん | |
14 | + ''' </summary> | |
15 | + ''' <remarks></remarks> | |
16 | + SenteKI = 2 | |
17 | + ''' <summary> | |
18 | + ''' ぞう | |
19 | + ''' </summary> | |
20 | + ''' <remarks></remarks> | |
21 | + SenteZO = 3 | |
22 | + ''' <summary> | |
23 | + ''' ひよこ | |
24 | + ''' </summary> | |
25 | + ''' <remarks></remarks> | |
26 | + SenteHI = 4 | |
27 | + ''' <summary> | |
28 | + ''' にわとり | |
29 | + ''' </summary> | |
30 | + ''' <remarks></remarks> | |
31 | + SenteNI = 5 | |
32 | + ''' <summary> | |
33 | + ''' ライオン | |
34 | + ''' </summary> | |
35 | + ''' <remarks></remarks> | |
36 | + GoteLI = 6 | |
37 | + ''' <summary> | |
38 | + ''' きりん | |
39 | + ''' </summary> | |
40 | + ''' <remarks></remarks> | |
41 | + GoteKI = 7 | |
42 | + ''' <summary> | |
43 | + ''' ぞう | |
44 | + ''' </summary> | |
45 | + ''' <remarks></remarks> | |
46 | + GoteZO = 8 | |
47 | + ''' <summary> | |
48 | + ''' ひよこ | |
49 | + ''' </summary> | |
50 | + ''' <remarks></remarks> | |
51 | + GoteHI = 9 | |
52 | + ''' <summary> | |
53 | + ''' にわとり | |
54 | + ''' </summary> | |
55 | + ''' <remarks></remarks> | |
56 | + GoteNI = 10 | |
57 | +End Enum |
@@ -0,0 +1,58 @@ | ||
1 | +Imports System.Reflection | |
2 | + | |
3 | +Namespace Image | |
4 | + | |
5 | + Public Class ImageLoader | |
6 | + | |
7 | + Public Shared _instance As New ImageLoader | |
8 | + Public Shared Function GetInstance() As ImageLoader | |
9 | + Return _instance | |
10 | + End Function | |
11 | + | |
12 | + Private Sub New() | |
13 | + End Sub | |
14 | + | |
15 | + Private _komaBitmap(10) As Bitmap | |
16 | + | |
17 | + Private _isBoardViewRotated As Boolean | |
18 | + | |
19 | + Private Function GetBitmapFromResource(ByVal imageName As String) As Bitmap | |
20 | + Dim executingAssembly As Assembly = Assembly.GetExecutingAssembly() | |
21 | + Return New Bitmap(executingAssembly.GetManifestResourceStream(String.Format("doubutu.checkState.{0}", imageName))) | |
22 | + End Function | |
23 | + | |
24 | + | |
25 | + Private Sub GetResourcesFromExecutingAssembly() | |
26 | + | |
27 | + _komaBitmap(Koma.SenteHI) = GetBitmapFromResource("senteHiyoko.bmp") | |
28 | + _komaBitmap(Koma.SenteKI) = GetBitmapFromResource("senteKirin.bmp") | |
29 | + _komaBitmap(Koma.SenteLI) = GetBitmapFromResource("senteLion.bmp") | |
30 | + _komaBitmap(Koma.SenteNI) = GetBitmapFromResource("senteNiwatori.bmp") | |
31 | + _komaBitmap(Koma.SenteZO) = GetBitmapFromResource("senteZou.bmp") | |
32 | + _komaBitmap(Koma.GoteHI) = GetBitmapFromResource("goteHiyoko.bmp") | |
33 | + _komaBitmap(Koma.GoteKI) = GetBitmapFromResource("goteKirin.bmp") | |
34 | + _komaBitmap(Koma.GoteLI) = GetBitmapFromResource("goteLion.bmp") | |
35 | + _komaBitmap(Koma.GoteNI) = GetBitmapFromResource("goteNiwatori.bmp") | |
36 | + _komaBitmap(Koma.GoteZO) = GetBitmapFromResource("goteZou.bmp") | |
37 | + | |
38 | + End Sub | |
39 | + | |
40 | + Public Sub Load() | |
41 | + GetResourcesFromExecutingAssembly() | |
42 | + End Sub | |
43 | + | |
44 | + Public Sub SetBoardBiewRotated(ByVal isBoardViewRotated As Boolean) | |
45 | + Me._isBoardViewRotated = isBoardViewRotated | |
46 | + End Sub | |
47 | + | |
48 | + Public Function GetKomaImage(koma As Byte) As Bitmap | |
49 | + Dim image As Bitmap = _komaBitmap(koma) | |
50 | + If Me._isBoardViewRotated Then | |
51 | + koma = KomaUtil.OppositeKoma(koma) | |
52 | + image = _komaBitmap(koma) | |
53 | + End If | |
54 | + Return image | |
55 | + End Function | |
56 | + End Class | |
57 | + | |
58 | +End Namespace |
@@ -0,0 +1,26 @@ | ||
1 | +Public Class KomaUtil | |
2 | + | |
3 | + Public Shared Function OppositeKoma(ByVal komaVal As Koma) As Koma | |
4 | + If komaVal = Koma.Empty Then | |
5 | + Return Koma.Empty | |
6 | + End If | |
7 | + If komaVal >= 6 Then | |
8 | + Return komaVal - 5 | |
9 | + Else | |
10 | + Return komaVal + 5 | |
11 | + End If | |
12 | + End Function | |
13 | + | |
14 | + Public Shared Function CaputringKoma(ByVal komaVal As Koma) As Koma | |
15 | + If komaVal = Koma.GoteNI Then | |
16 | + Return Koma.SenteHI | |
17 | + End If | |
18 | + If komaVal = Koma.SenteNI Then | |
19 | + Return Koma.GoteHI | |
20 | + End If | |
21 | + Return OppositeKoma(komaVal) | |
22 | + End Function | |
23 | + | |
24 | + | |
25 | + | |
26 | +End Class |