Fractional Multicolour Go

I’m in favour of allowing suicide as well

2 Likes

This weekend I spent most of my time on a c# coding project for playing fractional go. Here are some pictures of what it looks like:

(Please ignore the “Neues Spiel” button, that’s not yet functional.)

The UI is very simple so far, and most notably this can’t connect two people over the internet. But the logic of when stones are captured is implemented (hopefully correctly). And the nice thing about the code is that it’s fairly easy to change the setup. You just need to change the list of colours and the list of colour combinations to create all kinds of game modes.

I tried to upload the whole thing to github in case somebody is interested: https://github.com/merowin/Fractional-Go

Unfortunately I don’t have much experience with github and am unsure if I did it correctly. If you try to download, please tell me if it was successful!

4 Likes

I’ve been thinking about how to highlight recently placed stones in fractional multicolor go.

Here’s what I’ve come up with:

Currently it’s just some css code, that adds markers to all intersections in @Vsotvep’s tool:

div.intersection div::after {
  background-color: #dbdbdb;
  width: 20%;
  height: 20%;
  position: absolute;
  content: "";
  top: 40%;
  left: 40%;
  mix-blend-mode: difference;
}

But I think it’s cool, that this can be done with css so easily. I didn’t know about mix-blend-mode before.

5 Likes

I learnt about it trying to fix some pages that were broken by my dark-mode browser extension (e.g. ones with pictures of text).

But great fix, I don’t have time now to change stuff, but perhaps tomorrow

2 Likes

Sadly it wouldn’t work great with some gray stones, because #dbdbdb - CertainGray = CertainGray.

#dbdbdb could be changed to white of course, but that doesn’t solve the problem with gray stones and I thought #dbdbdb fit the currently available colors better than white.

1 Like

I’ve been experimenting with @Vsotvep’s tool, trying to add a button to add @Jon_Ko’s marks. I’d like to make a pull request, but can’t push my branch (presumably because I’m missing the rights). Should I fork the repository, and if I do, can I make a pull request?

(And Vsotvep would you accept such a feature, even though it’s probably made in a clumsy way? I’m thinking we could use it to mark the recently placed stones in our ongoing game).

3 Likes

If you walk me through the steps of how I can merge :stuck_out_tongue:

I don’t understand anything about github…

3 Likes

It’s all pretty straightforward to do, but yes, you have to first fork, make the change in your version of the repo, and then submit a pull request. For @Vsotvep to accept it, it should also be as straightforward as clicking a single button, provided that the changes are just on top of the current head and hence no conflicts need to be resolved.

Another possibility is for @Vsotvep to grant @martin3141 the explicit rights to make commits to his repo directly, but that requires a bit of trust.

4 Likes

Maybe this guide helps?

TL;DR basically what @yebellz said

5 Likes

I’ve merged it, and it seems to work.


The main problem, is that “fork”, “repo”, “pull request”, “current head” and “commit” are all terms that I don’t fully understand, to be completely honest :stuck_out_tongue:

I often feel that with programmers there is a whole jargon that is never really explained, but that one just “has to understand from experience”. Including in the first course on programming that I took, where the teacher would explain how to program in C, talking about malloc, pointers and structs, without ever really explaining what those terms meant, more or less expecting that people who enroll in a computer science class are already aware of it. It’s one reason why I preferred mathematics, where everything leads back to a definition that is written out somewhere explicitly, often repeated ad tedium in the introductory sections of articles and books.

6 Likes

Thank you for merging! :smile:

Yes I totally agree. It took me some time to get used to it, and still I don’t fully understand what’s going on in the back.
In Mathematics everything is very rigorous, which I find pleasant. But for many people, rigorous definitions are even more unfamiliar :sweat_smile:

4 Likes

I think with any technical field you’re going to get a lot of “jargon”. A good teacher will stop to make sure everyone understands what things mean, but it’s easy to forget especially if a lot of folks are coming in with prior knowledge.

I mean even in math there’s stuff like set notation, very simple meanings, but if you skip the intro you’re gonna have a bad time :joy:

4 Likes

Actually, the definition of a “set” requires some very complicated mathematics to fully appreciate. The idea that a set is “a collection of mathematical objects” is great to build intuition, but ultimately too vague to work with, leading to Russellian paradoxes. But defining a set in the technically precise way as “an element of a model of set theory” sounds like something between an empty statement and a circular definition, even if you already understand what a model is. It’s like stating that a number is “those things you study in number theory”, which again is technically more correct than most other descriptions you might find of what a number is. (I guess there are probably quite a few mathematical philosophers who’d disagree with that sentiment, though)

3 Likes

doesn’t really sound like

Unless you were not wondering about the concepts, but just the terminology. But then, if one knows what pointers are, it’s not hard to understand why they are called pointers, that’s different when it comes to malloc and struct though.

1 Like

Basically the teacher told us what to type in order for the program to compile to something that functions as specified, without really going into detail of what happened ‘under the hood’, since that latter part was to be explained in a different course (that I didn’t take, because I wasn’t a CS student).

Some mathematics teachers do this as well, letting you learn the trigonometry rules without ever drawing a circle…

2 Likes

Three players, each player has a primary color used for identifying their territory and a secondary color which is also applied to all their stones and is the primary color of another player.

example setup
"config": {
    "players": [
      {
        "primaryColor": "red",
        "secondaryColor": "green"
      },
      {
        "primaryColor": "green",
        "secondaryColor": "blue"
      },
      {
        "primaryColor": "blue",
        "secondaryColor": "red"
      }
    ],
    "board": {
      "type": "grid",
      "width": 7,
      "height": 7
    }
  }

Can this be fun or are stones resulting from collisions too hard to capture?

3 Likes

Yes, I would love to try it :clap: :star_struck:

1 Like

I’d like to try too, but I wouldn’t be surprised, if it doesn’t really work. :smile:

1 Like

Unfortunately I have not been in touch lately with respect to the development of the variant server. How are things going? Can I contribute something so we can try playing this?
Could be with simultaneous or sequential moves :slightly_smiling_face:

I’ve just pushed a crude form of this (with simultaneous moves) to a branch on the repository, so it might work soon, but it needs more testing. Coming up with some neat test cases would be helpful. :slightly_smiling_face:

1 Like