uliGo is a program written by Ulrich Görtz to practice Go problems.
It can be downloaded from http://www.u-go.net/uligo/.
evpsych I tried v 0.2, and it is an awesome concept. However, I find it unintuitive. (Perhaps my intuitions are abnormal :).)
...For example, (1) sometimes it undoes a wrong answer, and sometimes it does not, and you have to undo it. Would be better if it consistently did one or the other, showing you the refutation in a way that avoids needing undoing or requiring undoing for the refutationless move. And it (2) would be nice if, instead of humoring you by refuting your moves and telling you you're wrong no matter what you do, if it would tell you beforehand so you don't try everything just to find out whether your first moves were wrong. Finally, (3) it would be nice if it could be resized larger.
...Other than those issues, I think this is a fantastic concept and I hope it improves. (I am not a Python hacker so my contribution consists of the above paragraph.) I also hope Debian includes all the problem sets.
UlrichGoertz: Thanks for the comments. I am working on a new version right now, so I am interested in other people's opinion on this. If the SGF file with the problem does not contain a refutation to some wrong answer, clearly uliGo cannot do anything but just say that the move was wrong, and undo it.
If a refutation is given, I always thought it would be best (in terms of exercising one's reading ability) not to tell the user that the move was wrong, but just continue playing out that variation until the end (and then say that this was a wrong answer).
I already added an option which tells uliGo not to descend into "wrong" variations, i.e. even if there is a refutation in the SGF file, uliGo will ignore it and just say that the suggested move is wrong, and undo that move.
Any suggestions for other (optional) modifications to uliGo's behavior?
As for (3), I really don't know why I restricted the board size in the current version; that seems really stupid. You will be able to enlarge the board as much as you want, or rather as much as your screen allows, in the next version.
Evpsych: the newer version addresses (2) and (3), but not (1). It is not possible in the to tell you "wrong line of reasoning, but I will humor you until I can't" and refute moves using the same paradigm as wrong moves that do not have refutations.
It is jarring to have some moves result in auto-undo and others result in manual-undo-necessary. Some people probably meditate using uligo. Maybe I'm the only one who is so easily jarred, but you did ask for options, so that's what I'd suggest: allow people to specify the paradigm for with and without. Paradigms should include auto, manual, and a new one: invoke-trying-variations.
Also, it would be nice if there were a left arrow for undo and a right arrow for redo for trying variations. Also, the current left arrow, if pressed by mistake in random mode, perhaps by somebody trying to do an undo, loses all state.
Also, I find it extremely slow. I'll blame python :-).
just some ideas... use them if you like...
- Hi, I love your program. I use it with the joint sgf's from http://www.goproblems.com, since their applet doesn't have your rotation and color-switch options. But in this case the right solution is not always the first variation. It is just marked with the comment RIGHT. Maybe there is a way to make it compatible as an option?
- 3D stones or the option to select own images for stones and board would be nice.
- sound (maybe isn't easy with phyton?), for stones and success
- kind of 'boardsize guesser' or tag option, since sometimes a small problem in a corner or in the center looks a little lost. Therefore an enlarged part of the board would be enough and more attractive. ... On the other hand - just thinking about it - in the direction of your fuzzy stone placement. It could be then possible to place random stones in the 'non-problem-area' to confuse the eye a little more. ...probably not practical...
- random mode which keeps track of the answers. ie. you only get asked random problems which you haven't solved yet correctly.
- ablility to use it as joseki tutor with KogoSJosekiDictionary. Ie. the user (or uligo) plays a first move of a joseki and then uligo (resp. the user) jumps in one of the variations, ie plays a Joseki reply. Now the user (resp. uligo) has to play a reply again... This way one can practice the Joseki in a 'reply mode' and not in the usual (editor) 'exploring mode'. (Also here your rotation and colour-switch options, would be great feature which is not usual for joseki study...) - I guess this is already (partly) possible with the current version, but the file/problem size seems to mess it up
Cool Program! Guess there's more than one Bjoern on Sensei's :-( - Bjoern
UG, thanks for reply. IMO better than not descending into wrong moves is: just say "wrong" and allow descent anyway. -- Evpsych
UlrichGoertz: uliGo 0.3 is now available ... some of the suggestions above are integrated. There also is now a Windows installer, so you don't have to install Python in order to use uliGo on Windows machines anymore.
(moved from WritingAGoProgramToTeachBeginners - pls put in context when editing this page)
Although as written, UliGo is more useful drilling in Life and Death Problems. But someone clever and creative could create a series of 'problems' to cover the basics; after all Volume 1 of Graded Go Problems For Beginners starts with the simpliest atari, simpliest connection, etc.
Grauniad: Or on Palm OS?
bocephus: Sounds like a major undertaking, but Pippy is a stripped down Palm OS Python. I don't know enough about Python to know if the Pippy limitations would affect Uligo or not. Plus, I know the sgf files I use (e.g., Cho Chikun's Encyclopedia Of Life And Death) are larger than the 4k limit, so working with larger files might require something like peepdb, which is a Python module for working with PDB's (Palm Databases).
UlrichGoertz: Python itself is probably not the main problem, but as far as I know the Tkinter toolkit which is used for the graphical user interface is not available for Palm or PocketPC. I also would like to have Uligo or something similar on the Palm, but probably a large portion of the code would have to be rewritten. (On the other hand, it probably would not actually be a big problem to add the basic uligo functionality to an SGF viewer/editor (like PilotGone). Maybe the people who wrote such programs can be bothered to expand them correspondingly ...)
Jetxee?: I don't know if PalmOS is capable to run Tk application. There seems to be a Tcl port, but not Tk. But Tcl/Tk certainly works on PocketPC ( http://wiki.tcl.tk/8688). So, it should be possible to port uliGo to PocketPC. Also, PythonCE declares support for Tk8.4 ( http://pythonce.sourceforge.net/Wikka/Tkinter)
Would it be possible in a future version to add something to translate White <--> Black in the comments in the case of color switch?
I'm translating some "best move" problems into a collection that UliGo can run, but I'm having to generalize into "you" and "your opponent", instead of naming colors. I know that I can turn off color switch, but I think that having it on is worth making these generalizations in the comments.
This would also help with existing problem sets such as the ones from goproblems.
As an aside, because the board rotates I also have to generalize any comment that refers to the board position. Maybe it would be possible to add very simple mappings for this as well? IE you say "left_side" on the original board's comments. UliGo renders the board so that it is turned 180 degrees. The left side is now the right side, so it would say "right side" instead.
uxs: I just noticed that by checking "do descend into wrong variations" somewhere in the menu, "problem (1)" (see above for the details) has been solved. Great work !
chrpa: I have a question. Is it possible to change the speed of the answer of computer? It is too quick to even catch the answer. Thank you.
Andy Pierce: The program broke for me on MacOS when I initially invoked the program in directory X, and subsequently moved the program to directory Y. Solution was to delete the uligo.def file which contained a link to the out of date path.
Awesome program and problem collections! Very helpful (I hope).
marnen?: Recent versions of Python have deprecated the whrandom library, which UliGo relies on. Fortunately, there's a modified version in the Ubuntu package archive at https://launchpad.net/ubuntu/hardy/+source/uligo/0.3-6 which removes this dependency. For Ubuntu, you can probably just install the uligo package, but on Mac OS X, you may need to apply the patch:
- Download and unarchive https://launchpad.net/ubuntu/hardy/+source/uligo/0.3-6/+files/uligo_0.3.orig.tar.gz (the basic codebase). Make a note of the directory name; I'll call this path ULIGO.
- Download and unarchive https://launchpad.net/ubuntu/hardy/+source/uligo/0.3-6/+files/uligo_0.3-6.diff.gz (the patchfile). I'll call the path to this file PATCH.
- At a command prompt, change to the Uligo install directory (type cd ULIGO , where ULIGO is the path mentioned above).
- Now apply the patch: type patch -p1 <PATCH .
- You should now be able to launch UliGo.