Josekle Development

feel free to add natural boards or other styles etc from Besogo. I’m just a flat style lover stuck in the last decade’s design trends :wink:

ok so first step here is more joseki and we can tune the difficulty to see what is good. eventually I guess we can just use number of moves in OJE but for now here’s how to collect them, hopefully not cumbersome:

  1. Open this link which is debug mode
  2. Input some harder joseki. Try just a few, then we’ll do more
  3. After you’ll have multiple variations in your tree
  4. Click the secret button that should be visible now: “copy puzzles”
  5. it should copy into your clipboard in the right format
  6. send it to me. it’s not really a spoiler but feel free to message me privately

we should just try a couple to make sure everything is working, before anyone spends a lot of time, I don’t want to waste your time if my code is buggy :sweat_smile:

if we can get like 10-15 hard ones I’ll add them for the stronger folks with an option to switch the mode :green_heart::yellow_heart::white_heart:

1 Like

Just for some extra inspiration, here is the color theme used by
There is no colorblind option, the default mode is already colorblind-friendly (at least for my particular colorblindness). This has the advantage that you eliminate confusion when discussing the game and sharing your results.

Not sure if these particular colors will look good on the goban, but since only two different colors are needed I certainly think it should be possible to find a theme that both looks good and is distinguishable for everybody :slight_smile:


I also like flat styles, and @antonTobi’s color suggestions to design for colorblindness by default is a great idea. Another consideration is the dark theme… Let me give that a try as well. From @Vsotvep’s multicolor Go tool, we also have a nice colorblind-friendly palette.


I wish to declare that I’m not a flat-style lover, it’s just easy to implement :stuck_out_tongue:


Updated color themes (using purple/green as suggested by @antonTobi) live on my dev fork: Josekle

Also available are dark mode and real stone mode (for @Vsotvep).

Note: we also need to make the rest of the page dark for true dark mode.

Pull request sent to @michiakig.

Screenshots with #2 spoilers




merged, I think the purple looks pretty nice :crystal_ball:
the on board hints are also useful, looking forward to trying them out …

there is something weird with the date math, the next puzzle drops at a weird time, I’ll try to fix it

any takers?


@Vsotvep curated a list of 30 joseki for this game: The Hurt / Heal Joseki Game!

Some are easy and common, but there are also some quite long and complicated ones as well.


also this is extremely funny to me, at work for years we literally had an image containing a yellow icon in our source code which was named purple.jpg :rofl: because no one could be bothered to fix it everywhere the file was referenced, so it was just swapped out

const YELLOW = "🟣";

The tree nodes are highlighted when it has been submitted, and the highlighting shows the best hint given for that node. So, if you guess everything that misses, you’ll get a red X. If at least one purple is found (and no greens), it will be highlighted with purple. If there are any greens, it will be green.

All of the hints are aggregated back into the empty root node (which cannot be submitted), and hence the root node is highlighted with the best hint found so far. When there are both green and yellow purple hints for a particular point in the root node, it will be highlighted as green to indicate that at least one previous submission found the right timing of that point.

I guess it is also natural to think of color names as abstract concepts not directly related to actual colors. I just noticed that in the previous paragraph, I had accidentally still called those hints as “yellow”.


This has been looking better and better! But the coloring in the tree was extremely confusing. Why not color each node according to the actual result for that node?


One of these has the first three correct, but it’s impossible to tell which one.

And what do the letters on the board represent?


What do you mean? Like somehow indicating how many hints were green/purple? I’m not too sure how to cleanly represent such information.

Or do you mean propagating hints into other unsubmitted nodes?

I guess the game could always do more to assist the player with the processing and presentation of hints, but it is a puzzle after all.

The “A, B, C, …” letters just indicate where the next move (and variations) are located. There’s actually a button on the interface to turn these off, and you can switch between showing the “child” variations (next moves already present in the tree) vs showing “sibling” variations (alternate moves to the current one already present in the tree).


This is what I took it to mean, and I think it would be a nice QoL feature.

1 Like

this is what I was going to look into. but I’m not sure if I will have time before tomorrow, so if someone else wants to tackle it, go for it

I didn’t think it’s too much assistance because it’s information the player can just deduce easily from the existing hints, comparing emoji lists with the tree

1 Like

I meant that for submitted nodes, you display the hints right on the nodes themselves. Aren’t they a property of the node, after all? Maybe there’s something I still don’t understand here.

For example, it was particularly confusing when I made moves 1-2, and “2” was green in the tree, while the first ball was green in the hints section below. I was wondering whether the hints showed the last move first and played incorrectly a few times as a result.


I think it’s giving information that’s already available, just presenting it more cleanly. Like how most Wordle adaptions not only color the guesses, but also color the OSK as well.


Oh, I see now. That’s a good point, and it should be easy to do that, by having the tree check the hint status at each node’s move.

EDIT: Actually, now I’m thinking of the best way to do this. One naive approach would be to propagate backwards all hints along the path from the submitted node until one reaches the root. However, with some inputs, it could be possible to have an intermediate node with a move that should be purple, but that stone is later captured and replaced with a correct green move. So, we need to careful about propagating backwards all hints, but rather only show the hints up to move X for the node of move X (except that the root should still accumulate all hints, but does not need to be highlighted with anything in the tree).

I think it would be somewhat cleaner to do this while internalizing the solution checking function into the editor code, rather than using a bunch of call-backs to the editor object.

@michiakig, are you currently already playing with something related to this feature? I could take a stab at it, if not, but I would need to edit both app.js and besogo.all.js so I want to avoid any conflicting changes with whatever you might be currently working on, in order to make merging easier later.


With the hints displayed on the game tree, the emoji display at the bottom of the page becomes almost entirely redundant (but we should still keep it for debugging mode, and of course generate such text for sharing purposes), and the submit button could be integrated alongside the delete button. However, we still need to figure out how to indicate whether the hint was too long or too short.

Any suggestions for how to indicate this, and for icons for the “Submit” and “Delete” buttons?

1 Like

I’m not working on anything for a bit, feel free to edit anything just pull the latest from my repo

it is a bit more complicated with captures, hasn’t thought of that


New hint behavior is now live on the dev fork: Josekle
Pull request sent.

@Feijoa, is this what you had in mind?

Note: hard refresh (like Ctrl+F5, depending on your browser) might be needed in order ensure pulling the latest code.


Good news, I have got time to join the development now :partying_face:.
Bad news, I’m still not done with my other stuff.