Free Go

    Keywords: Variant, Software, Online Go

What is FreeGo?

FreeGo is software for playing Go on a board without lines, developed originally by Bildstein. He has been so kind to make it available under the MIT License. Sebastian is currently continuing the work on this project; the latest version is available [ext] here.

Installation

To run FreeGo, you will need to install the latest version of the [ext] .NET framework (anyone know a better URL?). Apart from that, all you need is the executable.

Versions

The current version is 0.4.0, which was released on 17 Jan 2005. Sorry for taking so long releasing a newer version after 0.2.0 on 28 Dec 2004. My only excuse is that I kept thinking "I'll just do this little bit more and then release it."

For a list of all past and planned versions and exactly what they do, see /Versions.

A change to the rules

After implementing the rule on capture and testing the software a bit, I finally became convinced that it doesn't make sense for stones to be used to capture stones of the same colour (Black stones capturing other Black stones, and similarly for White). I can't remember exactly what the realisation was that chaged my mind. But the new rule is that a stone can not contribute to the death of a friendly stone. Here is an example:
The marked stone is dead The marked stone is alive
In the first example, the marked stone is dead. In the second example, the marked stone is not connected to the White stone above, but it is still alive because but for the above White stone, which is alive, the White stone below would be alive, so it is alive as it stands..

axd:

  1. I'm very interested to know how you came to the conclusion that suicide is not OK.
  2. please update the example links, the pages are not accessible. (doh... this dates from 2005...)

Herman: I don't know if suicide is the correct term here, he is talking about killing other stones of your own color, but not the stone you just played, while suicide traditionally includes killing the stone you just played. Perhaps fratricide would be a better term to make the distinction.

Discussion

Make suggestions! I'm doing it in a way that I think is reasonable, but if you have any ideas for improvements, I'd love to hear. Just make sure your ideas aren't already scheduled for inclusion in future versions.

Also, now that I'm releasing the source code, I'd live to hear what people think of my (GUI and/or OO) design and coding. Yes, that's right, I'm asking for criticism ;) I'd espescially like to hear from any C# programmers out there, who could tell me how I'm not taking full advantage of what C# has to offer (be that in terms of language constructs or the object model), because this is my first C# project.

Peterius: I apologize for this comment, but I simply must say it. This sounds like an interesting idea but I will not use a program that is based on .NET or C#. They are Microsoft attempts to monopolize and control an entire programming language and they should not EVER be used. They should be strongly boycotted by every free programmer out there. If this is rewritten in C++ or C like it should have been in the first place, then I would consider looking at it. I mean no offense to say this but using .NET and C# hurts all programmers, everywhere, and hurts computer science in general. I'm sure you didn't know so its forgiveable. ;-)

Bildstein: I understand your argument and your stance on .NET/C#. It is a position that I have seen a few times, but I do not agree. I can't see how Microsoft can monopolise and control C#. As I understand it, and correct me if I am wrong, Microsoft has made the details of .NET and C# freely available, and they are allowing other people to create their own compilers and run-time environments that are compatible with Microsoft's own.

(Funny, I never thought I'd see the day when I would be defending Microsoft.)

Even if you are right, and .NET/C# is an attempt by Microsoft to monopolise the industry, it will not stop me from using it. I am a professional software developer, and skills in C# and .NET are valuable to me, so I will continue to hone these skill by developing in and for .NET.

But I do respect your opinion, and your passion, and I'm interested to hear what else you have to say about the issue. When this discussion gets older or bigger or concluded, we can move it to /Discussion.

And of course, thanks for your interest :)

