Differences between revisions 14 and 30 (spanning 16 versions)
Revision 14 as of 2005-11-05 07:48:28
Size: 4672
Editor: ZoomQuiet
Comment:
Revision 30 as of 2005-11-09 15:13:41
Size: 2600
Editor: ggzzzzzzz
Comment:
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
'''PyWgo -- Python Web i-go -- 围棋对战平台''' '''PythonGO -- 围棋对战客户端'''
Line 11: Line 11:
||[wiki:self/WoodpeckerProjs 啄木鸟项目::]|| (!) '''[wiki:self/PyWgo PyWgo]'''||  ||[wiki:self/WoodpeckerProjs 啄木鸟项目::]|| (!) '''[wiki:self/PyGnest PyGnest]'''|| {o} '''[wiki:self/PyWgo PyWgo]'''||
Line 19: Line 19:
  * 所以我准备以pygo为基础开始开发PythonGO,我觉得PythonGO这个名称够直接、好懂,Igo好像Korea的叫法。
   * 咳咳咳 i-go 是小
日本的叫法,可惜中国没有赶上命名,我提议使用 PyWgo -- 围棋 WeiQi at web, we created, 等等,比较短也好记忆 -- ZoomQuiet
  * 所以我准备以pygo为基础开始开发PythonGO,我觉得PythonGO这个名称够直接、好懂,Igo是日本的叫法
Line 26: Line 25:
 * 成员: Ian Liu <[email protected]>
Line 30: Line 30:
[[Include(PyWgoGoal)]]
== 计划 ==
[[Include(PyWgoRoad)]]
== 项目管理 ==
["pywgo.grouphub.com"],任何对此项目感兴趣的程序员都可以在邮件列表中申请加入此项目,或者在成员列表中留下你的email
== 成果 ==
经过简单注释、并改动了几行代码的pygo 0.10.7版本。
----
11月7日更新:pygo 0.10.3注释版本
Line 31: Line 40:
 * 首先实现两人用一台电脑对弈、打谱这两个最基本的功能,然后实现通过某种协议(如GTP)连接现有的GO Server对弈
  1、不实现网络对弈的服务器端(降低难度、专心做好一件事)
  2、不用过多考虑将来支持其他网络游戏,不想做出复杂、功能众多的游戏大厅,不想做网游平台(我能力有限,还是要降低难度、专心做好一件事)
  3、GUI还是和PyGo原来一样使用Python/Tk,首先要能跑起来,要做得漂亮是以后的事情
{{{大致按以下次序实现一些功能:
11月8日更新:pygo 0.10.4注释版本
Line 37: Line 42:
1.显示棋盘、棋子及其他必须显示的内容(最好有个抽象层,允许各种实现,SDL、Pygame、Pythonware Imaging Library等) 11月9日更新:pygo 0.10.5/pygo 0.10.6/pygo 0.10.7注释版本
Line 39: Line 44:
2.对局条件的协商,一般是发出对局邀请的一方先选择条件,受邀请一方接受或修改条件(棋盘尺寸、黑白选择、让子、贴子、保留时间、读秒设置)

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

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

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

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

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

8.连接网络服务器的功能,如支持GTP协议,连接KGS, CWS, NNGS的能力
attachment:Pygo-0.10.7.rar
Line 54: Line 47:
1-3应该是最基本的了,涉及到GUI的实现、一些简单算法(实现两人用一台电脑对弈) * PyGo中鼠标和键盘的使用:
 * 点击鼠标左键走子
Line 56: Line 50:
4-6和sgf文件格式有关,可以利用http://gotools.sourceforge.net/的成果(实现最基本的打谱功能)   注:如果鼠标点击在棋盘外侧当作弃权一手,如果一方弃权后另一方接着也弃权则棋局终止
Line 58: Line 52:
7-8是和网络编程有关
}}}
 * <Left> 键跳到上一个节点
 * <Right>键跳到下一个节点
 * <Up> 键跳到上一个分支
 * <Down> 键跳到下一个分支
 * Shift+<Left> 键跳到分支的第一个节点
 * Shift+<Right>键跳到分支的最后一个节点
 * 'v'创建新分支
 * 'u'悔棋
 * 'p'交替走子 / 添加黑子 / 添加白子
 * 'c'在导入的棋谱末端开始继续走子
 * 't'切换到点算状态,计算胜负
 * 'i'插入一个新节点
Line 61: Line 65:
== 计划 ==
 1. 学习pygo的代码,做注释,然后在wiki上发布注释后的版本
 1. 完成1后再说,现在什么都不懂
 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对弈
}}}

== 成果 ==

PythonGO -- 围棋对战客户端

TableOfContents

  • [wiki:self/WoodpeckerProjs 啄木鸟项目::]

    (!) [wiki:self/PyGnest PyGnest]

    {o} [wiki:self/PyWgo PyWgo]

::-- ZoomQuiet [DateTime(2005-11-05T07:19:27Z)]

1. 缘起

[wiki:PyCNmail/2005-November/018404.html PythonGO开发计划]

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

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

1.1. 成员

1.2. 项目日志

MonthCalendarBRInclude(CPUGnav)

提要Include(^PyWgo/2005-.*,'项目简报',4,sort=descending,items=13,titlesonly)

1.3. 目标

Include(PyWgoGoal)

1.4. 计划

Include(PyWgoRoad)

1.5. 项目管理

["pywgo.grouphub.com"],任何对此项目感兴趣的程序员都可以在邮件列表中申请加入此项目,或者在成员列表中留下你的email

1.6. 成果

经过简单注释、并改动了几行代码的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注释版本

attachment:Pygo-0.10.7.rar


* PyGo中鼠标和键盘的使用:

  • 点击鼠标左键走子
    • 注:如果鼠标点击在棋盘外侧当作弃权一手,如果一方弃权后另一方接着也弃权则棋局终止
  • <Left> 键跳到上一个节点

  • <Right>键跳到下一个节点

  • <Up> 键跳到上一个分支

  • <Down> 键跳到下一个分支

  • Shift+<Left> 键跳到分支的第一个节点

  • Shift+<Right>键跳到分支的最后一个节点

  • 'v'创建新分支
  • 'u'悔棋
  • 'p'交替走子 / 添加黑子 / 添加白子
  • 'c'在导入的棋谱末端开始继续走子
  • 't'切换到点算状态,计算胜负
  • 'i'插入一个新节点

1.6.1. 审子程序

  • PyIgoJudger -- shhgs <"".join(chr(ord(c) -2) for c in 'ujjiu0ghjknvBiockn0eqo')> 贡献

2. 反馈

项目讨论 Include(/DisCuss)

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