How did you learn web development?

A decade ago I dropped out of high school, but couldn’t get back to studies easily, so I started with a programming course where I learnt frontend web dev

5 Likes

A more direct game related to regular expressions is just Regex Golf

You can just play it directly in the browser

Relevant xkcd

6 Likes

oh no, i’m doomed… y’all are turning me into a daily golfer, i can’t deal with this much direct sunlight T.T

edit: onoooo i’ve just discovered CSSBattle which is basically CSS golf T.T

5 Likes

Is the meaning of the phrase ‘syntactically correct’ generally context-dependent?

SGF properties (FF[4])
As long as the given move is syntactically correct it should be executed.

“How to execute a Go move” states that a move overwrites anything previously at the intersection (i.e. a B move where a White stone already exists is legal). I assume this is what the emphasis on syntactical correctness is referring to. But what about moves outside the range of the board itself (aside from ‘tt’ as ‘pass’ for boards size 19 and smaller)? I’m having trouble finding anywhere in the specification that such moves are actually disallowed, and my understanding of SGF syntax would include such a move in ‘syntactical correctness’.

It seems reasonably obvious that moves outside the range of the board are impossible, but I don’t know whether that’s actually relevant to composing a legal SGF. And I could imagine a couple different ways to execute out-of-range moves, besides.

And no, the “extensive explanation with examples ([which] should leave no question unanswered […])” did not answer this question :see_no_evil:.

5 Likes

Yeah I kind of imagined your idea of properly formatted would be similar to what syntactically correct would mean.

Then it’s up to the sgf parser and game engine to deal with the consequences and exceptions :slight_smile:

3 Likes

If one is to take this phrase literally, I think you’re right that you’d have to somehow execute out-of-bounds moves.

But IMO, it’s mainly referring to illegal positions within the bounds. In addition to:

we might also need to consider illegal moves like repeated positions (ko) or moves without liberties. (though it’s unclear to me whether that would be implemented as an immediate self-capture or just an illegal stone)

2 Likes

it seems to me like SGF FF[5] - Move vs. Adding Stones says that moves without liberties are self-capture. it doesn’t specifically say that executing ko wouldn’t be self-capture, but it would be odd to me if it were :thinking:

of course that’s just for replaying existing SGFs. i assume an app wouldn’t allow such moves if they’re against the given rules

1 Like

I’m looking at the proposed changes for FF[5] and they look really neat!! I wonder why they were never completed.

1 Like

I interpret that page as stating that the B and W properties even allow plainly illegal moves (even ones that overwrite existing stones, as well as giving no mind to ko). The point, I believe, is that the SGF format should be flexible in allowing even illegal moves to be illustrated for the purpose of making explanatory diagrams.

Another wrinkle is that editing the board with the AB, AW, and AE properties does not trigger any captures to happen, and thus can create nodes that store an illegal board state (with chains that have no liberties). Further, when stones are played with B and W, they only potentially trigger adjacent captures (as noted on that page), which can resolve some situations with chains without liberties, but still leave other non-adjacent chains without liberties still on the board.

Well, some apps may allow one to create such SGFs, but have some sort of mechanism that one has to override. For example, with my BesoGo app, you have to “ctrl+click” in order to play a move that either overwrites an existing stone, violates the simple ko rule (note: no checks are made for longer ko cycles), or commits suicide. This behavior of BesoGo does not depend on what the rules are set to in the game info (as that field could itself be a bit ambiguous, misspelled, in a different language, etc.), so if playing with NZ rules, one would have to use the Ctrl+Click override in order to play a legal suicidal move.

I have seen other apps simply go into an unrecoverable error (or outright reject) when given a file with an overwriting move (even though it is explicitly allowed by the SGF standard).

5 Likes