Peterius: I suppose I'm a bit of an anti Microsoft zealot in my defense of my distrust of C#, nevertheless:

  • First, I do know that Microsoft has forced C# on a couple colleges by giving them computer grants only if they use C#. Due to Microsoft's size and aggressive business policies, its impossible to really see if C# will stand on its own. There is a sudden preponderance of C# books in any large bookstore, almost equaling that of the other standard languages. One has to wonder why this happened so fast. But these could be considered minor complaints.
  • Two, as far as I know, C# is, at most, ever so slightly better than java and ever so slightly easier to use than C++. However, due to Microsoft's influence, it forces software developers to change languages for no good reason. This is a waste when someone may have been quite good with another, standard language. The world doesn't need more buggy, exploit ridden software. We were doing quite well at ironing out issues in the compilers and idiosyncracies of languages like java. C++ is a more extensive language and Java has more real world experience and support out there. And for most things, we should be using C anyway. Object orientation takes one away from the machine even if computers are now fast enough to overwhelm that. Computers are not object oriented, they are imperitive, so we should, when it makes sense, write that way.
  • Three, it seems to me that programming languages should be created by intelligent groups of people and by universities. For a company to make up their own language, nearly identical to two existing languages, a language that really serves no purpose whatsoever except to increase Microsoft's influence... that's pretty shady. And even if Microsoft allows "compatible" compilers, (They couldn't not if the language is public) you can bet that there are some strange copyrights on the language.
  • Four, everything Microsoft has ever made has been uniformly garbage. From buggy Mac OS X word software that has no backward compatibility whatsoever, to XP that sometimes has trouble probing even slightly atypical PCI setups to the years and years and billions of dollars spent dealing with issues created by the mediocrity of Windows. Over the years Microsoft has exploited users and developers by forcing people to use their poorly written software. They clearly cut corners everywhere and can get away with it due to their software monopoly. Have you ever looked through the assembly for something compiled with a Microsoft compiler like visual studio? Its total crap. Someone should do a comparison of runtime speed of Codewarrior or some other third party compiler and a Microsoft compiler with a sizeable program.

I'll admit, I'm choosing my points as I go along. I haven't argued something like this in a long time and its not going very well. ;-) But my basic feeling here is that C# serves no purpose except Microsoft's. Its not for the public good, we have plenty of similar languages that are well known, well liked, and well used. If one has to add one more silly syntactical feature to already overloaded languages, then academia should do a new standard like C99 for C, except for C++ or java. Why learn a language forcibly distributed by the worst, most ruthless software company in the world when there are a bunch of other languages in public use that are probably better in at least some ways, maybe all?

axd: I absolutely, wholeheartedly, unconditionally agree with this. Similar to what happened with javascript (and Java, by the way) Introducing C# is yet another attempt of purely commercial nature to control the market, and shove C++ aside. Microsoft Office is not bad, but I have the impression that their OSes are increasingly no more than libraries to support their software, rather than provide robust and independent platforms to run a computer. Microsoft is part of the C++ committee, so why would they put effort in a new language? Better is to contribute in making the language more stable, and concentrate on producing decent products. I think efforts should be made to avoid C# in a non-commercial environment; in the commercial one, C# is already invading and I think it is too late to revert this. Because if a dependency arises on C#, there is no guarantee that in the future this will not break code, for example. In C++, this has always been one big issue, but I never belive Microsoft can guarantee that: as long as revenue does not go down, they will do whatever they like with their language.

Bildstein: Well, thanks for your opinions, both of you. I guess if I'd have known there was so much anti-C# sentiment out there, I may have made the effort to develop my project in Java instead of C#. Let it be known that, although I disagree with you on some points, you do raise valid issues and I do respect your point of view.

Tas: The program won't work on my computer, it says "a nescecary file: mscorree.dll was not found".

Tas: arh, forgot to download the microsoft-crap, works now, no problem.

Tas: I've tested it a little. Too cool! Can't wait to try and play against an oponent. Its a bit slow, and there's plenty of helping functions that should be made, to help place the stones in the best way. But it is great already.Can you think of a way to make scoring continous to? So that the area of teritory counts direcly. The problem would be that walls surounding territory would have to be solidly connected, and that wouldn't always be possible to do. Maybe lines between centers of stones closer than sqr(2) times the radius (stones that cannot be cut) should sepperate territory to?

cipnrkorvo?: I tried the game and it's really a great application, based on a great idea! I'll speak about it at my university go club, see what they think about it. I hope it will catch on, and maybe someday be considered a good way for go players to practice differently, thinking out of the box. here are a few simple esthetic suggestions for the program:

1) the "auras" around the stones should be simple circles (one thin line). it would be less invading

2) the background should be a wood-like color, instead of green

3) if you could choose the diameter of the pieces, it would be like being able to choose the board size (13*13,19*19...). either it could be a number you enter, or simply the choice between "small, medium, big"

4) I agree with Tas, if you managed to implement continuous territory recognition, it would give an idea as to how big your territory is, AND it could actually show you by making your territory a certain color. the territory would look like the shape of a country, instead of having a little green line in the middle.

5) more than 2 players could work, in the same way it works in normal go. that could be an extra freedom FreeGo could offer.

Anyway, keep it up! This is a great contribution to the go community!


This is a copy of the living page "Free Go" at Sensei's Library.
(OC) 2016 the Authors, published under the OpenContent License V1.0.
[Welcome to Sensei's Library!]
StartingPoints
ReferenceSection
About