飞扬围棋论坛

 找回密码
 注册
搜索
查看: 20907|回复: 30
打印 上一主题 下一主题

有大佬搞一个飞扬版发阳论吗?

[复制链接]
跳转到指定楼层
1#
发表于 2020-6-6 16:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近找出来大本头的《发阳论研究》翻看,打算提高一下,但总觉得字图都偏小,看一会儿眼睛就累了,也许是我近视加老花的缘故,不知道大家是否有这样的感受?如果群里大佬搞一个飞扬版发阳论,排版和字都放大点,估计会有销路的吧
回复

使用道具 举报

推荐
 楼主| 发表于 2020-6-6 17:54 | 只看该作者
15年前倒是自己用 python 2.  写过一个程序,能把 sgf 文件的问题图 转换成 txt 文本,源代码分享给大家,
现在 用 python 3. 了,有些地方要改一下才能运行了。

import dircache
from os import *

m = map(None, 'abcdefghijklmnopqrs', range(1,20))
m2 = map(None, 'srqponmlkjihgfedcba', range(1,20))

EMPTY_ROW=2
EMPTY_COL=3

def convert(sgfGame,txtGame,prb):
        # x="ab" pos0=1,pos1=2
        moveList=[]
        # black or white stone list
        i=0
        whoMove='B'
        while (i<len(sgfGame)):
                while not (sgfGame[i]=='A' and ( sgfGame[i+1]=='B' or sgfGame[i+1]=='W') ):
                        i=i+1
                        if i >len(sgfGame)-2:
                                break
                if i >= len(sgfGame)-2:
                        break
                color=sgfGame[i+1]       
                i=i+2
                while(  i<len(sgfGame)-3 and sgfGame[i]=='[' and sgfGame[i+3]==']' ):
                        moveList.append(sgfGame[i+1:i+3]+color)
                        i=i+4
                        if sgfGame[i]=='\x0d':
                                i=i+2
                if i >= len(sgfGame)-3:
                        break              
        i=0
        while (i<len(sgfGame)-3 and sgfGame[i:i+2]<>';B' and sgfGame[i:i+2]<>';W' ):
                i=i+1
        if sgfGame[i+1]=='B':
                whoMove='B'
        elif sgfGame[i+1]=='W':
                whoMove='W'
        else:
                print('error'+sgfGame[i+1]+':'+prb)
        i=0
        while (i<len(sgfGame)-3 and sgfGame[i:i+2]<>'AE' ):
                i=i+1
        if sgfGame[i:i+2]=='AE':
                print ('error  AE AE AE _______:'+prb)
        emptyRow=1
        emptyCol=1
        mset='none'
        pos0_sum=0
        pos1_sum=0
        pos_count=0
        for x in moveList:               
                pos0 = filter(lambda z, x=x: z[0]==x[0], m)[0][1]
                pos1 = filter(lambda z, x=x: z[0]==x[1], m)[0][1]
                pos0_sum=pos0_sum+pos0
                pos1_sum=pos1_sum+pos1
                pos_count=pos_count+1
        pos0_avg=pos0_sum/pos_count
        pos1_avg=pos1_sum/pos_count
        if pos1_avg<10:
                if pos0_avg<10:
                        mset='tl'
                else:
                        mset='tr'       
        else:
                if pos0_avg<10:
                        mset='dl'
                else:
                        mset='dr'       
               if mset=='dr':
                pos1_avg=20-pos1_avg
                       pos0_avg=20-pos0_avg
        if mset=='dl':
                       pos1_avg=20-pos1_avg
        if mset=='tr':
                       pos0_avg=20-pos0_avg
        for x in moveList:               
                pos0 = filter(lambda z, x=x: z[0]==x[0], m)[0][1]
                pos1 = filter(lambda z, x=x: z[0]==x[1], m)[0][1]
                if mset=='dr':
                        pos1=20-pos1
                        pos0=20-pos0
                if mset=='dl':
                        pos1=20-pos1
                if mset=='tr':
                        pos0=20-pos0
                if pos0_avg<pos1_avg:
                        posp=pos0
                        pos0=pos1
                        pos1=posp
                if pos1>emptyRow:
                        emptyRow=pos1
                if pos0>emptyCol:
                        emptyCol=pos0
                pos=((pos1-1)*20+pos0-1)*2
                if (x[2] == 'B' and whoMove =='B') or (x[2] == 'W' and whoMove =='W'):
                        stone='\xa1\xf1'
                elif (x[2] == 'B' and whoMove =='W') or (x[2] == 'W' and whoMove =='B'):
                        stone='\xa1\xf0'
                else:
                        print 'error!!!!!'                               
                t=txtGame[0:pos]+stone+txtGame[pos+2:]
                txtGame=t
        return (txtGame,emptyRow,emptyCol)
        
