Differences between revisions 1 and 4 (spanning 3 versions)
Revision 1 as of 2005-11-04 16:11:24
Size: 3665
Editor: ggzzzzzzz
Comment:
Revision 4 as of 2005-11-05 03:56:54
Size: 3741
Editor: ggzzzzzzz
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
在这里详述"PythonGO". From: [email protected]
Line 3: Line 3:
From: [email protected]
Line 5: Line 4:
Line 6: Line 6:
Line 8: Line 9:
Line 9: Line 11:
Line 10: Line 13:
Line 13: Line 17:
Line 14: Line 19:
Line 15: Line 21:
Line 18: Line 25:
Line 19: Line 27:
Line 21: Line 30:

Line 22: Line 33:
Line 23: Line 35:
Line 24: Line 37:
Line 26: Line 40:
Line 27: Line 42:
Line 28: Line 44:
Line 29: Line 46:
Line 30: Line 48:
Line 31: Line 50:
Line 32: Line 52:
Line 33: Line 54:
Line 34: Line 56:
Line 36: Line 59:
Line 37: Line 61:
Line 38: Line 63:
Line 40: Line 66:
Line 41: Line 68:
Line 42: Line 70:
Line 43: Line 72:
Line 45: Line 75:
Line 46: Line 77:
Line 47: Line 79:
Line 48: Line 81:
Line 49: Line 83:
Line 50: Line 85:
Line 51: Line 87:
Line 52: Line 89:
Line 53: Line 91:
Line 54: Line 93:
Line 55: Line 95:
Line 56: Line 97:
Line 57: Line 99:
Line 59: Line 102:
Line 60: Line 104:
Line 61: Line 106:
Line 62: Line 108:
Line 63: Line 110:
Line 64: Line 112:
["个人网页类"]

attachment: showgo.py

From: [email protected]

To: [email protected]

Date: Nov 4, 2005 4:26 PM

Subject: PythonGO开发计划(以James Tauber的PyGo为基础)

我找到一个叫PyGo的open source project,不过好久没有更新了。有兴趣可以看看这个作者的主页:

http://jtauber.com/ PyGo的作者James Tauber是XML领域的大拿

我下载了pygo-0.10.1.tgz,是用Python/Tk做的GUI,仅有两人对弈、sgf播放的基本功能。

这个PyGo很适合我学习:

1、够简单,我应该能看懂。所有代码加起来1600行左右,和我自己写的一个工具行数差不多。

所以我准备以pygo为基础开始开发PythonGO,我觉得PythonGO这个名称够直接、好懂,Igo好像是Korea的叫法。

项目目标

首先实现两人用一台电脑对弈、打谱这两个最基本的功能,然后实现通过某种协议(如GTP)连接现有的GO Server对弈

注:

1、不实现网络对弈的服务器端(降低难度、专心做好一件事)

2、不用过多考虑将来支持其他网络游戏,不想做出复杂、功能众多的游戏大厅,不想做网游平台(我能力有限,还是要降低难度、专心做好一件事)

3、GUI还是和PyGo原来一样使用Python/Tk,首先要能跑起来,要做得漂亮是以后的事情

我不懂软件开发,我想大致按以下次序实现一些功能:

1.显示棋盘、棋子及其他必须显示的内容(最好有个抽象层,允许各种实现,SDL、Pygame、Pythonware Imaging Library等)

2.对局条件的协商,一般是发出对局邀请的一方先选择条件,受邀请一方接受或修改条件(棋盘尺寸、黑白选择、让子、贴子、保留时间、读秒设置)

3.当出现死子时自动提子,当一方想下在禁着点时给予适当的提示,弃权一手、计算胜负的功能

4.将棋局保存为sgf格式文件的功能

5.暂停棋局(封盘)的功能,可以再次加载sgf文件继续对弈

6.打谱功能,最基本的进、退、加注释功能

7.通过网络两人对弈的功能(最好是利用QQ、MSN,无需手工输入IP地址什么的)

8.连接网络服务器的功能,如支持GTP协议,连接KGS, CWS, NNGS的能力

1-3应该是最基本的了,涉及到GUI的实现、一些简单算法(实现两人用一台电脑对弈)

4-6和sgf文件格式有关,可以利用http://gotools.sourceforge.net/的成果(实现最基本的打谱功能)

7-8是和网络编程有关

我的行动计划:

1. 学习pygo的代码,做注释,然后在wiki上发布注释后的版本

2. 完成1后再说,现在什么都不懂

3. 持之以恒,没什么比这更重要的了。不怕做得慢,只怕说得多做得少。如果我一个人做,至少一年后才能连接Go Server对弈:)

附上James Tauber在2002年写下的TODO:

- ability to save territory/score in SGF as node

- editing and adding of properties (especially comments) # 属于注释、打谱功能

- better display of variations # 属于注释、打谱功能

- better display of common properties

- optionally show atari

- ability to play problems # 死活题功能

- handling of line-break in SGF values

- allow resizing of canvas to scale board # 棋盘resizing

- better Tk packing

- ability to create problems # 用什么算法?暂时不考虑

- numbers in showgo need to make mask if not on stone

- partial boards in showgo

- user management

- pluggable computer players

- internet server games # 连接Go Server对弈

- point-to-point network games # P2P对弈


attachment: showgo.py

PyWgo (last edited 2009-12-25 07:14:33 by localhost)