A cross-platform stable heuristic team-matching program, written in C#.
teammatcher
- divide, shuffle and stable the data into the teams of specific count
$ teammatcher [option]...
You can use below shell command to generate team data.
$ teammatcher --csv-file <your-csv-data> --team-count <team-count>
The header of your CSV data should be like this:
name, kind, num,val
name1,female,01, 06
name2,male, 02, 07
name3,female,03, 08
name4,male, 04, 09
or like this:
name, kind, num,val
name1,kind-0,01, 06
name2,kind-1,02, 07
name3,kind-0,03, 08
name4,kind-2,04, 09
In this CSV header, each property represent these:
name
: The human-readable name.kind
: The kind of row. Shuffling operation will be seperated by this kind. Thus, After shuffling, The count of row of specific kind in each team will be approximately uniform.num
: The id of row.val
: The value of row. Shuffler will use this value as ordering key.
The order of each header property doesn't affect to shuffling operation.
--csv-file
: A CSV file containing data--team-count
: A count of result teams.
teammatcher
uses heuristic algorithms.
Thus, A result of teammatcher
may differ to best approximation.
As teammatcher
uses heuristic algorithms,
Increasing the count of result teams causes increasing error of result.
- dotnet SDK 8.0.0 or higher
cd <project-dir>/src
dotnet publish -c Release -o publish
Then, you can run teammatcher
with these instructions:
cd publish
teammatcher [option]...