refactor(chess): 重构象棋程序基础结构,使用Nullable重构核心代码
- 更新了多个文件的代码结构和类型定义,提高了代码的健壮性和可维护性 - 优化了事件处理、棋子管理和移动逻辑,为后续功能扩展打下坚实基础 - 修复了一些潜在的空指针异常问题,提高了程序的稳定性 - 修复部分bug
This commit is contained in:
0
Test/.gdignore
Normal file
0
Test/.gdignore
Normal file
31
Test/Test.csproj
Normal file
31
Test/Test.csproj
Normal file
@ -0,0 +1,31 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
|
||||
<IsPackable>false</IsPackable>
|
||||
<IsTestProject>true</IsTestProject>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
|
||||
<PackageReference Include="NUnit" Version="3.14.0" />
|
||||
<PackageReference Include="NUnit.Analyzers" Version="3.9.0" />
|
||||
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Using Include="NUnit.Framework" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- <ItemGroup>
|
||||
<ProjectReference Include="..\Chinese_Chess.csproj" />
|
||||
</ItemGroup> -->
|
||||
<ItemGroup>
|
||||
<Compile Include="..\Scripts\Src\*.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
16
Test/UnitTest1.cs
Normal file
16
Test/UnitTest1.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using Vector;
|
||||
|
||||
namespace Test;
|
||||
public class Tests
|
||||
{
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Test1()
|
||||
{
|
||||
Assert.Pass();
|
||||
}
|
||||
}
|
93
Test/src/TestVector.cs
Normal file
93
Test/src/TestVector.cs
Normal file
@ -0,0 +1,93 @@
|
||||
using Vector;
|
||||
namespace Test;
|
||||
public class TestsVector
|
||||
{
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Test1()
|
||||
{
|
||||
Assert.Pass();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestVector2I_Constructors()
|
||||
{
|
||||
// Arrange & Act
|
||||
var v1 = new Vector2I();
|
||||
var v2 = new Vector2I(1, 2);
|
||||
var v3 = new Vector2I(v2);
|
||||
|
||||
// Assert
|
||||
Assert.That(v1.X, Is.EqualTo(0));
|
||||
Assert.That(v1.Y, Is.EqualTo(0));
|
||||
Assert.That(v2.X, Is.EqualTo(1));
|
||||
Assert.That(v2.Y, Is.EqualTo(2));
|
||||
Assert.That(v3.X, Is.EqualTo(1));
|
||||
Assert.That(v3.Y, Is.EqualTo(2));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestVector2I_Operators()
|
||||
{
|
||||
// Arrange
|
||||
var v1 = new Vector2I(1, 2);
|
||||
var v2 = new Vector2I(3, 4);
|
||||
|
||||
// Act
|
||||
var v3 = v1 + v2;
|
||||
var v4 = v1 - v2;
|
||||
var v5 = v1 * v2;
|
||||
|
||||
// Assert
|
||||
Assert.That(v3, Is.EqualTo(new Vector2I(4, 6)));
|
||||
Assert.That(v4, Is.EqualTo(new Vector2I(-2, -2)));
|
||||
Assert.That(v5, Is.EqualTo(new Vector2I(3, 8)));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTrans2DI_Constructors()
|
||||
{
|
||||
// Arrange & Act
|
||||
var t1 = new Trans2DI();
|
||||
var t2 = new Trans2DI(new Vector2I(1, 0), new Vector2I(0, 1), new Vector2I(0, 0));
|
||||
var t3 = new Trans2DI(t2);
|
||||
var t4 = new Trans2DI(1, 0, 0, 1, 0, 0);
|
||||
|
||||
// Assert
|
||||
Assert.That(t1.XAxis, Is.EqualTo(new Vector2I(1, 0)));
|
||||
Assert.That(t1.YAxis, Is.EqualTo(new Vector2I(0, 1)));
|
||||
Assert.That(t1.Origin, Is.EqualTo(new Vector2I(0, 0)));
|
||||
|
||||
Assert.That(t2.XAxis, Is.EqualTo(new Vector2I(1, 0)));
|
||||
Assert.That(t2.YAxis, Is.EqualTo(new Vector2I(0, 1)));
|
||||
Assert.That(t2.Origin, Is.EqualTo(new Vector2I(0, 0)));
|
||||
|
||||
Assert.That(t3.XAxis, Is.EqualTo(new Vector2I(1, 0)));
|
||||
Assert.That(t3.YAxis, Is.EqualTo(new Vector2I(0, 1)));
|
||||
Assert.That(t3.Origin, Is.EqualTo(new Vector2I(0, 0)));
|
||||
|
||||
Assert.That(t4.XAxis, Is.EqualTo(new Vector2I(1, 0)));
|
||||
Assert.That(t4.YAxis, Is.EqualTo(new Vector2I(0, 1)));
|
||||
Assert.That(t4.Origin, Is.EqualTo(new Vector2I(0, 0)));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTrans2DI_Operators()
|
||||
{
|
||||
// Arrange
|
||||
var t1 = new Trans2DI(new Vector2I(1, 0), new Vector2I(0, 1), new Vector2I(1, 2));
|
||||
var v1 = new Vector2I(3, 4);
|
||||
|
||||
// Act
|
||||
var v2 = t1 * v1;
|
||||
var v3 = v1 * t1;
|
||||
|
||||
// Assert
|
||||
Assert.That(v2, Is.EqualTo(new Vector2I(4, 6)));
|
||||
Assert.That(v3, Is.EqualTo(new Vector2I(2, 2)));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user