Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

next: Enhance the variation read and display #412

Merged
merged 5 commits into from
Nov 8, 2018

Conversation

zsalch
Copy link
Contributor

@zsalch zsalch commented Oct 31, 2018

  1. Support more sgf variation format and enhance the variation display.
  2. New move number in the branch, the option is 'new-move-number-in-branch', default on.

@featurecat
Copy link
Owner

Even though there has been no review I am tempted to merge this. Thoughts? @OlivierBlanvillain

@OlivierBlanvillain
Copy link
Contributor

The diff is +347-76, I think it deserves a review ^^'

@zsalch
Copy link
Contributor Author

zsalch commented Nov 7, 2018

Here are some tests: #2 #9

src/main/java/featurecat/lizzie/Config.java Outdated Show resolved Hide resolved
public Optional<int[]> lastMove;
public int[] moveNumberList;
public boolean blackToPlay;
public boolean dummy;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does dummy mean here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are some sgf file contains the AB/AW/AE attributes. For these attributes, it is better to create a dummy BoardData.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still, I don't understand. Why do we need dummy BoardData?

@@ -6,9 +6,11 @@

public class BoardData {
public int moveNumber;
public int moveMNNumber;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need to store 2 move numbers? Can't we merge these two into one field?

Copy link
Contributor Author

@zsalch zsalch Nov 7, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In current code, the moveNumber actual keeps the BoardData sequence number.
Many logic depend on the moveNumber.
The moveMNNumber for display move number, such as 'MN' attribute, move number in the branch.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not really happy with keeping all this state around, its quite hard to follow to be honest. Do you think we could we instead recompute moveNumber on the fly? I also think the naming doesn't help here. Maybe we should rename these things as follows:

  • moveNumber → depth
  • moveMNNumber → numberlabel

WDYT?

@@ -72,6 +76,11 @@ public static BoardData empty(int size) {
*/
public void addProperty(String key, String value) {
SGFParser.addProperty(properties, key, value);
if ("N".equals(key) && comment.isEmpty()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't really like to have SGF parsing spreading all over the code base, it seams that this code doesn't belong to the BoardData class but should be moved to SGFParser.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I think these code needs to be refactored and optimized in the next version.

next = next.next().get();
}
BoardHistoryNode end = isMain ? null : start;
while (next.previous().isPresent() && next != end) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be clearer if you inline that condition as follows:

&& (isMain || next != start)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

src/main/java/featurecat/lizzie/gui/VariationTree.java Outdated Show resolved Hide resolved
@featurecat featurecat merged commit 6a33d28 into featurecat:next Nov 8, 2018
@featurecat
Copy link
Owner

Sorry for not enough time to review the changes further, I have to hurry and release 0.6. I agree about no SGF parsing outside of the SGF parser classes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants