commit 9ba2e1af6ba55c9fd0e27832a473e02bb1d89c01
Author: ZZY <2450266535@qq.com>
Date: Sat Jun 15 18:07:20 2024 +0800
init basic signal player chinese chess game
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..8ad74f7
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+# Normalize EOL for all files that Git considers text files.
+* text=auto eol=lf
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..586bfbd
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+# Godot 4+ specific ignores
+.godot/
+
+bin/
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..8b1a6d2
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "godotTools.editorPath.godot4": "e:\\GAME_ENGINE\\Godot\\Godot_v4.2.2-stable_mono_win64\\Godot_v4.2.2-stable_mono_win64.exe"
+}
\ No newline at end of file
diff --git a/Asserts/Chessboard.tres b/Asserts/Chessboard.tres
new file mode 100644
index 0000000..94548d6
--- /dev/null
+++ b/Asserts/Chessboard.tres
@@ -0,0 +1,38 @@
+[gd_resource type="TileSet" load_steps=7 format=3 uid="uid://bibjj3ay65ral"]
+
+[ext_resource type="Texture2D" uid="uid://dolq1l3fr7jep" path="res://Asserts/pic/chessboard.png" id="2_5i53i"]
+[ext_resource type="Texture2D" uid="uid://qdt3midw0lwa" path="res://Asserts/pic/cross_set_plus.png" id="3_ouwnc"]
+
+[sub_resource type="TileMapPattern" id="TileMapPattern_s62cf"]
+tile_data = PackedInt32Array(0, 36, 1610612737, 131072, 37, 1073741824, 262144, 196644, 1073741824, 393216, 196644, 1073741824, 524288, 36, 805306369, 2, 196644, 0, 131074, 131108, 0, 262146, 196644, 1, 393218, 131108, 0, 524290, 196644, 536870912, 4, 196644, 0, 131076, 196644, 1, 262148, 131108, 0, 393220, 131108, 0, 524292, 196644, 536870912, 6, 196644, 0, 131078, 131108, 0, 262150, 65572, 1, 393222, 65572, 2, 524294, 131108, 536870913, 8, 196644, 0, 131080, 196644, 1, 262152, 65572, 1342177282, 393224, 262180, 1, 524296, 262180, 536870912, 10, 196644, 0, 131082, 131108, 0, 262154, 65572, 1342177281, 393226, 65572, 268435458, 524298, 131108, 805306369, 12, 196644, 0, 131084, 196644, 1, 262156, 131108, 0, 393228, 131108, 0, 524300, 196644, 536870912, 14, 196644, 0, 131086, 131108, 0, 262158, 196644, 1, 393230, 131108, 0, 524302, 196644, 536870912, 16, 36, 1879048193, 131088, 37, 1342177280, 262160, 196644, 1342177280, 393232, 196644, 1342177280, 524304, 36, 536870913)
+
+[sub_resource type="TileMapPattern" id="TileMapPattern_3yn03"]
+tile_data = PackedInt32Array(0, 36, 268435457, 131072, 196644, 1610612736, 262144, 196644, 1610612736, 393216, 37, 1610612736, 524288, 36, 1073741825, 655360, 36, 1610612737, 786432, 37, 1073741824, 917504, 196644, 1073741824, 1048576, 196644, 1073741824, 1179648, 36, 805306369, 2, 196644, 0, 131074, 131108, 536870912, 262146, 196644, 536870913, 393218, 131108, 536870912, 524290, 196644, 536870912, 655362, 196644, 0, 786434, 131108, 0, 917506, 196644, 1, 1048578, 131108, 0, 1179650, 196644, 536870912, 4, 196644, 0, 131076, 131108, 536870912, 262148, 131108, 536870912, 393220, 196644, 536870913, 524292, 196644, 536870912, 655364, 196644, 0, 786436, 196644, 1, 917508, 131108, 0, 1048580, 131108, 0, 1179652, 196644, 536870912, 6, 131108, 1, 131078, 65572, 536870914, 262150, 65572, 536870913, 393222, 131108, 536870912, 524294, 196644, 536870912, 655366, 196644, 0, 786438, 131108, 0, 917510, 65572, 1, 1048582, 65572, 2, 1179654, 131108, 536870913, 8, 262180, 0, 131080, 262180, 536870913, 262152, 65572, 1879048194, 393224, 196644, 536870913, 524296, 196644, 536870912, 655368, 196644, 0, 786440, 196644, 1, 917512, 65572, 1342177282, 1048584, 262180, 1, 1179656, 262180, 536870912, 10, 131108, 268435457, 131082, 65572, 805306370, 262154, 65572, 1879048193, 393226, 131108, 536870912, 524298, 196644, 536870912, 655370, 196644, 0, 786442, 131108, 0, 917514, 65572, 1342177281, 1048586, 65572, 268435458, 1179658, 131108, 805306369, 12, 196644, 0, 131084, 131108, 536870912, 262156, 131108, 536870912, 393228, 196644, 536870913, 524300, 196644, 536870912, 655372, 196644, 0, 786444, 196644, 1, 917516, 131108, 0, 1048588, 131108, 0, 1179660, 196644, 536870912, 14, 196644, 0, 131086, 131108, 536870912, 262158, 196644, 536870913, 393230, 131108, 536870912, 524302, 196644, 536870912, 655374, 196644, 0, 786446, 131108, 0, 917518, 196644, 1, 1048590, 131108, 0, 1179662, 196644, 536870912, 16, 36, 1, 131088, 196644, 1879048192, 262160, 196644, 1879048192, 393232, 37, 1879048192, 524304, 36, 1342177281, 655376, 36, 1879048193, 786448, 37, 1342177280, 917520, 196644, 1342177280, 1048592, 196644, 1342177280, 1179664, 36, 536870913)
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_7ihb1"]
+texture = ExtResource("2_5i53i")
+texture_region_size = Vector2i(32, 32)
+0:0/0 = 0
+1:0/0 = 0
+2:0/0 = 0
+3:0/0 = 0
+4:0/0 = 0
+0:1/0 = 0
+1:1/0 = 0
+2:1/0 = 0
+3:1/0 = 0
+4:1/0 = 0
+0:2/0 = 0
+1:2/0 = 0
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_je1ok"]
+texture = ExtResource("3_ouwnc")
+texture_region_size = Vector2i(32, 32)
+0:0/0 = 0
+
+[resource]
+sources/36 = SubResource("TileSetAtlasSource_7ihb1")
+sources/37 = SubResource("TileSetAtlasSource_je1ok")
+tile_proxies/coords_level = [[0, Vector2i(0, 0)], [10, Vector2i(0, 0)], [0, Vector2i(0, 1)], [10, Vector2i(0, 1)], [0, Vector2i(1, 0)], [10, Vector2i(1, 0)], [0, Vector2i(1, 1)], [10, Vector2i(1, 1)], [1, Vector2i(0, 0)], [10, Vector2i(2, 0)], [1, Vector2i(0, 1)], [10, Vector2i(2, 1)], [1, Vector2i(1, 0)], [10, Vector2i(3, 0)], [1, Vector2i(1, 1)], [10, Vector2i(3, 1)], [2, Vector2i(0, 0)], [10, Vector2i(4, 0)], [2, Vector2i(0, 1)], [10, Vector2i(4, 1)], [2, Vector2i(1, 0)], [10, Vector2i(5, 0)], [2, Vector2i(1, 1)], [10, Vector2i(5, 1)], [3, Vector2i(0, 0)], [10, Vector2i(6, 0)], [3, Vector2i(0, 1)], [10, Vector2i(6, 1)], [3, Vector2i(1, 0)], [10, Vector2i(7, 0)], [3, Vector2i(1, 1)], [10, Vector2i(7, 1)], [4, Vector2i(0, 0)], [10, Vector2i(8, 0)], [4, Vector2i(0, 1)], [10, Vector2i(8, 1)], [4, Vector2i(1, 0)], [10, Vector2i(9, 0)], [4, Vector2i(1, 1)], [10, Vector2i(9, 1)], [5, Vector2i(0, 0)], [10, Vector2i(0, 2)], [5, Vector2i(0, 1)], [10, Vector2i(0, 3)], [5, Vector2i(1, 0)], [10, Vector2i(1, 2)], [5, Vector2i(1, 1)], [10, Vector2i(1, 3)], [6, Vector2i(0, 0)], [10, Vector2i(2, 2)], [6, Vector2i(0, 1)], [10, Vector2i(2, 3)], [6, Vector2i(1, 0)], [10, Vector2i(3, 2)], [6, Vector2i(1, 1)], [10, Vector2i(3, 3)], [8, Vector2i(0, 0)], [10, Vector2i(4, 2)], [8, Vector2i(0, 1)], [10, Vector2i(4, 3)], [8, Vector2i(1, 0)], [10, Vector2i(5, 2)], [8, Vector2i(1, 1)], [10, Vector2i(5, 3)], [9, Vector2i(0, 0)], [10, Vector2i(6, 2)], [9, Vector2i(0, 1)], [10, Vector2i(6, 3)], [9, Vector2i(1, 0)], [10, Vector2i(7, 2)], [9, Vector2i(1, 1)], [10, Vector2i(7, 3)], [11, Vector2i(0, 0)], [22, Vector2i(0, 0)], [11, Vector2i(0, 1)], [22, Vector2i(0, 1)], [11, Vector2i(1, 0)], [22, Vector2i(1, 0)], [11, Vector2i(1, 1)], [22, Vector2i(1, 1)], [12, Vector2i(0, 0)], [22, Vector2i(2, 0)], [12, Vector2i(0, 1)], [22, Vector2i(2, 1)], [12, Vector2i(1, 0)], [22, Vector2i(3, 0)], [12, Vector2i(1, 1)], [22, Vector2i(3, 1)], [13, Vector2i(0, 0)], [22, Vector2i(4, 0)], [13, Vector2i(0, 1)], [22, Vector2i(4, 1)], [13, Vector2i(1, 0)], [22, Vector2i(5, 0)], [13, Vector2i(1, 1)], [22, Vector2i(5, 1)], [14, Vector2i(0, 0)], [22, Vector2i(6, 0)], [14, Vector2i(0, 1)], [22, Vector2i(6, 1)], [14, Vector2i(1, 0)], [22, Vector2i(7, 0)], [14, Vector2i(1, 1)], [22, Vector2i(7, 1)], [15, Vector2i(0, 0)], [22, Vector2i(8, 0)], [15, Vector2i(0, 1)], [22, Vector2i(8, 1)], [15, Vector2i(1, 0)], [22, Vector2i(9, 0)], [15, Vector2i(1, 1)], [22, Vector2i(9, 1)], [16, Vector2i(0, 0)], [22, Vector2i(0, 2)], [16, Vector2i(0, 1)], [22, Vector2i(0, 3)], [16, Vector2i(1, 0)], [22, Vector2i(1, 2)], [16, Vector2i(1, 1)], [22, Vector2i(1, 3)], [17, Vector2i(0, 0)], [22, Vector2i(2, 2)], [17, Vector2i(0, 1)], [22, Vector2i(2, 3)], [17, Vector2i(1, 0)], [22, Vector2i(3, 2)], [17, Vector2i(1, 1)], [22, Vector2i(3, 3)], [18, Vector2i(0, 0)], [22, Vector2i(4, 2)], [18, Vector2i(0, 1)], [22, Vector2i(4, 3)], [18, Vector2i(1, 0)], [22, Vector2i(5, 2)], [18, Vector2i(1, 1)], [22, Vector2i(5, 3)], [19, Vector2i(0, 0)], [22, Vector2i(6, 2)], [19, Vector2i(0, 1)], [22, Vector2i(6, 3)], [19, Vector2i(1, 0)], [22, Vector2i(7, 2)], [19, Vector2i(1, 1)], [22, Vector2i(7, 3)], [20, Vector2i(0, 0)], [22, Vector2i(8, 2)], [20, Vector2i(0, 1)], [22, Vector2i(8, 3)], [20, Vector2i(1, 0)], [22, Vector2i(9, 2)], [20, Vector2i(1, 1)], [22, Vector2i(9, 3)], [21, Vector2i(0, 0)], [22, Vector2i(0, 4)], [21, Vector2i(0, 1)], [22, Vector2i(0, 5)], [21, Vector2i(1, 0)], [22, Vector2i(1, 4)], [21, Vector2i(1, 1)], [22, Vector2i(1, 5)]]
+pattern_0 = SubResource("TileMapPattern_s62cf")
+pattern_1 = SubResource("TileMapPattern_3yn03")
diff --git a/Asserts/ChesspieceBase.tres b/Asserts/ChesspieceBase.tres
new file mode 100644
index 0000000..49cbf6b
--- /dev/null
+++ b/Asserts/ChesspieceBase.tres
@@ -0,0 +1,4 @@
+[gd_resource type="CompressedTexture2D" format=3 uid="uid://bthav6cae4fni"]
+
+[resource]
+load_path = "res://.godot/imported/base.png-b2215abe8c7e720db36c2fb00d361b79.ctex"
diff --git a/Asserts/icon.svg b/Asserts/icon.svg
new file mode 100644
index 0000000..3fe4f4a
--- /dev/null
+++ b/Asserts/icon.svg
@@ -0,0 +1 @@
+
diff --git a/Asserts/icon.svg.import b/Asserts/icon.svg.import
new file mode 100644
index 0000000..54b86da
--- /dev/null
+++ b/Asserts/icon.svg.import
@@ -0,0 +1,37 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dffqd1ao0thh0"
+path="res://.godot/imported/icon.svg-3f95d89ee926850c516495805de0c195.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Asserts/icon.svg"
+dest_files=["res://.godot/imported/icon.svg-3f95d89ee926850c516495805de0c195.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/Asserts/pic/base.aseprite b/Asserts/pic/base.aseprite
new file mode 100644
index 0000000..28797c5
Binary files /dev/null and b/Asserts/pic/base.aseprite differ
diff --git a/Asserts/pic/base.png b/Asserts/pic/base.png
new file mode 100644
index 0000000..2771dd7
Binary files /dev/null and b/Asserts/pic/base.png differ
diff --git a/Asserts/pic/base.png.import b/Asserts/pic/base.png.import
new file mode 100644
index 0000000..a96f9c5
--- /dev/null
+++ b/Asserts/pic/base.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://8j00nxif74gw"
+path="res://.godot/imported/base.png-b2215abe8c7e720db36c2fb00d361b79.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Asserts/pic/base.png"
+dest_files=["res://.godot/imported/base.png-b2215abe8c7e720db36c2fb00d361b79.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/Asserts/pic/chessboard.png b/Asserts/pic/chessboard.png
new file mode 100644
index 0000000..32e4912
Binary files /dev/null and b/Asserts/pic/chessboard.png differ
diff --git a/Asserts/pic/chessboard.png.import b/Asserts/pic/chessboard.png.import
new file mode 100644
index 0000000..41ada88
--- /dev/null
+++ b/Asserts/pic/chessboard.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dolq1l3fr7jep"
+path="res://.godot/imported/chessboard.png-838556aeae0a8bec2d6765fe801da1f5.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Asserts/pic/chessboard.png"
+dest_files=["res://.godot/imported/chessboard.png-838556aeae0a8bec2d6765fe801da1f5.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/Asserts/pic/col.aseprite b/Asserts/pic/col.aseprite
new file mode 100644
index 0000000..b2e3816
Binary files /dev/null and b/Asserts/pic/col.aseprite differ
diff --git a/Asserts/pic/col.png b/Asserts/pic/col.png
new file mode 100644
index 0000000..72fecb5
Binary files /dev/null and b/Asserts/pic/col.png differ
diff --git a/Asserts/pic/col.png.import b/Asserts/pic/col.png.import
new file mode 100644
index 0000000..cee18c4
--- /dev/null
+++ b/Asserts/pic/col.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://d2evtffkyicvw"
+path="res://.godot/imported/col.png-e153880b8e16fd94ae5361dcaf860c4e.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Asserts/pic/col.png"
+dest_files=["res://.godot/imported/col.png-e153880b8e16fd94ae5361dcaf860c4e.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/Asserts/pic/col.svg b/Asserts/pic/col.svg
new file mode 100644
index 0000000..56a6d86
--- /dev/null
+++ b/Asserts/pic/col.svg
@@ -0,0 +1,1027 @@
+
+
\ No newline at end of file
diff --git a/Asserts/pic/col.svg.import b/Asserts/pic/col.svg.import
new file mode 100644
index 0000000..8b45920
--- /dev/null
+++ b/Asserts/pic/col.svg.import
@@ -0,0 +1,37 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c0n20m2jiqh0p"
+path="res://.godot/imported/col.svg-0ffee336a198601f21d46ac9370e8b33.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Asserts/pic/col.svg"
+dest_files=["res://.godot/imported/col.svg-0ffee336a198601f21d46ac9370e8b33.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/Asserts/pic/cross.aseprite b/Asserts/pic/cross.aseprite
new file mode 100644
index 0000000..83d94eb
Binary files /dev/null and b/Asserts/pic/cross.aseprite differ
diff --git a/Asserts/pic/cross.png b/Asserts/pic/cross.png
new file mode 100644
index 0000000..24f1347
Binary files /dev/null and b/Asserts/pic/cross.png differ
diff --git a/Asserts/pic/cross.png.import b/Asserts/pic/cross.png.import
new file mode 100644
index 0000000..ba51fdc
--- /dev/null
+++ b/Asserts/pic/cross.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dr5jdqbo4r6j7"
+path="res://.godot/imported/cross.png-61b24edd52d348e6a2df810fe4611562.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Asserts/pic/cross.png"
+dest_files=["res://.godot/imported/cross.png-61b24edd52d348e6a2df810fe4611562.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/Asserts/pic/cross_0.aseprite b/Asserts/pic/cross_0.aseprite
new file mode 100644
index 0000000..0c5b76a
Binary files /dev/null and b/Asserts/pic/cross_0.aseprite differ
diff --git a/Asserts/pic/cross_0.png b/Asserts/pic/cross_0.png
new file mode 100644
index 0000000..1525316
Binary files /dev/null and b/Asserts/pic/cross_0.png differ
diff --git a/Asserts/pic/cross_0.png.import b/Asserts/pic/cross_0.png.import
new file mode 100644
index 0000000..b18d0a3
--- /dev/null
+++ b/Asserts/pic/cross_0.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cxlkcgt17ld3h"
+path="res://.godot/imported/cross_0.png-f1b90147da6871245123302014c0a96a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Asserts/pic/cross_0.png"
+dest_files=["res://.godot/imported/cross_0.png-f1b90147da6871245123302014c0a96a.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/Asserts/pic/cross_1.aseprite b/Asserts/pic/cross_1.aseprite
new file mode 100644
index 0000000..b1c6cb8
Binary files /dev/null and b/Asserts/pic/cross_1.aseprite differ
diff --git a/Asserts/pic/cross_1.png b/Asserts/pic/cross_1.png
new file mode 100644
index 0000000..19d2bde
Binary files /dev/null and b/Asserts/pic/cross_1.png differ
diff --git a/Asserts/pic/cross_1.png.import b/Asserts/pic/cross_1.png.import
new file mode 100644
index 0000000..f683cae
--- /dev/null
+++ b/Asserts/pic/cross_1.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dq3vom8lgmclc"
+path="res://.godot/imported/cross_1.png-c2e4f67ef355a344fece25b460d4a3d9.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Asserts/pic/cross_1.png"
+dest_files=["res://.godot/imported/cross_1.png-c2e4f67ef355a344fece25b460d4a3d9.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/Asserts/pic/cross_1_2.aseprite b/Asserts/pic/cross_1_2.aseprite
new file mode 100644
index 0000000..17ff24e
Binary files /dev/null and b/Asserts/pic/cross_1_2.aseprite differ
diff --git a/Asserts/pic/cross_1_2.png b/Asserts/pic/cross_1_2.png
new file mode 100644
index 0000000..fdf4fb1
Binary files /dev/null and b/Asserts/pic/cross_1_2.png differ
diff --git a/Asserts/pic/cross_1_2.png.import b/Asserts/pic/cross_1_2.png.import
new file mode 100644
index 0000000..6399a5c
--- /dev/null
+++ b/Asserts/pic/cross_1_2.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://detb77vbwc1e0"
+path="res://.godot/imported/cross_1_2.png-e7369aafbf782a84cd02d7b0c4c08fb5.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Asserts/pic/cross_1_2.png"
+dest_files=["res://.godot/imported/cross_1_2.png-e7369aafbf782a84cd02d7b0c4c08fb5.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/Asserts/pic/cross_2.aseprite b/Asserts/pic/cross_2.aseprite
new file mode 100644
index 0000000..a74e20d
Binary files /dev/null and b/Asserts/pic/cross_2.aseprite differ
diff --git a/Asserts/pic/cross_2.png b/Asserts/pic/cross_2.png
new file mode 100644
index 0000000..c1f11d3
Binary files /dev/null and b/Asserts/pic/cross_2.png differ
diff --git a/Asserts/pic/cross_2.png.import b/Asserts/pic/cross_2.png.import
new file mode 100644
index 0000000..26eba19
--- /dev/null
+++ b/Asserts/pic/cross_2.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://hpoynvjiavth"
+path="res://.godot/imported/cross_2.png-74689dd00eeb108339596295474720fb.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Asserts/pic/cross_2.png"
+dest_files=["res://.godot/imported/cross_2.png-74689dd00eeb108339596295474720fb.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/Asserts/pic/cross_plus.aseprite b/Asserts/pic/cross_plus.aseprite
new file mode 100644
index 0000000..01f5c1b
Binary files /dev/null and b/Asserts/pic/cross_plus.aseprite differ
diff --git a/Asserts/pic/cross_plus.png b/Asserts/pic/cross_plus.png
new file mode 100644
index 0000000..664743b
Binary files /dev/null and b/Asserts/pic/cross_plus.png differ
diff --git a/Asserts/pic/cross_plus.png.import b/Asserts/pic/cross_plus.png.import
new file mode 100644
index 0000000..5689d07
--- /dev/null
+++ b/Asserts/pic/cross_plus.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://tr2jsudu2v4t"
+path="res://.godot/imported/cross_plus.png-2fa59679e3e50d8e01930aaf83b96ad4.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Asserts/pic/cross_plus.png"
+dest_files=["res://.godot/imported/cross_plus.png-2fa59679e3e50d8e01930aaf83b96ad4.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/Asserts/pic/cross_plus_1.aseprite b/Asserts/pic/cross_plus_1.aseprite
new file mode 100644
index 0000000..582cded
Binary files /dev/null and b/Asserts/pic/cross_plus_1.aseprite differ
diff --git a/Asserts/pic/cross_plus_1.png b/Asserts/pic/cross_plus_1.png
new file mode 100644
index 0000000..17facd8
Binary files /dev/null and b/Asserts/pic/cross_plus_1.png differ
diff --git a/Asserts/pic/cross_plus_1.png.import b/Asserts/pic/cross_plus_1.png.import
new file mode 100644
index 0000000..1150601
--- /dev/null
+++ b/Asserts/pic/cross_plus_1.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://iidoj8eejyel"
+path="res://.godot/imported/cross_plus_1.png-e3f94469399618574ff23e3d0e24f6f0.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Asserts/pic/cross_plus_1.png"
+dest_files=["res://.godot/imported/cross_plus_1.png-e3f94469399618574ff23e3d0e24f6f0.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/Asserts/pic/cross_set.aseprite b/Asserts/pic/cross_set.aseprite
new file mode 100644
index 0000000..6dbd289
Binary files /dev/null and b/Asserts/pic/cross_set.aseprite differ
diff --git a/Asserts/pic/cross_set.png b/Asserts/pic/cross_set.png
new file mode 100644
index 0000000..f9527fd
Binary files /dev/null and b/Asserts/pic/cross_set.png differ
diff --git a/Asserts/pic/cross_set.png.import b/Asserts/pic/cross_set.png.import
new file mode 100644
index 0000000..b7f025a
--- /dev/null
+++ b/Asserts/pic/cross_set.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b7ot4wbjukh3b"
+path="res://.godot/imported/cross_set.png-fe860dfe18afc7f7f6a5db95b380d4f0.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Asserts/pic/cross_set.png"
+dest_files=["res://.godot/imported/cross_set.png-fe860dfe18afc7f7f6a5db95b380d4f0.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/Asserts/pic/cross_set_plus.aseprite b/Asserts/pic/cross_set_plus.aseprite
new file mode 100644
index 0000000..6429493
Binary files /dev/null and b/Asserts/pic/cross_set_plus.aseprite differ
diff --git a/Asserts/pic/cross_set_plus.png b/Asserts/pic/cross_set_plus.png
new file mode 100644
index 0000000..99a2ced
Binary files /dev/null and b/Asserts/pic/cross_set_plus.png differ
diff --git a/Asserts/pic/cross_set_plus.png.import b/Asserts/pic/cross_set_plus.png.import
new file mode 100644
index 0000000..da88559
--- /dev/null
+++ b/Asserts/pic/cross_set_plus.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://qdt3midw0lwa"
+path="res://.godot/imported/cross_set_plus.png-053ef4f30063d45fedaba97cd4b90ee3.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Asserts/pic/cross_set_plus.png"
+dest_files=["res://.godot/imported/cross_set_plus.png-053ef4f30063d45fedaba97cd4b90ee3.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/Asserts/pic/eight_cross.aseprite b/Asserts/pic/eight_cross.aseprite
new file mode 100644
index 0000000..2297bda
Binary files /dev/null and b/Asserts/pic/eight_cross.aseprite differ
diff --git a/Asserts/pic/eight_cross.png b/Asserts/pic/eight_cross.png
new file mode 100644
index 0000000..cc5642e
Binary files /dev/null and b/Asserts/pic/eight_cross.png differ
diff --git a/Asserts/pic/eight_cross.png.import b/Asserts/pic/eight_cross.png.import
new file mode 100644
index 0000000..1ac8eb8
--- /dev/null
+++ b/Asserts/pic/eight_cross.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bnf7mbjy0dnof"
+path="res://.godot/imported/eight_cross.png-ec3b7037c7e6f70719821e550766fe87.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Asserts/pic/eight_cross.png"
+dest_files=["res://.godot/imported/eight_cross.png-ec3b7037c7e6f70719821e550766fe87.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/Asserts/pic/row.aseprite b/Asserts/pic/row.aseprite
new file mode 100644
index 0000000..c8f7c17
Binary files /dev/null and b/Asserts/pic/row.aseprite differ
diff --git a/Asserts/pic/row.png b/Asserts/pic/row.png
new file mode 100644
index 0000000..42e767d
Binary files /dev/null and b/Asserts/pic/row.png differ
diff --git a/Asserts/pic/row.png.import b/Asserts/pic/row.png.import
new file mode 100644
index 0000000..35eed02
--- /dev/null
+++ b/Asserts/pic/row.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://3c60m8fw5pqi"
+path="res://.godot/imported/row.png-152afe43f242ba541b6fd5a83ddba791.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Asserts/pic/row.png"
+dest_files=["res://.godot/imported/row.png-152afe43f242ba541b6fd5a83ddba791.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/Chinese_Chess.csproj b/Chinese_Chess.csproj
new file mode 100644
index 0000000..887d5d3
--- /dev/null
+++ b/Chinese_Chess.csproj
@@ -0,0 +1,8 @@
+
+
+ net6.0
+ net7.0
+ net8.0
+ true
+
+
\ No newline at end of file
diff --git a/Chinese_Chess.sln b/Chinese_Chess.sln
new file mode 100644
index 0000000..bc723ec
--- /dev/null
+++ b/Chinese_Chess.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.5.002.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Chinese_Chess", "Chinese_Chess.csproj", "{A43AD93A-A3A8-43DA-B00B-8ED7A960CCAC}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {A43AD93A-A3A8-43DA-B00B-8ED7A960CCAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A43AD93A-A3A8-43DA-B00B-8ED7A960CCAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A43AD93A-A3A8-43DA-B00B-8ED7A960CCAC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A43AD93A-A3A8-43DA-B00B-8ED7A960CCAC}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {1C372CC9-BDDA-4375-8F5E-506378E99FCC}
+ EndGlobalSection
+EndGlobal
diff --git a/Main.cs b/Main.cs
new file mode 100644
index 0000000..a12e648
--- /dev/null
+++ b/Main.cs
@@ -0,0 +1,42 @@
+using Godot;
+using System;
+
+public partial class Main : Node2D
+{
+
+ // public void ResizeChessboardToFitScreen()
+ // {
+ // var viewportSize = GetViewportRect().Size;
+ // var designSize = new Vector2(800, 800); // 设计时棋盘的尺寸,这里假设为正方形
+ // var screenAspectRatio = viewportSize.X / viewportSize.Y;
+ // var boardAspectRatio = designSize.X / designSize.Y;
+
+ // // 计算保持棋盘比例的缩放因子
+ // float scaleFactor;
+ // if (screenAspectRatio > boardAspectRatio)
+ // {
+ // // 屏幕更宽,按高度缩放
+ // scaleFactor = viewportSize.Y / designSize.Y;
+ // }
+ // else
+ // {
+ // // 屏幕更高或相等,按宽度缩放
+ // scaleFactor = viewportSize.X / designSize.X;
+ // }
+
+ // // 应用缩放
+ // GetNode("Chessboard").Scale = new Vector2(scaleFactor, scaleFactor);
+ // }
+
+ // Called when the node enters the scene tree for the first time.
+ public override void _Ready() {
+ // GetTree().Connect("screen_resized", ResizeChessboardToFitScreen);
+ // Button undo = GetNode