Banksia - Yet another Chess Tournament Manager

Discussion of chess software programming and technical issues.

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
User avatar
phhnguyen
Posts: 441
Joined: Wed Apr 21, 2010 2:58 am
Location: Australia
Full name: Nguyen Hong Pham
Contact:

Re: Banksia - Yet another Chess Tournament Manager

Post by phhnguyen » Wed Jul 31, 2019 10:32 pm

Guenther wrote:
Wed Jul 31, 2019 5:18 pm
Is this an ordinary pgn produced by Banksia?
I am asking because there is no eval/depth + times - I guess they can be saved?
Yes, that information can be turned on/off via JSON controller file.
JSON:

Code: Select all

  "logs" : 
  {
      "pgn" :
      {
          "mode" : true,
          "one file" : true,
          "game title surfix" : true,
          "path" : "/BanksiaMatch/logs/games.pgn",
          "rich info" : true,
          "guide" : "one file: if false, games are stored in multi files using game indexes as surfix; game title surfix: use players names, results for file name surfix, affective only when 'one file' is false; rich info: log more info such as scores, depths, elapses"
      },
    "engine" :
    {

A PGN with some more info:

Code: Select all

[Event 	"Computer event"]
[Site 	"Somewhere on Earth"]
[Date 	"2019.08.01"]
[Round 	"1"]
[White 	"Crafty-25.2"]
[Black 	"Asymptote 0.6.2"]
[Result 	"0-1"]
[TimeControl 	"40/6:0.5"]
[Time 	"08:16:00"]
[Board 	"1"]
[Termination 	"adjudication"]
[ECO 	"B06"]
[Opening 	"Robatsch defence"]
[Variant 	"two knights, Suttles variation"]

1. e4 g6 2. d4 Bg7 3. Nc3 d6 4. Nf3 c6
5. a4 {B06: Robatsch defence, two knights, Suttles variation}  a5 6. Be2 Nf6 7. O-O O-O 8. h3 Qc7
9. Be3 e5 10. Qd2 Nbd7 {End of opening}  11. Rad1 {+0.8/14 0.2}  d5 {-0.5/12 0.8}  12. exd5 {+0.6/14 0.2}  Nxd5 {-0.6/15 1.1} 
13. Nxd5 {+0.8/16 0.2}  cxd5 {-0.6/17 1.0}  14. dxe5 {+0.6/17 0.2}  Nxe5 {-0.9/16 0.7}  15. Nxe5 {+0.6/15 0.2}  Bxe5 {-0.9/17 0.9}  16. Qxd5 {+0.8/16 0.2}  Bf5 {-0.9/14 0.8} 
17. Qb5 {+0.8/13 0.2}  Be4 {-1.2/12 0.9}  18. Bb6 {+1.2/14 0.5}  Qb8 {-1.2/12 0.7}  19. Qb3 {+1.5/14 0.2}  Bh2+ {-1.5/13 0.8}  20. Kh1 {+1.7/10 0.0}  Bf4 {-1.4/14 0.8} 
21. f3 {+1.5/17 0.6}  Bc6 {-1.4/15 0.7}  22. Bc4 {+1.6/17 0.5}  Qe5 {-1.2/15 0.7}  23. Rfe1 {+1.4/16 0.4}  Qg5 {-1.2/14 0.7}  24. Kg1 {+1.4/16 0.2}  Rac8 {-1.2/14 0.7} 
25. Kf1 {+1.5/16 0.5}  Bc7 {-1.1/14 0.7}  26. Bxc7 {+1.3/16 1.0}  Rxc7 {-1.2/15 0.6}  27. Bd5 {+1.1/16 0.5}  Rd8 {-1.1/15 0.6}  28. Bxc6 {+1.1/17 0.2}  Rxc6 {-1.1/15 0.6} 
29. Qe3 {+0.9/17 0.9}  Qf6 {-1.1/17 0.6}  30. Rxd8+ {+0.9/16 0.2}  Qxd8 {-1.1/18 0.6}  31. c3 {+0.9/16 0.3}  Re6 {-0.9/60 0.6}  32. Qc1 {+1.0/16 0.4}  Rd6 {-0.9/70 0.6} 
33. Qf4 {+1.0/15 0.2}  h5 {-0.9/80 0.6}  34. Qe3 {+0.9/14 0.8}  Re6 {-0.8/56 0.6}  35. Qc1 {+0.9/15 0.3}  Rd6 {-0.8/59 0.6}  36. Qf4 {+0.9/14 0.2}  h4 {-0.8/68 0.5} 
37. b4 {+1.0/13 0.2}  Rc6 {-0.8/58 0.5}  38. Re3 {+1.0/15 0.6}  axb4 {-0.8/52 0.5}  39. cxb4 {+1.0/13 0.2}  Rc1+ {-0.6/41 0.5}  40. Re1 {+0.4/17 0.3}  Qd3+ {+0.0/51 0.5} 
41. Kf2 {+0.2/17 0.4}  Rxe1 {+0.0/19 0.9}  42. Kxe1 {+0.2/16 0.2}  Qb1+ {+0.0/21 1.1}  43. Ke2 {+0.1/16 0.4}  Qc2+ {+0.0/21 0.6}  44. Qd2 {+0.1/16 0.3}  Qxa4 {+0.0/20 1.0} 
45. Ke3 {+0.0/15 0.2}  Qb3+ {+0.1/14 0.7}  46. Kf2 {+0.0/16 0.4}  Qc4 {+0.1/18 1.0}  47. Qb2 {+0.0/18 0.3}  Kh7 {+0.2/15 0.9}  48. Ke3 {+0.0/16 0.2}  Qe6+ {+0.1/15 0.9} 
49. Kd3 {+0.0/17 0.2}  b5 {+0.1/16 0.8}  50. Qd4 {+0.0/15 0.2}  Qe1 {+0.1/16 0.8}  51. Qf4 {+0.0/15 0.2}  Kg8 {+0.2/16 0.8}  52. Qd2 {+0.0/16 0.3}  Qe5 {+0.2/14 0.7} 
53. Qf2 {+0.0/17 0.3}  Qd5+ {+0.2/16 0.7}  54. Qd4 {+0.0/18 0.2}  Qa2 {+0.2/17 0.7}  55. Qd8+ {+0.0/16 0.2}  Kg7 {+0.0/16 0.7}  56. Qxh4 {+0.0/16 0.2}  Qxg2 {+0.1/16 0.7} 
57. Qd4+ {+0.0/16 0.2}  f6 {+0.1/16 0.7}  58. Qd7+ {+0.0/16 0.2}  Kh6 {+0.2/17 0.6}  59. Qg4 {+0.0/17 0.4}  Qf1+ {+0.2/14 0.6}  60. Ke3 {+0.0/15 0.2}  Qe1+ {+0.2/15 0.6} 
61. Kd3 {+0.0/16 0.2}  f5 {+0.6/16 0.6}  62. Qd4 {+0.0/16 0.2}  Kh5 {+0.9/15 0.6}  63. Qc5 {-0.8/15 1.7}  Kh4 {+1.2/13 0.6}  64. Kd4 {-1.3/15 0.6}  Qe8 {+1.2/13 0.6} 
65. Qc7 {-1.1/14 0.8}  Qh8+ {+1.2/13 0.6}  66. Ke3 {-1.0/14 0.7}  Kxh3 {+1.2/14 0.6}  67. Qc5 {-1.3/15 0.6}  Qb8 {+1.3/15 0.6}  68. Ke2 {-1.3/15 0.3}  Qh2+ {+1.3/14 0.5} 
69. Ke3 {-1.3/16 0.2}  Qg1+ {+1.3/39 0.5}  70. Kf4 {-1.6/16 0.6}  Qg3+ {+1.3/42 0.5}  71. Ke3 {-1.6/10 0.0}  Qb8 {+1.3/59 0.5}  72. Ke2 {+0.0/27 0.2}  Qh2+ {+1.3/67 0.5} 
73. Ke3 {+0.0/24 0.4}  f4+ {+1.3/57 0.5}  74. Kd3 {-1.1/15 0.3}  Qa2 {+1.5/57 0.5}  75. Ke4 {-1.6/14 0.9}  Qd2 {+1.3/53 0.5}  76. Qc8+ {-2.2/15 0.7}  Kh2 {+1.5/57 0.5} 
77. Qc5 {-2.2/15 0.2}  Kh1 {+1.5/50 0.5}  78. Ke5 {-2.5/15 0.6}  Qe3+ {+2.1/63 0.5}  79. Kf6 {-2.7/15 0.4}  Qxf3 {+2.1/60 0.5}  80. Qxb5 {-3.0/15 0.7}  Qg2 {+2.4/127 0.5} 
81. Qe5 {-4.1/17 0.6}  f3 {+2.9/16 1.0}  82. Qe1+ {-4.1/15 0.2}  Qg1 {+3.6/18 1.1}  83. Qh4+ {-4.2/15 0.3}  Qh2 {+4.1/20 1.0}  84. Qe1+ {-4.1/15 0.2}  Kg2 {+4.1/19 1.0} 
85. Qe4 {-4.1/17 0.2}  Qg3 {+4.2/18 0.9}  86. Qd5 {-5.1/16 2.0}  Kh2 {+5.1/14 0.6}  87. Qc4 {-10.3/15 1.0}  f2 {+5.1/17 0.9}  88. Kg7 {-11.7/16 2.0}  g5 {+5.1/17 0.8} 
89. Kg6 {-11.8/15 0.3}  Qf3 {+5.2/17 0.8}  90. Qf1 {-11.9/16 0.3}  g4 {+10.9/14 0.8}  91. Qa1 {-27.5/12 0.9}  f1=Q {+13.1/14 0.6}  92. Qa2+ {-327.5/13 0.3}  Q1e2 {+0.0/16 0.7} 
93. Qxe2+ 0-1

https://banksiagui.com
A freeware chess GUI, based on opensource Banksia - the chess tournament manager

Ferdy
Posts: 4111
Joined: Sun Aug 10, 2008 1:15 pm
Location: Philippines

Re: Banksia - Yet another Chess Tournament Manager

Post by Ferdy » Thu Aug 01, 2019 3:36 am

I run help in console and have some suggestions.

Code: Select all

Banksia, Chess Tournament Manager, by Nguyen Pham - version 3.0
Usage: banksia <option>
Options:
  -h               Show this help message
  -jsonpath PATH   Main json path to manage the tournament
  -yes             auto answer yes when being ask (to resume a tournament)
  -no              auto answer no when being ask
  -u               update
  -c               concurrency (for updating only)
  -d PATH          main engines' folder, may have subfolder (for updating only)
  -v on|off        turn on/off verbose (default on)
  -profile         profile engines (cpu, mem, threads)

Examples:
  banksia -jsonpath c:\tour.json
  banksia -u -d c:\mainenginefolder
  banksia -u -c 4 -jsonpath c:\tour.json -d c:\mainenginefolder
  To update tour.json and engines.json in current folder:
  banksia -u -c 4
Suggestions:

(1)

Code: Select all

  -jsonpath PATH   Main json path to manage the tournament
Use -t instead of -jsonpath. -t is for tournament, note there are other json file such as engines.json and playing.json. Also put the example immediately, so that it is easier to find what is the use of the option.

Code: Select all

-t PATH    A path to json tour file and is also used to run/manage tournament/matches, ex.
           banksia -t c:\t5.json, to run a tournament whose conditions are specified in t5.json file.

(2)

Code: Select all

  -yes             auto answer yes when being ask (to resume a tournament)
How a about

Code: Select all

-yes    A flag to auto answer yes when being ask (to resume a tournament). ex.
        banksia -yes -t c:\t5.json, to resume the tournament that was stopped before, without waiting for y/n answer.

(3)

Code: Select all

  -u               update
This one needs more explanation, how about

Code: Select all

-u    A flag to create/update engines and tournament json files. ex. 
      banksia -u -d c:\myengines, to create/update engines.json file and tour.json file, where
      engines are located in c:\myengines. engines.json and tour.json files will be located on
      the folder where banksia.exe is.
      banksia -u -t c:\t5.json, to update t5.json file, it will not run the tournament.

(4)

Code: Select all

  -c               concurrency (for updating only)
How about

Code: Select all

-c VALUE    Concurrency, it is used to execute a task faster. ex.
      banksia -u -c 4, to update tour.json and engines.json files.
      banksia -u -c 4 -d c:\myengines, to create and update engines.json file based on the engines found
      in c:\myengines.

(5)

Code: Select all

  -d PATH          main engines' folder, may have subfolder (for updating only)
How about

Code: Select all

-d PATH    PATH is the location of the engines and may contain subfolders. It is also used to
           create engines.json and tour.json files. ex.    
           banksia -u -d c:\myengines, will create engines.json and tour.json files at the folder where
           banksia.exe is located. banksia will search the engines located in c:\myengines in this case.

(6) Also add a FAQ section in console after the user types banksia -h.

Code: Select all

FAQ:
Q1. How to create engines.json file?
A1. banksia -u -d c:\chess\engines
where:
    c:\chess\engines is the path of your engines and engines.json file will be
    created in the same folder where banksia.exe is.
That command line also creates a tour.json file that can be edited and used to
run a tournament.

Q2. How to run a tournament?
A2. Create a tournament file say tour.json then type,
banksia -t c:\banksia\tour.json


User avatar
phhnguyen
Posts: 441
Joined: Wed Apr 21, 2010 2:58 am
Location: Australia
Full name: Nguyen Hong Pham
Contact:

Re: Banksia - Yet another Chess Tournament Manager

Post by phhnguyen » Thu Aug 01, 2019 6:41 am

Thank you a lot, Ferdy! Will add to the next release.
https://banksiagui.com
A freeware chess GUI, based on opensource Banksia - the chess tournament manager

Post Reply