* distributed option

* i18n, pause, etc

* fixes galore

* max buffer etc

* test override config

* maxgame

* visit

* contribute menu

* restore vars

* i18n

* actually start

* retry distr and errors

* pw eye / move speed

* cfg/no log

* shutdown fix

* shutdown fix

* download fix

* wut

* stats and desc

* esc fix

* Omit terminate queries from KataGoEngine.queries. (#353)

* press key h to clear current node analysis. (#352)

* clear current node all analysis

* add reset key binding

* reset all analysis off.

* code refactor

* code change according to review.

* remove useless variable

* code review changes

* clean up reset node

* oops

* Setup position feature (#354)

* go for zebras

* setup working!

* uhh

* tweak

* img

* fix i18n

* AEEEEEEEEEE and stop

* link in readme

* new game options for edit/new/setup (#357)

* new game options for edit/new/setup

* feedback

* fix

* ai thoughts

* no tristate cb

* branch fixing (#358)

* new game options for edit/new/setup

* feedback

* fix

* ai thoughts

* no tristate cb

* fix comma etc

* normal katago

* kata

* dll

* save window pos/size

* BAD comma

* new linux binary + allow default engine

* fix

* unused icon, build mac

* exe

* player new game fix

* fix i18n

* test test

* just print

* 한국어

* –활성화

* Add new Traditional Chinese translation (#362)

Improve some translations as well.

* cn (#363)

* cn

* rm old

* rm old

* informal you

* mo

* jp (#364)

* config and readme

* mo

* kgtraining

* fix score

* lower stddev a bit

* tweak weights

* 1.8 French Po (#365)

* fr and getattr fix

* -DBUILD_DISTRIBUTED=1

* openssl

* openssl

* openssl

* openssl

* config

* jp (num undos) (#366)

* clarify undo in en, po->mo

* fix player name

* new kata

* new kata

* Load game option save config (#367)

* in the load dialog,  "load fast analysis" and "rewind to the start" option ,save to config file

* in the load dialog,  "load fast analysis" and "rewind to the start" option ,save to config file

* default option

* remove useless override

* save check state when file dialog's submit event ,

* save config in callback

* readme

* active games

* de

* log games as json always

* black

* Russian localization for 1.8.0 (#375)

* ru

Co-authored-by: pdeblanc <peter@spaceandgames.com>
Co-authored-by: xiaoyifang <105986+xiaoyifang@users.noreply.github.com>
Co-authored-by: Liou, Guan-Cheng <Tony-Liou@users.noreply.github.com>
Co-authored-by: kaorahi <38910552+kaorahi@users.noreply.github.com>
Co-authored-by: Dontbtme <66470440+Dontbtme@users.noreply.github.com>
Co-authored-by: Alexander Kiselev <satoshi.yoda.register.264@gmail.com>
This commit is contained in:
authored and GitHub committed 2021-03-05 20:40:48 +01:00
1 parent 34b3f92d20
commit c5587bf6e1
58 files changed
+5902 -752

No files matched your search

+306 -72
View File
@@ -10,6 +10,7 @@
#:set CP_SPACING Theme.CP_SPACING
#:set CP_SMALL_SPACING Theme.CP_SMALL_SPACING
#:set CP_PADDING Theme.CP_PADDING
#:set EPSILON 1e-9
#:import TOP_MOVE_OPTIONS katrain.core.constants.TOP_MOVE_OPTIONS
@@ -31,15 +32,18 @@
<LabelledPathInput>:
font_size: sp(16)
multiline: False
write_tab: False
helper_text_mode: "on_error"
helper_text: i18n._("file not found")
<LabelledIntInput>:
font_size: sp(Theme.INPUT_FONT_SIZE)
write_tab: False
size_hint: 0.5, None
<LabelledFloatInput>:
font_size: sp(Theme.INPUT_FONT_SIZE)
write_tab: False
size_hint: 0.5, None
<LabelledCheckBox>:
@@ -252,13 +256,172 @@
text: i18n._("update settings")
on_press: root.update_config(True)
<ContributePopup>:
katago_path: katago_path
katago_files: katago_files
katago_download_progress_box: katago_download_progress_box
error: error
DescriptionLabel:
text: i18n._('katago settings')
font_size: sp(Theme.DESC_FONT_SIZE) * 1.25
GridLayout:
cols: 2
rows: 5
size_hint: 1, 6
spacing: CP_SPACING
DescriptionLabel:
text: i18n._("engine:katago")
size_hint: 0.33, 1
AnchorLayout:
LabelledPathInput:
id: katago_path
input_property: "contribute/katago"
hint_text: i18n._("engine:katago:hint")
on_text: root.check_katas()
AnchorLayout:
size_hint: 0.33, 1
AutoSizedRoundedRectangleButton:
text: i18n._("download katago button")
on_press: root.download_katas()
size_hint_y: 0.66
AnchorLayout:
KeyValueSpinner:
id: katago_files
text: ''
text_autoupdate: True
-text_size: self.width, None
-halign: 'center'
-shorten: True
-shorten_from: 'right'
on_select:
if self.selected_index != 0: katago_path.text = self.value_keys[self.selected_index]
size_hint_y: 0.7
sync_height_frac: 1.0
-font_size: self.height * 0.5
-background_color: [*[c*255/88 for c in Theme.BOX_BACKGROUND_COLOR[:3]], 1] # compensate for texture
DescriptionLabel:
text: i18n._("engine:config")
size_hint: 0.33, 1
AnchorLayout:
LabelledPathInput:
input_property: "contribute/config"
DescriptionLabel:
size_hint: 0.2, 1
text: i18n._("contribute:maxgames")
BoxLayout:
AnchorLayout:
size_hint: 0.5, 1
LabelledIntInput:
input_property: "contribute/maxgames"
SmallDescriptionLabel:
text: i18n._("contribute:maxgames:hint")
DescriptionLabel:
size_hint: 0.2, 1
text: i18n._("contribute:ownership")
BoxLayout:
AnchorLayout:
size_hint: 0.5, 1
LabelledCheckBox:
input_property: "contribute/ownership"
SmallDescriptionLabel:
text: i18n._("contribute:ownership:hint")
DescriptionLabel:
text: i18n._('contribute:viewer settings')
font_size: sp(Theme.DESC_FONT_SIZE) * 1.25
GridLayout:
cols: 3
rows: 2
size_hint: 1, 2
spacing: CP_SPACING
DescriptionLabel:
size_hint: 0.5, 1
text: i18n._("contribute:savesgf")
AnchorLayout:
size_hint: 0.5, 1
LabelledCheckBox:
input_property: "contribute/savesgf"
SmallDescriptionLabel:
text: i18n._("contribute:savesgf:hint")
DescriptionLabel:
size_hint: 0.5, 1
text: i18n._("contribute:movespeed")
AnchorLayout:
size_hint: 0.5, 1
LabelledFloatInput:
input_property: "contribute/movespeed"
SmallDescriptionLabel:
text: i18n._("contribute:movespeed:hint")
DescriptionLabel:
text: i18n._('contribute:login')
font_size: sp(Theme.DESC_FONT_SIZE) * 1.25
AnchorLayout:
size_hint: 1,2
GridLayout:
cols: 3
rows: 2
size_hint: 0.85,1
DescriptionLabel:
size_hint: 0.35, 1
text: i18n._("contribute:username")
AnchorLayout:
size_hint: 0.65, 1
LabelledTextInput:
input_property: "contribute/username"
write_tab: False
AnchorLayout:
size_hint: 0.5, 1
AutoSizedRoundedRectangleButton:
text: i18n._("contribute:register")
size_hint: 0.8, 0.7
on_press: app.webbrowser('contribute:signup')
DescriptionLabel:
size_hint: 0.35, 1
text: i18n._("contribute:password")
AnchorLayout:
size_hint: 0.65, 1
LabelledTextInput:
input_property: "contribute/password"
write_tab: False
password: True
id: password
AnchorLayout:
anchor_x: 'left'
size_hint: 0.5, 1
MDIconButton:
icon: "eye"
pos_hint: {"center_x": 0, "center_y": .5}
on_press: password.password = not password.password
DescriptionLabel:
text: ''
id: error
font_size: sp(Theme.DESC_FONT_SIZE)
color: Theme.ERROR_BORDER_COLOR
size_hint: 1, 0.5
MDBoxLayout:
orientation: 'horizontal'
size_hint: 1, 1
MDBoxLayout:
size_hint_x: 2.5 if self.children else 0.0001
orientation: 'vertical'
id: katago_download_progress_box
AnchorLayout:
AutoSizedRoundedRectangleButton:
padding_x: 15
size_hint: None,None
height: sp(40)
text: i18n._("contribute:start")
on_press: root.start_contributing()
<ConfigTeacherPopup>
options_grid: options_grid
themes_spinner: themes_spinner
GridLayout:
cols: 5
rows: 7
size_hint: 1, 7
size_hint: 1, 6.5
id: options_grid
DescriptionLabel:
text: i18n._("dot color")
@@ -271,10 +434,10 @@
DescriptionLabel:
text: i18n._("save dots")
AnchorLayout:
size_hint: 1, 4
size_hint: 1, 4.25
GridLayout:
cols: 2
rows: 5
rows: 6
padding: 4
size_hint: 0.95, 1
DescriptionLabel:
@@ -290,7 +453,7 @@
text: i18n._("stats on top move")
AnchorLayout:
BoxLayout:
size_hint: 1, 0.8
size_hint: 1, 0.75
orientation: 'horizontal'
LabelledSpinner:
id: top_moves_show
@@ -307,12 +470,21 @@
DescriptionLabel:
font_size: sp(Theme.DESC_FONT_SIZE) * 0.8
text: i18n._("show stats if")
line_height: 0.75
AnchorLayout:
LabelledIntInput:
input_property: "trainer/low_visits"
DescriptionLabel:
font_size: sp(Theme.DESC_FONT_SIZE) * 0.8
text: i18n._("show last n dots")
line_height: 0.75
AnchorLayout:
LabelledIntInput:
input_property: "trainer/eval_on_show_last"
DescriptionLabel:
font_size: sp(Theme.DESC_FONT_SIZE) * 0.8
text: i18n._("show ai dots")
line_height: 0.75
AnchorLayout:
LabelledCheckBox:
input_property: "trainer/eval_show_ai"
@@ -323,10 +495,10 @@
LabelledCheckBox:
input_property: "trainer/save_analysis"
AnchorLayout:
size_hint: 1,1.5
size_hint: 1,1
AutoSizedRoundedRectangleButton:
padding_x: 15
size_hint: None,0.5
size_hint: None,0.75
text: i18n._("update teacher")
on_press: root.update_config(True)
@@ -370,19 +542,50 @@
on_press: root.update_config(True)
<NewGameModeButton@SizedToggleButton>:
inactive_background_color: Theme.LIGHTER_BACKGROUND_COLOR
active_background_color: Theme.PLAY_ANALYZE_TAB_COLOR
ripple_color: Theme.LIGHTER_BACKGROUND_COLOR
text_color: self.inactive_background_color if self.state=='down' else self.active_background_color
size_hint: 0.33,1
_font_size: self.height * 0.45
group: 'new_game_mode'
allow_no_selection: False
<HideyBoxLayout@BoxLayout>:
opacity: 1 if self.size_hint_y > EPSILON else 0
<NewGamePopup>:
restart: restart
rules_spinner: rules_spinner
km: km
player_setup: player_setup
player_name: {"W": white_player_name, "B": black_player_name}
BoxLayout:
size_hint: 1, 0.66
BoxLayout:
size_hint: 0.7,0.7
pos_hint: {'center_x':0.5,'center_y':0.5}
NewGameModeButton:
text: i18n._('newgame')
id: play
state: 'down'
on_state: if self.state=='down': root.mode = 'newgame'
NewGameModeButton:
text: i18n._('setupposition')
id: analyze
on_state: if self.state=='down': root.mode = 'setupposition'
NewGameModeButton:
text: i18n._('editgame')
id: analyze
on_state: if self.state=='down': root.mode = 'editgame'
PlayerSetupBlock:
size_hint: 1, 2
id: player_setup
GridLayout:
rows: 7
rows: 3
cols: 3
size_hint: 1, 3
size_hint: 1, 1.5
spacing: CP_SPACING
padding: CP_PADDING
DescriptionLabel:
@@ -402,52 +605,14 @@
hint_text: i18n._("white player name hint")
size_hint: 0.75, None
DescriptionLabel:
text: i18n._("board size")
text: i18n._("ruleset")
AnchorLayout:
LabelledTextInput:
text: '19'
id: boardsize
input_property: 'game/size'
write_tab: False
size_hint: 0.5, None
hint_text: i18n._("non square board hint")
AnchorLayout:
MDBoxLayout:
adaptive_size: True
spacing: CP_SPACING
QuickInputButton:
text: '9'
target: boardsize
QuickInputButton:
text: '13'
target: boardsize
QuickInputButton:
text: '19'
target: boardsize
DescriptionLabel:
text: i18n._("handicap")
AnchorLayout:
LabelledIntInput:
text: '0'
input_property: 'game/handicap'
write_tab: False
id: handicap
AnchorLayout:
MDBoxLayout:
adaptive_size: True
spacing: CP_SPACING
QuickInputButton:
text: '0'
on_left_press: km.text='6.5'
target: handicap
QuickInputButton:
text: '2'
on_left_press: km.text='0.5'
target: handicap
QuickInputButton:
text: '9'
on_left_press: km.text='0.5'
target: handicap
LabelledSpinner:
size_hint: 0.95,0.8
input_property: 'game/rules'
font_size: sp(Theme.DESC_FONT_SIZE)
id: rules_spinner
Label:
DescriptionLabel:
text: i18n._("komi")
AnchorLayout:
@@ -468,15 +633,62 @@
QuickInputButton:
text: '7.5'
on_left_press: km.text=self.text
DescriptionLabel:
text: i18n._("ruleset")
AnchorLayout:
LabelledSpinner:
size_hint: 0.95,0.8
input_property: 'game/rules'
font_size: sp(Theme.DESC_FONT_SIZE)
id: rules_spinner
Label:
HideyBoxLayout:
size_hint_y: 1 if root.mode != 'editgame' else EPSILON
id: board_setup_section
GridLayout:
cols: 3
rows: 2
DescriptionLabel:
text: i18n._("board size")
AnchorLayout:
LabelledTextInput:
text: '19'
id: boardsize
input_property: 'game/size'
write_tab: False
size_hint: 0.5, None
hint_text: i18n._("non square board hint")
AnchorLayout:
MDBoxLayout:
adaptive_size: True
spacing: CP_SPACING
QuickInputButton:
text: '9'
target: boardsize
QuickInputButton:
text: '13'
target: boardsize
QuickInputButton:
text: '19'
target: boardsize
DescriptionLabel:
text: i18n._("handicap")
AnchorLayout:
LabelledIntInput:
text: '0'
input_property: 'game/handicap'
write_tab: False
id: handicap
AnchorLayout:
MDBoxLayout:
adaptive_size: True
spacing: CP_SPACING
QuickInputButton:
text: '0'
on_left_press: km.text='6.5'
target: handicap
QuickInputButton:
text: '2'
on_left_press: km.text='0.5'
target: handicap
QuickInputButton:
text: '9'
on_left_press: km.text='0.5'
target: handicap
HideyBoxLayout:
id: new_game_section
size_hint_y: 1.5 if root.mode == 'newgame' else EPSILON
DescriptionLabel:
text: i18n._('clear cache')
AnchorLayout:
@@ -485,21 +697,40 @@
input_property: 'game/clear_cache'
SmallDescriptionLabel:
text: i18n._('avoids replaying')
HideyBoxLayout:
id: setup_game_section
size_hint_y: 1.5 if root.mode == 'setupposition' else EPSILON
orientation: 'vertical'
SmallDescriptionLabel:
text: i18n._('setup position explanation')
size_hint: 1, 1.5
GridLayout:
cols: 2
rows: 2
size_hint: 1,2
DescriptionLabel:
text: i18n._('setup position black score')
AnchorLayout:
LabelledSelectionSlider:
input_property: 'game/setup_advantage'
key_option: True
values: [(pt,f"{pt}") for pt in range(-150,151)]
DescriptionLabel:
text: i18n._('setup position move number')
AnchorLayout:
LabelledSelectionSlider:
input_property: 'game/setup_move'
key_option: True
values: [(mv,str(mv)) for mv in range(50,251)]
BoxLayout:
size_hint_y: 2.5 if root.mode == 'editgame' else EPSILON
HideyBoxLayout:
size_hint: 1,0.75
AnchorLayout:
size_hint: 0.5, 1
AutoSizedRoundedRectangleButton:
padding_x: 15
size_hint: None,0.5
_font_size: self.height*0.35
text: i18n._("change current game")
on_press: root.update_game()
AnchorLayout:
AutoSizedRoundedRectangleButton:
padding_x: 15
size_hint: None,0.66
text: i18n._("new game")
text: i18n._(root.mode)
on_press: root.update_config(True)
@@ -562,6 +793,7 @@
<ReAnalyzeGamePopup>:
visits: visits
orientation: 'vertical'
button: button
BoxLayout:
size_hint: 1, 1.5
orientation: 'horizontal'
@@ -574,6 +806,7 @@
AnchorLayout:
size_hint: 1, 1
AutoSizedRoundedRectangleButton:
id: button
padding_x: 15
size_hint: None,0.5
text: i18n._("analysis:game") # re-use string
@@ -581,7 +814,6 @@
root.katrain("analyze-extra", "game", visits=visits.input_value)
root.popup.dismiss()
<LoadSGFPopup>:
fast: fast
rewind: rewind
@@ -599,6 +831,7 @@
LabelledCheckBox:
id: fast
size_hint: 0.05,1
input_property: "general/load_fast_analysis"
DescriptionLabel:
text: i18n._("load sgf rewind")
halign: 'right'
@@ -607,6 +840,7 @@
id: rewind
active: True
size_hint: 0.05,1
input_property: "general/load_sgf_rewind"
I18NFileBrowser:
id: filesel
multiselect: False