edit: I didn't realize that Chinmay Patil already had one up. I have joined forces with him and the link below has been updated.
Chinmay Patil has created a Google custom search engine for go. You can see it here.
Of course, if you have more sites to add (or you want to be a maintainer of the engine), let me know. Through comments is fine.
Thursday, June 21, 2007
Thursday, May 24, 2007
Road-map to the Middle Kyus
This post is to basically outline and present a road-map to breaking the 20-15k barrier. There is, of course, nothing special about 20 or 15k specifically, but the idea is that a player has advanced from a total beginner to a hobbiest. It is based on my personal experiences in moving from a 30+k to present day (14k on KGS).
Existing guides seem to be focused either on the absolute beginner learning the rules, or on more advanced players where the guides focus on more narrow topics. This is meant to bridge the gap between; it is meant to basically take a player up to around my current level as efficiently and optimally as possible.
My take and experience in this has led me towards an opinion that seems not to be expressed much. Namely, I believe that the key for rapid advancement through the upper kyus after a solid base has been established is the understanding of the beginning and early game. My experience and what I've gathered from talking with others is that there exists so much confusion and inefficiency in early play, that it is difficult to get a good, balanced game with others of appropriate skill. Way too many times a game with a person of equal or lesser skill immediately turns into a losing uphill battle, making it very difficult to play with (and hence learn from) stronger players.
The path consists of three areas, the first two forming the base on which the strategy of the third must build:
Close quarters combat
Territorial concerns
Strong opening and early game (global concerns)
Basic close combat is the first essential skill to establish, and can be done well through 9x9 games and solving problems.
9x9 games are the best way to advance your close combat ability quickly, but are usually quite hard to find. Normally, the players you can find are so advanced beyond you when you're starting out that little can be gained. Therefore, what I actually did was I got a ROM of HnG for the GBA, and used its different levels of computer ability to advance my ability. I was able to literally advance through the ladder from the beginning to the end, and my close combat skill went up enormously - all on my own time and without struggling to find other players whose skill didn't decisively eclipse mine. Having the ROM also allowed me to speed up their computer, eliminating the largest complaint of the game. Of course, you should wean yourself off it as soon as you're able to beat it, but by that point you should have much greater understanding of close combat. After HnG, you should be ready to try your hand with GnuGo, and try to find other players to play with. Teaching new players the game and giving them handicap stones will require you to learn aggressive play. It will also be giving back somewhat to the community, and they will usually provide a bit of competition for your own growth to try and stay ahead of them.
Some key things to understand are:
Learn to avoid common mistakes.
Learn about stones in atari on the second line.
Learn not to make unnecessary moves
Get some basic reading skill to read a few moves into the future.
Along with the above, is understanding life and death. The second volume of Learning to Play Go covers some basic shapes of life and death. The most beneficial thing toward a basic understanding of life and death, however, is problems. HnG has a couple hundred of those to work through. Once you're reasonably well with these problems, Gobase has the Korean Academy problems, and the first set should provide the patterns and thinking needed to finalize this base in close combat.
An important point on doing these problems is to force yourself to think and read out everything, not relying on any guessing/failing!
Dealing with territory is the next essential skill, this can be done well through 13x13 games.
You should learn how and when to hane to increase your own territory and decrease your opponents. You should learn where weak points are and when you must defend/exploit them. You should learn some basics of pushing into your opponents territory to vastly reduce his score. You should be able to recognize where an opponent may cut and hurt you. You should have a small understanding of where an invasion might be possible (e.g. the 3-3 point invasion). You should understand when to make quicker moves rather than slower ones. You should understand ladders, potential ladders, and when cutting points need not be defended because of these. You should recognize potentials for series of ataris and double ataris. You should know how to flee for life. You should also pick up an intuition for basic shape.
All of these things that you should learn basically come to you through experience. So fire up HnG or later GnuGo and play lot of 13x13 games. Of course humans are even better if you can find ones of appropriate skill.
With this base skill established, you should now be ready for the strategic part of this road-map: Understanding the beginning.
My own personal experience (and the experience of every beginner that I've talked to) is that when I was playing 19x19, I really had no idea where or what to play for the first 50-100 some moves. I had no concept of acquiring territory, building thickness, extending, big plays, moyo, or proper responses to approaches. I was unable to acquire this knowledge and sound strategy through playing many games, and I understood little when watching the games of others. I clearly needed something to get me started and teach me the strategy. My main tool and resource for advancement thus far has been reading and re-reading the first 50-100 or so pages of Elementary Go Vol. 1 - In the Beginning. (I have also heard good things about Opening Theory Made Easy)
While this book was definitely over my head, I was able to improve my games immensely and, more important than rising in rank, I was now able to play games that adequately represented my ability. Those pages were easily 9 stones for me in strength. Understand that theory and strategy is probably further advanced than where you are at, so don't be adverse to leaving the book until you have more experience - know that understanding the context of what's going on is required to understand the strategy presented.
In addition to that book, I would recommend a beginner understand that after playing urgent moves, look to tenuki. While doing this, keep in mind the whole global/local balance. Remember that handicap stones are for influence, not territory, so over defensive play should be avoided. Remember to keep an eye on the 3-3 point invasion, and wait until the best time to make/defend it. Also, look for plays that accomplish your set purpose and another simultaneously so as to make your moves efficient.
Back what you learn up with lots of 19x19 games, and go back to review the basics and strategy, you'll be surprised how much you can pick up with some context.
An additional and concluding step in the guide is to get a good player to do a teaching game with you, and listen to their advice as to what you're still missing. I personally had NannyOgg help me out: though I would normally be wary of volunteering someone for them, she seems especially benevolent. I'm sure you can ask her or anyone else who's stronger for a teaching game.
If you need help getting access to any of the resources mentioned, feel free to contact me (comments is fine).
Existing guides seem to be focused either on the absolute beginner learning the rules, or on more advanced players where the guides focus on more narrow topics. This is meant to bridge the gap between; it is meant to basically take a player up to around my current level as efficiently and optimally as possible.
My take and experience in this has led me towards an opinion that seems not to be expressed much. Namely, I believe that the key for rapid advancement through the upper kyus after a solid base has been established is the understanding of the beginning and early game. My experience and what I've gathered from talking with others is that there exists so much confusion and inefficiency in early play, that it is difficult to get a good, balanced game with others of appropriate skill. Way too many times a game with a person of equal or lesser skill immediately turns into a losing uphill battle, making it very difficult to play with (and hence learn from) stronger players.
The path consists of three areas, the first two forming the base on which the strategy of the third must build:
Close quarters combat
Territorial concerns
Strong opening and early game (global concerns)
Basic close combat is the first essential skill to establish, and can be done well through 9x9 games and solving problems.
9x9 games are the best way to advance your close combat ability quickly, but are usually quite hard to find. Normally, the players you can find are so advanced beyond you when you're starting out that little can be gained. Therefore, what I actually did was I got a ROM of HnG for the GBA, and used its different levels of computer ability to advance my ability. I was able to literally advance through the ladder from the beginning to the end, and my close combat skill went up enormously - all on my own time and without struggling to find other players whose skill didn't decisively eclipse mine. Having the ROM also allowed me to speed up their computer, eliminating the largest complaint of the game. Of course, you should wean yourself off it as soon as you're able to beat it, but by that point you should have much greater understanding of close combat. After HnG, you should be ready to try your hand with GnuGo, and try to find other players to play with. Teaching new players the game and giving them handicap stones will require you to learn aggressive play. It will also be giving back somewhat to the community, and they will usually provide a bit of competition for your own growth to try and stay ahead of them.
Some key things to understand are:
Learn to avoid common mistakes.
Learn about stones in atari on the second line.
Learn not to make unnecessary moves
Get some basic reading skill to read a few moves into the future.
Along with the above, is understanding life and death. The second volume of Learning to Play Go covers some basic shapes of life and death. The most beneficial thing toward a basic understanding of life and death, however, is problems. HnG has a couple hundred of those to work through. Once you're reasonably well with these problems, Gobase has the Korean Academy problems, and the first set should provide the patterns and thinking needed to finalize this base in close combat.
An important point on doing these problems is to force yourself to think and read out everything, not relying on any guessing/failing!
Dealing with territory is the next essential skill, this can be done well through 13x13 games.
You should learn how and when to hane to increase your own territory and decrease your opponents. You should learn where weak points are and when you must defend/exploit them. You should learn some basics of pushing into your opponents territory to vastly reduce his score. You should be able to recognize where an opponent may cut and hurt you. You should have a small understanding of where an invasion might be possible (e.g. the 3-3 point invasion). You should understand when to make quicker moves rather than slower ones. You should understand ladders, potential ladders, and when cutting points need not be defended because of these. You should recognize potentials for series of ataris and double ataris. You should know how to flee for life. You should also pick up an intuition for basic shape.
All of these things that you should learn basically come to you through experience. So fire up HnG or later GnuGo and play lot of 13x13 games. Of course humans are even better if you can find ones of appropriate skill.
With this base skill established, you should now be ready for the strategic part of this road-map: Understanding the beginning.
My own personal experience (and the experience of every beginner that I've talked to) is that when I was playing 19x19, I really had no idea where or what to play for the first 50-100 some moves. I had no concept of acquiring territory, building thickness, extending, big plays, moyo, or proper responses to approaches. I was unable to acquire this knowledge and sound strategy through playing many games, and I understood little when watching the games of others. I clearly needed something to get me started and teach me the strategy. My main tool and resource for advancement thus far has been reading and re-reading the first 50-100 or so pages of Elementary Go Vol. 1 - In the Beginning. (I have also heard good things about Opening Theory Made Easy)
While this book was definitely over my head, I was able to improve my games immensely and, more important than rising in rank, I was now able to play games that adequately represented my ability. Those pages were easily 9 stones for me in strength. Understand that theory and strategy is probably further advanced than where you are at, so don't be adverse to leaving the book until you have more experience - know that understanding the context of what's going on is required to understand the strategy presented.
In addition to that book, I would recommend a beginner understand that after playing urgent moves, look to tenuki. While doing this, keep in mind the whole global/local balance. Remember that handicap stones are for influence, not territory, so over defensive play should be avoided. Remember to keep an eye on the 3-3 point invasion, and wait until the best time to make/defend it. Also, look for plays that accomplish your set purpose and another simultaneously so as to make your moves efficient.
Back what you learn up with lots of 19x19 games, and go back to review the basics and strategy, you'll be surprised how much you can pick up with some context.
An additional and concluding step in the guide is to get a good player to do a teaching game with you, and listen to their advice as to what you're still missing. I personally had NannyOgg help me out: though I would normally be wary of volunteering someone for them, she seems especially benevolent. I'm sure you can ask her or anyone else who's stronger for a teaching game.
If you need help getting access to any of the resources mentioned, feel free to contact me (comments is fine).
Sunday, May 20, 2007
Strategic concepts of go (book)
This is a follow-up to the book list
Basically, this book outlines the 8 essential concepts that it takes to master Go. If you master these concepts and their inter-relations, then you master much of the game. The author claims that even dan-level players are still seeking to grasp these concepts.
This book pretty much stayed way over my head the whole time. But it is still useful to scan through and go through a few of the simpler examples for each concept. At least, by my "reading" it, I was able to identify topics to think about and pursue during my studies. Here's the concepts and a quick definition and notes about them:
miai
- two points that are related such that if one becomes occupied by one player, the opponent can handle the situation by playing the other
aji
- a condition left by a lingering group of stones which offers potentials for future play
- keep aji around for your future advantage
kikashi
- a forcing move that played in order to produce an effect
- very time and order sensitive
thickness
- strong groups of stones with little to no weak points
- as valuable as territory
- play away from thickness, and force enemy stones into your thickness
korigatachi
- shapes which are over concentrated so as to not have maximum efficiency
- avoid these and force your opponents into this
sabaki
- light and agile play
- useful in middle game for invasions and reductions of large frameworks
furikawari
- exchange
- refers to a result, usually by sabaki playing style
yosu-miru
- probing so as to force your opponent to choose a shape, then you can deal appropriately with his choice
Basically, this book outlines the 8 essential concepts that it takes to master Go. If you master these concepts and their inter-relations, then you master much of the game. The author claims that even dan-level players are still seeking to grasp these concepts.
This book pretty much stayed way over my head the whole time. But it is still useful to scan through and go through a few of the simpler examples for each concept. At least, by my "reading" it, I was able to identify topics to think about and pursue during my studies. Here's the concepts and a quick definition and notes about them:
miai
- two points that are related such that if one becomes occupied by one player, the opponent can handle the situation by playing the other
aji
- a condition left by a lingering group of stones which offers potentials for future play
- keep aji around for your future advantage
kikashi
- a forcing move that played in order to produce an effect
- very time and order sensitive
thickness
- strong groups of stones with little to no weak points
- as valuable as territory
- play away from thickness, and force enemy stones into your thickness
korigatachi
- shapes which are over concentrated so as to not have maximum efficiency
- avoid these and force your opponents into this
sabaki
- light and agile play
- useful in middle game for invasions and reductions of large frameworks
furikawari
- exchange
- refers to a result, usually by sabaki playing style
yosu-miru
- probing so as to force your opponent to choose a shape, then you can deal appropriately with his choice
Go books and reviews
Here is a large list of ratings of Go books. In short, there are four books that the list maintainer considers to be the best for skill growth: (these are links to reviews of the books)
Tesuji (Davies) - Elementary Go Vol. 3
Lessons in the Fundamentals of Go
Strategic Concepts of Go
Attack and Defense - Elementary Go Vol. 5
I have access to all but Lessons in the Fundamentals of Go, which is too bad, as it's held in very high regard If anyone has access to that one or wants to know how to get access to the others, contact me (through comments is fine). I will try and go through these and post reviews and opinions on each one.
Tesuji (Davies) - Elementary Go Vol. 3
Lessons in the Fundamentals of Go
Strategic Concepts of Go
Attack and Defense - Elementary Go Vol. 5
I have access to all but Lessons in the Fundamentals of Go, which is too bad, as it's held in very high regard If anyone has access to that one or wants to know how to get access to the others, contact me (through comments is fine). I will try and go through these and post reviews and opinions on each one.
Sunday, May 13, 2007
GnuGo
GnuGo's great. I recommend it for players just starting out. Of course, human experience is much more valuable, and you can only improve so much against the predictable computer, but it is definitely a great help to those trying to get through the 20's k.
It's also a good metric to gage improvement. I've just beat it with a 6 stone handicap 98-75.5 for the first time, so I've definitely shown some improvement. For the upper double digit kyu's, I think it is a more consistent gage of performance than KGS rank, as there seems to be so much rank fluctuation going on at that level.
Here's the sgf, feel free to comment it up and get back to me with it. I know I ended up playing a little too defensive since handicap stones are meant for attack, but I was ahead and wanted to secure a win for once.
It's also a good metric to gage improvement. I've just beat it with a 6 stone handicap 98-75.5 for the first time, so I've definitely shown some improvement. For the upper double digit kyu's, I think it is a more consistent gage of performance than KGS rank, as there seems to be so much rank fluctuation going on at that level.
Here's the sgf, feel free to comment it up and get back to me with it. I know I ended up playing a little too defensive since handicap stones are meant for attack, but I was ahead and wanted to secure a win for once.
Saturday, May 12, 2007
Go by Types (technical)
So I've been trying to decrease my personal ignorance on the subject of strong static typing and type safety, and what better way to do this than to do a small project? I've decided to explore Qi's type system, which is Turing equivalent, and use it to basically perform Go-related computation.
My idea is that I would divide a go program up to be made up almost entirely of types, and have the type checker perform most of the computation. For example, I could declare a group on the board to be alive, and the type checker will verify that for any series of moves by the other player, there exists a response tree such that the group's status will never be dead.
The current type structure is thus:
Where a board is represented by a list of Groups, which have liberties and Positions and Positions of liberties.
The interesting bit comes in the type proofs themselves. Position's numbers must be between 0 and 18 (for a 19x19 board), so the type checker should verify this. The number with the Group is the number of liberties, so this can never be < 0 and must be the same as the length of the second Position List. Also the Group's Status will have to be proved. I have included an undetermined Status, so that computation can be delayed until a Problem is executed - where the Objective is type checked to see if it's possible and then Group's Status is updated. In Layout, no two filled positions can be to two different groups.
There are going to be some challenging proofs here, so the structure may change.
My idea is that I would divide a go program up to be made up almost entirely of types, and have the type checker perform most of the computation. For example, I could declare a group on the board to be alive, and the type checker will verify that for any series of moves by the other player, there exists a response tree such that the group's status will never be dead.
The current type structure is thus:
Atomic Types
------------
Player := w | b
Status := alive | dead | undetermined
Ko := false | X:Position
Goal := alive | dead
Data Structures
---------------
Position := (number, number)
Hand := (Player, Position)
Reply := (Hand, Hand)
Metric := (Player, number)
Group := (Player, Status, Position List, number, Position List)
Objective := (Group, Goal)
Layout := Group List
Solution := Reply Tree
Problem := (Objective, Player, Layout)
Where a board is represented by a list of Groups, which have liberties and Positions and Positions of liberties.
The interesting bit comes in the type proofs themselves. Position's numbers must be between 0 and 18 (for a 19x19 board), so the type checker should verify this. The number with the Group is the number of liberties, so this can never be < 0 and must be the same as the length of the second Position List. Also the Group's Status will have to be proved. I have included an undetermined Status, so that computation can be delayed until a Problem is executed - where the Objective is type checked to see if it's possible and then Group's Status is updated. In Layout, no two filled positions can be to two different groups.
There are going to be some challenging proofs here, so the structure may change.
The Beginning
This is obviously the first post to this blog, so what is its purpose? I haven't really determined that yet, but so far this is basically a place for ramblings on playing Go, computational Go, and getting stronger.
As far as metrics are concerned, I am 18k right now on KGS. Though I don't really care as much about rankings as about improvement and enjoyment, rank can give a good description of my current status, and the time component nature of a blog can be used to track (hopefully) improvement.
The title features the word journey, though this is a journey without a destination, and where each subsequent step is not known until the previous one has been taken.
This blog will contain nontechnical posts concerning my current studies and thoughts on Go, and technical posts concerning my studies and thoughts on computational Go. I will try to keep the two separated for readers who are more inclined towards one and not the other, but there is obvious overlap.
So here's hoping towards a mutually beneficial blog.
As far as metrics are concerned, I am 18k right now on KGS. Though I don't really care as much about rankings as about improvement and enjoyment, rank can give a good description of my current status, and the time component nature of a blog can be used to track (hopefully) improvement.
The title features the word journey, though this is a journey without a destination, and where each subsequent step is not known until the previous one has been taken.
This blog will contain nontechnical posts concerning my current studies and thoughts on Go, and technical posts concerning my studies and thoughts on computational Go. I will try to keep the two separated for readers who are more inclined towards one and not the other, but there is obvious overlap.
So here's hoping towards a mutually beneficial blog.
Subscribe to:
Posts (Atom)