checkpoint

This commit is contained in:
2021-02-23 18:03:23 -06:00
parent 8d79c75616
commit f644795cd3
38 changed files with 1451 additions and 177 deletions

View File

@@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<OutputType>Exe</OutputType>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="BenchmarkDotNet" Version="0.12.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Gameboard.ShogiUI.BoardState\Gameboard.ShogiUI.BoardState.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,58 @@
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
using Gameboard.ShogiUI.BoardState;
using System;
namespace Benchmarking
{
public class Benchmarks
{
private Move[] moves;
public Benchmarks()
{
moves = new[]
{
// P1 Rook
new Move { From = new BoardVector(7, 1), To = new BoardVector(4, 1) },
// P2 Gold
new Move { From = new BoardVector(3, 8), To = new BoardVector(2, 7) },
// P1 Pawn
new Move { From = new BoardVector(4, 2), To = new BoardVector(4, 3) },
// P2 other Gold
new Move { From = new BoardVector(5, 8), To = new BoardVector(6, 7) },
// P1 same Pawn
new Move { From = new BoardVector(4, 3), To = new BoardVector(4, 4) },
// P2 Pawn
new Move { From = new BoardVector(4, 6), To = new BoardVector(4, 5) },
// P1 Pawn takes P2 Pawn
new Move { From = new BoardVector(4, 4), To = new BoardVector(4, 5) },
// P2 King
new Move { From = new BoardVector(4, 8), To = new BoardVector(4, 7) },
// P1 Pawn promotes
new Move { From = new BoardVector(4, 5), To = new BoardVector(4, 6), IsPromotion = true },
// P2 King retreat
new Move { From = new BoardVector(4, 7), To = new BoardVector(4, 8) },
};
}
[Benchmark]
public void OnlyValidMoves_NewBoard()
{
var board = new ShogiBoard();
foreach (var move in moves)
{
board.TryMove(move);
}
}
}
public class Program
{
public static void Main(string[] args)
{
BenchmarkRunner.Run<Benchmarks>();
Console.WriteLine("Done");
}
}
}