|
Size: 4930
Comment:
|
← Revision 35 as of 2009-12-25 07:14:33 ⇥
Size: 1805
Comment: converted to 1.6 markup
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 4: | Line 4: |
| '''含有基本项目组织元素的 CPUG 项目首页通用模板''' | '''PythonGO -- 围棋对战客户端''' |
| Line 7: | Line 8: |
| [[TableOfContents]] ::-- ZoomQuiet [[[DateTime(2005-11-05T07:19:27Z)]]] |
<<TableOfContents>> |
| Line 11: | Line 11: |
||[wiki:self/WoodpeckerProjs 啄木鸟项目::]|| (!) '''[wiki:self/PyWgo PyWgo]'''|| |
||[[self:WoodpeckerProjs|啄木鸟项目::]]|| (!) '''[[self:PyGnest|PyGnest]]'''|| {o} '''[[self:PyWgo|PyWgo]]'''|| ::-- ZoomQuiet [<<DateTime(2005-11-05T07:19:27Z)>>] |
| Line 17: | Line 17: |
| '''[wiki:PyCNmail/2005-November/018404.html PythonGO开发计划]''' | '''[[PyCNmail:2005-November/018404.html|PythonGO开发计划]]''' * 以`James Tauber的PyGo`为基础 http://jtauber.com/ 作者James Tauber是XML领域的大拿 * 所以我准备以pygo为基础开始开发PythonGO,我觉得PythonGO这个名称够直接、好懂,Igo是日本的叫法。 |
| Line 19: | Line 21: |
| == 成员 == ''任何对此项目感兴趣的程序员都可以在邮件列表中申请加入此项目,或者在成员列表中留下你的email'' * 主持:`zzzzzzz gg <[email protected]>` * 支持: ZoomQuiet -- 关注,开发环境支持, * 成员: Ian Liu <[email protected]> |
|
| Line 20: | Line 28: |
| ||<^>[[MonthCalendar]][[BR]][[Include(CPUGnav)]]||<^>'''提要'''[[Include(^PyWgo/2005-.*,'项目简报',4,sort=descending,items=13,titlesonly)]]|| | ||<^><<MonthCalendar>><<BR>><<Include(CPUGnav)>>||<^>'''提要'''<<Include(^PyWgo/2005-.*,'项目简报',4,sort=descending,items=13,titlesonly)>>|| |
| Line 23: | Line 31: |
| <<Include(PyWgoGoal)>> == 计划 == <<Include(PyWgoRoad)>> == 成果 == ## 成果看来会频率修改,我调整到子页面中了,过往的注释版本我都删除了…………嗬嗬,加速页面解析的说………… <<Include(PyWgoing)>> |
|
| Line 24: | Line 38: |
| == 计划 == == 成员 == == 成果 == |
=== 审子程序 === * '''PyIgoJudger''' -- shhgs <"".join(chr(ord(c) -2) for c in 'ujjiu0ghjknvBiockn0eqo')> 贡献 |
| Line 32: | Line 43: |
| [[Include(/DisCuss)]] 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 # 将胜负(数子或数目)结果保存到SGF文件中? - 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 # 棋盘大小随着窗口大小变化 - 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对弈 ---- |
<<Include(/DisCuss)>> |
PythonGO -- 围棋对战客户端
::-- ZoomQuiet [2005-11-05 07:19:27]
1. 缘起
以James Tauber的PyGo为基础 http://jtauber.com/ 作者James Tauber是XML领域的大拿
- 所以我准备以pygo为基础开始开发PythonGO,我觉得PythonGO这个名称够直接、好懂,Igo是日本的叫法。
1.1. 成员
任何对此项目感兴趣的程序员都可以在邮件列表中申请加入此项目,或者在成员列表中留下你的email
主持:zzzzzzz gg <[email protected]>
支持: ZoomQuiet -- 关注,开发环境支持,
成员: Ian Liu <[email protected]>
1.2. 项目日志
|
提要 |
|||||||||||||||||||||||||||||||||||||||||||||||||
1.3. 目标
- 首先实现两人用一台电脑对弈、打谱这两个最基本的功能,然后实现通过某种协议(如GTP)连接现有的GO Server对弈
- 不实现网络对弈的服务器端(降低难度、专心做好一件事)
- 不用过多考虑将来支持其他网络游戏,不想做出复杂、功能众多的游戏大厅,不想做网游平台(我能力有限,还是要降低难度、专心做好一件事)
GUI还是和PyGo原来一样使用Python/Tk,首先要能跑起来,要做得漂亮是以后的事情
{{{大致按以下次序实现一些功能:
1.显示棋盘、棋子及其他必须显示的内容(最好有个抽象层,允许各种实现,SDL、Pygame、Pythonware Imaging Library等) PyGo已经有最基本的显示功能(需要完善,做得漂亮些)
2.对局条件的协商,一般是发出对局邀请的一方先选择条件,受邀请一方接受或修改条件(棋盘尺寸、黑白选择、让子、贴子、保留时间、读秒设置) PyGo中只有在一台电脑上两人对弈的功能,因此还没有这种对局条件协商功能(有待开发)
3.当出现死子时自动提子,当一方想下在禁着点时给予适当的提示,弃权一手、计算胜负的功能 PyGo已经有最基本自动提子、弃权一手、悔棋、计算胜负的功能(需要完善,涉及到一些算法的实现)
4.将棋局保存为sgf格式文件的功能 PyGo已经有最基本的SGF读写功能(需要完善SGF模块的功能,更好地兼容SGF FF[4]格式)
5.暂停棋局(封盘)的功能,可以再次加载sgf文件继续对弈 PyGo已经有最基本的SGF读写功能,加载sgf棋谱文件后,跳到棋谱最后一个节点,按键盘'c'就可以继续对弈
6.打谱功能,最基本的进、退、加注释功能 PyGo已经有最基本的进、退功能,但没有加注释功能(需要完善SGF模块的功能,提供更好的打谱功能)
7.通过网络两人对弈的功能(最好是利用QQ、MSN,无需手工输入IP地址什么的) PyGo中只有在一台电脑上两人对弈的功能(将来可以利用Python的Jabber模块,PyMSNt模块等实现P2P对弈功能)
8.连接网络服务器的功能,如支持GTP协议,连接KGS, CWS, NNGS的能力 PyGo中只有在一台电脑上两人对弈的功能(GTP协议是公开的,也有很好的中文文档,有待开发)
1-3应该是最基本的了,涉及到GUI的实现、一些简单算法(实现两人用一台电脑对弈)
4-6和sgf文件格式有关,可以利用http://gotools.sourceforge.net/的成果(实现最基本的打谱功能)
7-8是和网络编程有关 }}}
1.4. 计划
- 学习pygo的代码,做注释,然后在wiki上发布注释后的版本
- 完成1后再说,现在什么都不懂
- 持之以恒,没什么比这更重要的了。不怕做得慢,只怕说得多做得少。如果我一个人做,至少一年后才能连接Go Server对弈:)
ps.附上James Tauber在2002年写下的TODO:
- ability to save territory/score in SGF as node # 将胜负(数子或数目)结果保存到SGF文件中? - 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 # 棋盘大小随着窗口大小变化 - 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对弈
1.5. 成果
经过简单注释、并改动了几行代码的pygo 0.10.7版本。
11月7日更新:pygo 0.10.3注释版本
11月8日更新:pygo 0.10.4注释版本
11月9日更新:pygo 0.10.5/pygo 0.10.6/pygo 0.10.7注释版本
11月13日更新:pygo 0.10.8注释版本
11月14日更新:pygo 0.10.9注释版本 Pygo-0.10.9.rar
12月1日更新:pygo 0.10.11注释版本,用一个board.gif文件来显示棋盘,而不是画19x19的直线
同步为 分支Pygo.0.10.11
- pygo 0.10.11 在Linux下显示有些问题,正在找原因。另外,请注意一下文件名的大小写问题,board.GIF应改为board.gif,否则在*NUX下出错。 -- Talw
12月6日:学习wxPython中,现在仅仅学会了使用png文件显示棋盘、棋子,棋子图片是有立体感的,但是还不会怎样让棋子有阴影效果
为什么使用 wx 了? Tk 不是非常轻便的哪?! -- ZoomQuiet
1.5.1. 审子程序
PyIgoJudger -- shhgs <"".join(chr(ord(c) -2) for c in 'ujjiu0ghjknvBiockn0eqo')> 贡献
2. 反馈
项目讨论
注:如果鼠标点击在棋盘外侧当作弃权一手,如果一方弃权后另一方接着也弃权则棋局终止 (1)
