|
Size: 3665
Comment:
|
Size: 4930
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 1: | Line 1: |
| 在这里详述"PythonGO". | ## page was renamed from PythonGO ##language:zh #pragma section-numbers on '''含有基本项目组织元素的 CPUG 项目首页通用模板''' ## 默许导航,请保留 [[TableOfContents]] ::-- ZoomQuiet [[[DateTime(2005-11-05T07:19:27Z)]]] ##||项目表情|| (!) '''概念/筹备/设计ing'''|| {o} '''编写/开发/组织ing'''|| {*} '''试用/推行ing'''|| {OK} '''发行/应用ed'''|| |-) '''停顿''' || ## 选用项目表情标识项目的当前状况 ||[wiki:self/WoodpeckerProjs 啄木鸟项目::]|| (!) '''[wiki:self/PyWgo PyWgo]'''|| = 缘起 = '''[wiki:PyCNmail/2005-November/018404.html PythonGO开发计划]''' == 项目日志 == ||<^>[[MonthCalendar]][[BR]][[Include(CPUGnav)]]||<^>'''提要'''[[Include(^PyWgo/2005-.*,'项目简报',4,sort=descending,items=13,titlesonly)]]|| == 目标 == == 计划 == == 成员 == == 成果 == = 反馈 = '''项目讨论''' [[Include(/DisCuss)]] |
| Line 4: | Line 35: |
| Line 5: | Line 37: |
| Line 6: | Line 39: |
| Line 8: | Line 42: |
| ---- | |
| Line 9: | Line 44: |
| Line 10: | Line 46: |
| Line 13: | Line 50: |
| Line 14: | Line 52: |
| Line 16: | Line 55: |
| Line 17: | Line 57: |
| ---- | |
| Line 19: | Line 60: |
| Line 21: | Line 63: |
---- |
|
| Line 22: | Line 66: |
| Line 23: | Line 68: |
| Line 24: | Line 70: |
| Line 26: | Line 73: |
| ---- | |
| Line 27: | Line 75: |
| Line 28: | Line 77: |
| Line 29: | Line 79: |
| Line 30: | Line 81: |
| Line 31: | Line 83: |
| Line 32: | Line 85: |
| Line 33: | Line 87: |
| Line 34: | Line 89: |
| Line 36: | Line 92: |
| ---- | |
| Line 37: | Line 94: |
| Line 38: | Line 96: |
| Line 40: | Line 99: |
| ---- | |
| Line 41: | Line 101: |
| Line 42: | Line 103: |
| Line 43: | Line 105: |
| Line 45: | Line 108: |
| ---- | |
| Line 46: | Line 110: |
| - ability to save territory/score in SGF as node | - ability to save territory/score in SGF as node # 将胜负(数子或数目)结果保存到SGF文件中? |
| Line 48: | Line 114: |
| - better display of variations # 属于注释、打谱功能 - better display of common properties - optionally show atari |
- better display of variations # 更好地显示分支,属于注释、打谱功能 - better display of common properties # 更好地显示常规属性 - optionally show atari # 可选择显示叫吃 |
| Line 52: | Line 122: |
| Line 53: | Line 124: |
| - allow resizing of canvas to scale board # 棋盘resizing | - allow resizing of canvas to scale board # 棋盘大小随着窗口大小变化 |
| Line 55: | Line 128: |
| Line 56: | Line 130: |
| - numbers in showgo need to make mask if not on stone - partial boards in showgo |
- numbers in showgo need to make mask if not on stone # 某一点没有棋子但是要显示数字 - partial boards in showgo # 刷新棋盘一部分的功能 |
| Line 60: | Line 137: |
| Line 61: | Line 139: |
| Line 62: | Line 141: |
| Line 63: | Line 143: |
| Line 64: | Line 145: |
| ["个人网页类"] |
含有基本项目组织元素的 CPUG 项目首页通用模板
TableOfContents ::-- ZoomQuiet [DateTime(2005-11-05T07:19:27Z)]
[wiki:self/WoodpeckerProjs 啄木鸟项目::] |
|
1. 缘起
[wiki:PyCNmail/2005-November/018404.html PythonGO开发计划]
1.1. 项目日志
1.2. 目标
1.3. 计划
1.4. 成员
1.5. 成果
2. 反馈
项目讨论 Include(/DisCuss)
From: [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对弈
