Josekle Development

Yeah, maybe just blocking too long submits is the best way. I think I need to look into making a nice, non-blocking, pop-up alert, that clears itself with a timer.

1 Like

@okonomichiyaki, I’ve been meaning to ask, how does this code snippet (from getNumber() in app.js) work?

    const dayMillis = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
    const start = new Date(2022, 1, 1);
    const today = new Date();
    return Math.ceil(Math.abs((start - today) / dayMillis));

The reference start date seems to be January 1, 2022, right? However, it seems that the daily game number behaves as if February, 1, 2022 is the start date?

3 Likes

The code is actually starting Feb 1. The Date constructor uses 0 based index for months (but 1 based index for days), so 1/1 is Feb 1.

3 Likes

LOL :joy: this is the most javascript thing ever

5 Likes

yeah I tried to rationalize it somehow but gave up

image

3 Likes

This is so unintuitive and yet it makes sense once you work with an array for the names of the months [“Jan”, “Feb”, …].
Maybe a comment should be added, or const FEBRUARY = 1.

2 Likes

If we consider BC years to be negative numbers, i.e., 5 BC = -5, and since there is no year zero, i.e., it goes straight from 1 BC to 1 AD, then it seems perfectly natural that the years should be “zero-indexed” as well, i.e., 1 AD = 0, and the current year 2022 AD should be entered as 2021.

“i.e.” is Latin for “Internet Explorer”.

5 Likes

That’s always confused me. Like if you look at Genesis, they say “the first day” at the end of the day, after the first day has passed. So like the idea of the “1” marker being at the border of the first and second thing in a series isn’t even new. When did things get complicated with the absence of zero? I don’t get it :joy:

The yijing has 64 hexagrams that are numbered as 1-64, but have six-digit binary numbers associated with them 0-63, which I always thought was a cool fact

1 Like

But, beloved, do not forget this one thing, that with the Lord one day is as a thousand years, and a thousand years as one day.

2 Peter 3:8

1 Like

Well that certainly confuses the system

1 Like

Here is a roadmap of game design changes that I am thinking about undertaking:

  1. Display the solution length in the “title” (next to the puzzle) number.
    • It would look something like “Josekle #X (Y moves[, hard])”, where the part in square brackets only appears when the game is in hard mode.
  2. Remove the “Share Discourse” and “Share Discord” buttons, leaving only the “Share” button.
    • Everyone can now just share the raw emojis without hiding length.
  3. Remove the newline between the “Share” and “OGS Explorer” buttons.
  4. Reject submissions that are too long with a non-blocking, pop-up notification.
    • This “pop-up” should just be a small notice div that temporarily appears.
  5. Adjust the emojis hints panel to reflect where in sequence a submission departs from the joseki dictionary tree, by changing the emojis to squares starting at that point.
    • Later changes should involve deciding/figuring how to denote this with the on-board and on-tree hints.
    • The squares will also be copied into the share text.

Any objections or comments on the above?

I’ve broken this down above, since each item can be made as an incremental change. Along the way, I may also make some internal design changes to streamline things, and make things easier to for later adaptation for fusekle and forward hint propagation.

5 Likes

First draft of the 9x9 opening collection complete! It accidentally ended up being exactly 81 variations :grin:

9x9 even openings.sgf (2.5 KB)

(I was going to upload the exported puzzles.js file as well, but Discourse doesn’t allow it so I’ll leave the exporting to you @yebellz)

All these openings are even-ish according to KataGo (area scoring, 7.0 komi). However, some have a slight advantage (<1 point) for one side, which could perhaps turn into a real advantage with deeper search. More importantly, a few positions may be even at superhuman level but favor one side at kyu level, if very precise play is required to keep equality.

Also, some variations may contain un-natural looking moves that are hard to come up with on your own. I fear that these may not be fun to play in the normal mode, but the oneColor mode would make them much more accessible.

Perhaps I should try to exclude such variations, but of course it will vary from human to human what looks un-natural, and if I try to be on the safe side it might be difficult to get a large enough variety of variations.

Lots of variations are also simple and easily recognizable (I’ve included most of the named openings on GoQuest for instance). So the difficulty will be different from day to day, which seems ok to me.

I’m thinking we should do some small-scale playtesting first, before making Fusekle available on the official Josekle page. If the normal mode is too frustrating, we can remove some of the harder variations, or just enable oneColor by default.

6 Likes

Can it tell us the name after we get it right? :smiley:

5 Likes

They are quite a small proportion of the total set, and I often added a few more moves at the end to make it a reasonable length (3-4 moves is a bit short for this game), so there’s not much that can be easily named. But I imagine this is something people may comment on when discussing their results for the day, if they do recognize it!

For example, 1-4 here is the “Slider” opening:

I’ve seen 1-4 played many times, but 5 is usually at C3. So I hope there can be some learning opportunities like “Oh cool, you can play this alternate move in this common opening”.

(C3 is still a good move too by the way, E3 is just another option)

3 Likes

Awesome, I will try to get a beta version of Fusekle launched later, maybe within a day or two.

I’m thinking that I should do items 1-3 on the list above, and then fork the code into a new repo that would be named Fusekle.

I think that would be the easiest way to manage it since there are some Josekle specific parts that need to be slightly modified, and it is just cleaner to do so with a new repo. Of course, I can manually push and pull useful changes between the two as both codebases evolve.

At first, we can make it clear that everything is still in beta mode. OneColor can be on by default, with an option to switch it off instead.

3 Likes

Pull request has been sent for these changes. Working on launching the Fusekle fork next.

3 Likes

I like the length limit and pop-up, it works really well! Maybe a similar pop up would be good to have when clicking the share button that just says “copied to clipboard!” or something so users are confident something’s happened?

I always click the button like four times to make sure :sweat_smile:

Edit: meant “something”, not “soldering” :see_no_evil:

3 Likes

Yeah, that’s a good idea. I’ll add that.

Another thing to do in parallel, for where it is supported, is to figure out how some apps pop-up the mobile OS sharing menu, which facilitates sending the text directly to various communication apps.

What do you mean by “soldering”? Is that just supposed to be “something”?

1 Like

Yes :see_no_evil:

1 Like

I just tried it in a different browser and it didn’t work. Is this change just taking some time to go through? Idk how that works

1 Like