1.8.0 (#356)
* 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:
58 files changed
+5902
-752
No files matched your search
+306
-72
@@ -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
|
||||
|
||||
Reference in new issue
Block a user