dir=dircache.listdir('tlt/')
emptyGame=file("board.txt","rb")
emptyBoard=emptyGame.read()
txtFile=file("tlt.txt","w+b")
for x in dir:
        txtGame=emptyBoard
        string_x=str(x)       
        sgfFile=file("tlt/"+str(x),"rb")
        sgfGame=sgfFile.read()
        #txtGame=convert(sgfGame,txtGame)       
        (txtGame,emptyRow,emptyCol)=convert(sgfGame,txtGame,x)       
        endRow=9
        emptyCol=14       
        for i_row in range(0,endRow):
                end=emptyCol*2               
                # txtFile.write(txtGame[i_row*40:i_row*40+end])
                if i_row==endRow-1:
                        txtFile.write(txtGame[i_row*40:i_row*40+end-4]+string_x[1:5])
                else:
                        txtFile.write(txtGame[i_row*40:i_row*40+end])                       
                txtFile.write('\x20\x0d\x0a')
        txtFile.write('\x0d\x0a')
               
        sgfFile.close()

txtFile.close()

评分

2

查看全部评分

回复 支持 1 反对 0

使用道具 举报

2#
发表于 2020-6-6 17:13 | 只看该作者
淑贞自己搞
搞完成大佬
回复 支持 反对

使用道具 举报

3#
发表于 2020-6-6 17:29 | 只看该作者
欧拉
回复 支持 反对

使用道具 举报

4#
 楼主| 发表于 2020-6-6 17:30 | 只看该作者
傻瓜 发表于 2020-6-6 17:13
淑贞自己搞
搞完成大佬

当大佬太累,还是当小弟省心
回复 支持 反对

使用道具 举报

5#
发表于 2020-6-6 17:40 | 只看该作者
从来就没有什么救世主,一切只能自己靠自己。
回复 支持 反对

使用道具 举报

7#
发表于 2020-6-6 18:05 来自手机 | 只看该作者
厉害
回复 支持 反对

使用道具 举报

8#
发表于 2020-6-6 19:14 | 只看该作者
头像暴露年龄!
回复 支持 反对

使用道具 举报

9#
发表于 2020-6-6 19:33 | 只看该作者
新人帖!
回复 支持 反对

使用道具 举报

10#
发表于 2020-6-6 19:57 来自手机 | 只看该作者
话说淑贞当年实在是令人食欲大增。
回复 支持 反对

使用道具 举报

11#
发表于 2020-6-6 19:58 来自手机 | 只看该作者
等待吴诗人搞个傻瓜版发扬论,不然坚决远离。
回复 支持 反对

使用道具 举报

12#
发表于 2020-6-6 21:23 来自手机 | 只看该作者
发扬轮工程太巨大了
回复 支持 反对

使用道具 举报

13#
发表于 2020-6-6 21:53 | 只看该作者
高手。
回复 支持 反对

使用道具 举报

14#
发表于 2020-6-6 22:11 | 只看该作者
论实用性前田陈尔系列更好些
回复 支持 反对

使用道具 举报

15#
发表于 2020-6-6 22:14 | 只看该作者
记得有职业说发阳论做过几遍,就看想不想出书,可万一有漏。面子上下不来
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|手机版|飞扬围棋网 ( 苏ICP备11029047号-1 )

GMT+8, 2024-4-28 20:50 , Processed in 0.140671 second(s), 25 queries .

since 2003飞扬围棋论坛 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表