GithubHelp home page GithubHelp logo

bieremaboyzprogramming / bbppairings Goto Github PK

View Code? Open in Web Editor NEW
73.0 73.0 29.0 212 KB

A Swiss-system chess tournament pairing engine, implementing the Burstein and Dutch systems.

License: Other

Makefile 3.46% C++ 96.35% C 0.19%

bbppairings's People

Contributors

jbierema avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bbppairings's Issues

One player gets second time bye - FIDE Rule C.04.1 d

Hello, first of all: I sent this already to JaVaFo by eMail, not sure if I understood who is responsible.

In the file attached player 15 had already a paired-bye in round 4 with a full point. Nevertheless bbpPairings/JaVaFo wants to give him another one for round 6.
Actually I am sure it's my bad understanding or but can you help me to understand this?
trffile_before_round_6.txt
Reply from bbp:
11
6 12
21 1
18 16
11 20
8 7
13 2
5 4
14 10
9 3
19 17
15 0

Here the 15 should not get the 0 again, should he?

Handle absent players

Hello,

I can't manage to specify absent players to bbpPairings in order to exclude them from next round pairing.

I found the XXZ parameter in the JaVaFo documentation, but it does not seem to be handled.
I've also tried to add 0000 - Z in the column of the next round, but it's ignored too.

Am I missing something ?

Please find the sample I use to reproduce the issue : TRF(x) sample

./bbpPairings.exe  --dutch sample.trf -p

Players 23, 28 and 43 should be excluded from pairings, but they're not.

Many thank for your work on this project.

Error when compiling

When I try to compile bbpPairings, I'm getting an error:

src/swisssystems/burstein.cpp: In function 'swisssystems::burstein::{anonymous}::points_product swisssystems::burstein::{anonymous}::calculateSonnebornBerger(const tournament::Player&, const tournament::Tournament&, const std::vector<utility::uinttypes::uint<2> >&)':
src/swisssystems/burstein.cpp:215:17: error: ambiguous overload for 'operator*' (operand types are 'swisssystems::burstein::{anonymous}::points_product' {aka 'utility::uinttypes::uint<3>'} and 'const swisssystems::burstein::{anonymous}::adjusted_score' {aka 'const utility::uinttypes::uint<2>'})
  214 |               points_product{ tournament.getPoints(player, match) }
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |               |
      |               uint<3>
  215 |                 * virtualScore;
      |                 ^ ~~~~~~~~~~~~
      |                   |
      |                   uint<2>

I'm using g++ (Alpine 12.2.1_git20220924-r4) 12.2.1 20220924.

There seems to be a discrepancy between pointProductSize and adjustedScoreSize which makes the types of the uint generics differ so the operands of the multiply have different types. I'm not sure how to correct that.

Question about half point byes.

Hello
I'm JP and I am the programmer of the pairings program Sevilla (www.jbfsoftware.com).
I am interested in including a good WM based pairings engine into my software, and would like to consider including bbpPairings (if you don't mind).
I ran into one issue so far. The .trf input file gives an error message for players being absent with a half point bye in the round to pair. This is because the half point was already included in the score total of the player. bbpPairings seems not to like it, and when I corrected the scores the file was accepted.
However, also the test file of JaVaFo http://www.rrweb.org/javafo/aum/TRFXSample2.txt adds the half point already. As you are trying to be as compatible as possible to JaVaFo, would/could you consider to change this? Otherwise, maybe you could exclude the total point check for players who are not to be paired anyway?
No doubt the correct number of points may be subject of discussion. The original .trf definition for reporting is about completed tournaments, and .trf usage for pairing is beyond the original idea of the .trf.
B.t.w. I commented the break on line 630 of trf.cpp
if (matchIndex >= tournament.playedRounds)
{
// next line removed by #jph
// break;
}
and then my files were accepted. Would this be a working alternative and/or a recommended one?
Best regards,
JP

weird logic in code.

In this operator you've defined a bool value carry which default is false and you make decisions based on it and in else part you assign a uintmax to it.i am really confused about this part.could you please clarify it?

Burstein system pairings are wrong

The Burstein system pairings seem to be completely messed up, starting from the first round. This was observed in the v5.0.0 64-bit Windows release build and may well affect all the v5.0.0 release builds. It is not present in the corresponding v4.1.0 release build. It is present when v4.1.0 and some earlier versions are compiled using newer GCC versions like GCC 11.

Sorting score groups in Burstein

Hello Jeremy,

I am currently verifying your Burstein engine with the internal one of Sevilla. I run into differences caused by different sorting of score groups (and the floaters). From your documentation I understand that BBP Pairings sorts on Sonneborn-Berger, Buchholz score, Buchholz tiebreak, Median score, Median tiebreak. You calculate the "score" as "tiebreak multiplied with score". Sevilla sorts on Sonneborn-Berger, Buchholz tiebreak and Median tiebreak only. In the FIDE documentation (C4.3.4, point 3.2) "basic pairing principles" this is mentioned too. Of course this results into pairing diffferences from time to time, especially when there are floaters.

Did I miss anything in the (FIDE) documentation, is this a bug in the BBP Pairings engine, maybe a deliberate change, maybe a future Burstein version?

Best regards, JP.

/lib/libc.so.6: version `GLIBC_2.33' not found (required by ./bbpPairings.exe)

Can someone help please?

./bbpPairings.exe
./bbpPairings.exe: /lib/libc.so.6: version GLIBC_2.33' not found (required by ./bbpPairings.exe) ./bbpPairings.exe: /lib/libc.so.6: version GLIBC_2.25' not found (required by ./bbpPairings.exe)
./bbpPairings.exe: /lib/libc.so.6: version GLIBC_2.35' not found (required by ./bbpPairings.exe) ./bbpPairings.exe: /lib/libc.so.6: version GLIBC_2.32' not found (required by ./bbpPairings.exe)
./bbpPairings.exe: /lib/libc.so.6: version GLIBC_2.34' not found (required by ./bbpPairings.exe) ./bbpPairings.exe: /lib/libc.so.6: version GLIBC_2.36' not found (required by ./bbpPairings.exe)
skgronau.de>

skgronau.de> uname -a
Linux gwaay 3.10.0-1160.88.1.el7.x86_64 #1 SMP Tue Mar 7 15:41:52 UTC 2023 x86_6 4 x86_64 x86_64 GNU/Linux

BBP Pairing when manually choosing a PAB

Hello Jeremy,

A Sevilla user created a situation where he preselected a PAB. When the pairing with BBP Pairings was done, some kind of mess existed. The player with the preselected PAB (marked 0000 U) in the .trf was considered the one with a highest score, and another player was rewarded the PAB.

Should this be considered a bug or should I not offer to allow these kind of .trf files? Anyway, the JaVaFo engine paired the same .trf as I desired.

See the attachment, where the intention was that player 17 got the (pre-assigned) PAB.

Best regards, JP.

bbpdut-test.zip

Unsupported optional_cxxflags (gcc 10.3.1)

With gcc 10.3.1 (alpine), I am unable to build due to these unsupported -W flags:

g++: error: unrecognized command-line option '-Wctad-maybe-unsupported'
g++: error: unrecognized command-line option '-Warray-parameter=2'
g++: error: unrecognized command-line option '-Winvalid-imported-macros'
cc1plus: error: command-line option '-Wenum-conversion' is valid for C/ObjC but not for C++ [-Werror]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.