飞扬围棋

标题: gowrite 如何只输出问题图 [打印本页]

作者: gnsx    时间: 2015-12-15 20:41
标题: gowrite 如何只输出问题图
(ˇˍˇ) 想~制作一本死活题集,只需要问题图,不要解答,但是gowrite总是连同解答一起输出,请指教如何才能只输出问题图呢?
作者: 大白熊    时间: 2015-12-15 21:18
我恰巧因为同样的原因遇到了同样的问题 同求答案
作者: huibian    时间: 2015-12-15 21:24
SGF文件保存一份,把解答开始到结束的部分删掉,或新建一个分支,导出新建分支。
作者: 烟台    时间: 2015-12-15 21:32
在print wizard中,把添加变化图选项点掉。英文是Add diagrams to variations.
作者: gnsx    时间: 2015-12-15 21:53
回复 烟台 的帖子

测试了下,没用啊,请问您测试了吗?谢谢!
作者: gnsx    时间: 2015-12-15 21:56
huibian 发表于 2015-12-15 21:24
SGF文件保存一份,把解答开始到结束的部分删掉,或新建一个分支,导出新建分支。

删除所有变化图,当然可以达到目的,但是很多个文件,这样很麻烦啊
作者: huibian    时间: 2015-12-15 22:03
在问题和第一步解答之间建一个变化图
作者: sungt    时间: 2015-12-15 22:10
本帖最后由 sungt 于 2015-12-15 22:11 编辑

可否提供sgf看一下。
作者: 飞扬润生    时间: 2015-12-15 22:18
同求答案
作者: 烟台    时间: 2015-12-15 22:53
回复 gnsx 的帖子

是的测试了,只有问题图。问题是你会相信么。。。
作者: 棋如人大胖    时间: 2015-12-15 22:57
本帖最后由 棋如人大胖 于 2015-12-15 23:00 编辑

用这个软件,传输门http://www.flygo.net/bbs/forum.php?mod=viewthread&tid=51469&highlight=%C8%ED%BC%FE
作者: yangyang    时间: 2015-12-16 06:24
本帖最后由 yangyang 于 2015-12-16 06:26 编辑

第一种方法:
在导出选项中,有一个选择是“current diagram",选择这个就只导出问题图了。  我测试过了。 默认的选项是”all diagrms in game".

第二种方法:
新建一个文件,只取出SGF文件前面的部分(其实就是三楼说的删除所有变化图),然后导出。 这个可以用POWERSHELL写一个脚本来实现。
我以前写过一个脚本,把玄玄棋经的名字全部取出来。



作者: gnsx    时间: 2015-12-16 21:08
本帖最后由 gnsx 于 2015-12-16 21:14 编辑
yangyang 发表于 2015-12-16 06:24
第一种方法:
在导出选项中,有一个选择是“current diagram",选择这个就只导出问题图了。  我测试过了。 ...

可否提供POWERSHELL写的脚本?
(;AB[rr][qr][pr][or]AW[rq][qq][pq][oq][nq][mq][lq][ro]C[第2型 黑先活


2之一处没有黑子是与前型不同的地方。



AP[MultiGo:4.2.4]SZ[19]MULTIGOGM[1]


(;B[sr]N[正解];W[nr];B[os]C[黑1立下是紧要的一着。白若2挡,则黑再3立下,与第1型相同是直四的活棋。


黑1立下是利用角隅特殊性的急所。])
(;B[nr]N[失败1];W[sr];B[mr];W[lr];B[ms];W[rs];B[qs];W[os]C[黑1扩大左边之领域是轻率的举动。白2扳是急所,黑3、5再度扩大领域时,白6扳、8点入,到此为止。


但白2不能3挡,黑2立下,白棋失去机会。])
(;B[sq]N[失败2];W[nr];B[os];W[sr];B[ss];W[qs]C[黑1扳是毫无用处的过贪的着手,白2以下至6止,黑棋顿死。


黑1扳与黑4立下相比,黑棋的领域狭了一路,请注意。]))(;AB[sr][rr][qr][pr][or]AW[rq][qq][pq][oq][nq][lq][ro][mr]TR[mr]C[第3型 白先黑死


如果没有白△之子,则黑棋手拔也活。



AP[MultiGo:4.2.4]SZ[19]MULTIGOGM[1]


(;W[rs]N[正解1];B[qs];W[os];B[ns];W[nr]C[白1点入是妨害黑棋做出两眼的急所。黑若2打,则白3碰,左边是假眼。


手顺中,黑2若3立下,则白2托进即可。])
(;W[os]N[正解2];B[ps];W[rs]C[白先1碰也可以达到吃掉的目的。黑2挡时,白3点入。



;B[nr];W[ns]C[黑若4挤,则白棋一定要5多送一子。];B[ms];W[ns]C[黑6提取二子时,白7扑;多送一子往往可以使对方弄成假眼,必须一记。]))(;AB[sr][rr][qr][pr][or]AW[kq][mq][nq][oq][pq][qq][rq][ro][lr]TR[lr]C[第4型 白先黑死


黑的棋形与前型相同,但白△子之位置远一路,若白棋先下,黑仍不活。



AP[MultiGo:4.2.4]SZ[19]MULTIGOGM[1]


(;W[rs]C[此型白棋一定要从内部着手,点入角隅2之一的急所。]N[正解]
(;B[nr];W[ns]C[黑2扩大领域时,白3碰。];B[os];W[qs]LB[mr:A][ms:B]C[黑4挡打时,白5托进。次黑A时,白B多送一子,各位都知道,是吗?])
(;B[qs]N[参考];W[os];B[nr];W[ns]TR[lr]LB[ms:A][mr:B]C[黑若1打,则白2碰仍能成立,乃白△之威力。黑3时,白4多送一子;次黑A则白B,左边是假眼。]))
(;W[os]C[白1从外部着手,看上去情形相同,其实不然。]N[失败];B[nr];W[ns];B[ms];W[mr]
;B[ps]LB[ns:A][rs:B]C[次A,B见合,黑棋净活。]))


只需取红色部分内容。谢谢!

其他方法都试了,不管用。

作者: yangyang    时间: 2015-12-17 08:47
假定所有的sgf文件都放在D:\DigicelWorkspace\weiqi\ch1\ch1sgf\ 下(这个目录可以修改成你自己的目录)
生成的新sgf文件放在D:\DigicelWorkspace\weiqi\ch1\ch1sgf\temp\ 下(这个目录可以修改成你自己的目录)
代码如下,只取了黑白棋子和对局名称。

$files=Get-childitem D:\DigicelWorkspace\weiqi\ch1\ch1sgf\*.sgf
foreach($file in $files)
{
$targetFile = Join-Path "D:\DigicelWorkspace\weiqi\ch1\ch1sgf\temp\" $file.name
echo "(;ST[0]AP[GOWrite:3.0.5]FF[4]GM[1]SZ[19]CA[UTF-8]" >$targetfile
gc $file  -Encoding UTF8|select-string -Pattern '\bAB(\[[a-z][a-z]\])*' -AllMatches | % { $_.Matches } | % { $_.Value } >> $targetFile
gc $file  -Encoding UTF8|select-string -Pattern '\bAW(\[[a-z][a-z]\])*' -AllMatches | % { $_.Matches } | % { $_.Value } >> $targetFile
gc $file  -Encoding UTF8|select-string -Pattern '\bGN\[[^\]/p{IsCJKUnifiedIdeographs}]*\]' -AllMatches | % { $_.Matches } | % { $_.Value } >> $targetFile
echo ")" >> $targetfile
}

作者: yangyang    时间: 2015-12-17 08:48
转换前的文件如下:
(;ST[0]AP[GOWrite:3.0.5]FF[4]GM[1]SZ[19]CA[UTF-8]GN[死之部 第1题]PB[ ]MULTIGOGM[1]PW[ ]
AW[oc][rc][pb][pd][rb][qd]C[第1题 黑先

容易的问题,但次序很重要,利用气紧。]AB[rd][sd][nb][pe][qe][nc][rf][od][oa]
M[2]VW[ja:sj]FG[258:]
M[2]FG[258:]
(
M[2]VW[ja:sj]FG[258:]
(
;C[正解]B[ra]
(
;W[qa];B[qc];W[pc]
;C[黑走1位靠后,白2若走A位,黑也是3打5渡。
白2如在B位接,黑走4位破眼。]LB[pa:A][qb:B]B[sb]
)
(
M[2]GOWRITEFG[includePastCount:1]VW[ja:sj]FG[258:]
;C[变化]W[qc];B[qa];W[pa]
;C[白若走1位接,黑2长、4冲,黑也死。下一步,A和B位,黑必能走到一处。]LB[ob:A][sb:B]B[sc]
)

)
(
M[2]GOWRITEFG[includePastCount:1]VW[ja:sj]FG[258:]
;B[qa];W[ra];B[pa];W[qb];B[pc];W[ob]
)

)
(
M[2]VW[ja:sj]FG[258:]
;B[ob];W[qa];B[pc];W[qc];B[pa]
)

)

作者: yangyang    时间: 2015-12-17 08:49
转换后的文件如下:
(;ST[0]AP[GOWrite:3.0.5]FF[4]GM[1]SZ[19]CA[UTF-8]
AB[rd][sd][nb][pe][qe][nc][rf][od][oa]
AW[oc][rc][pb][pd][rb][qd]
GN[死之部 第1题]
)

我试了下,GOWRITE可以打开,没有错误。
作者: gnsx    时间: 2015-12-17 14:24
yangyang 发表于 2015-12-17 08:47
假定所有的sgf文件都放在D:\DigicelWorkspace\weiqi\ch1\ch1sgf\ 下(这个目录可以修改成你自己的目录)
生 ...

非常感谢,问题完美解决。

能否讲下编写方法,授人以鱼不如授人以渔,可能我要求过分了,请勿介意。

作者: yangyang    时间: 2015-12-17 15:09
源代码已给出了。

流程其实很简单,

第一行 加sgf文件格式头
第二行 取黑子
第三行 取白子
第四行 取棋谱名称
第五行 加sgf文件格式尾

每行的细节就要靠自己了。
作者: 飞扬润生    时间: 2015-12-17 19:12
都是高手呀     就这样我还没有懂  对我这笨鸟 有个简单教程就好了  
作者: gnsx    时间: 2015-12-17 19:57
回复 飞扬润生 的帖子

我也是菜鸟啊,对于帮助解决问题的大牛真顶礼膜拜啊。和你说下操作方法,先在D盘新建temp文件夹,temp里面再建个ok文件夹,然后把你要修改的棋谱文件放到temp里面,接着按住windows徽标键+R,在窗口里面输入POWERSHELL,接着按回车键,弹出一个黑色窗口,把下面代码粘贴到里面,按两次回车键,转换好的棋谱已经在ok文件里面了。

$files=Get-childitem D:\temp\*.sgf
foreach($file in $files)
{
$targetFile = Join-Path "D:\temp\ok\" $file.name
echo "(;ST[0]AP[GOWrite:3.0.5]FF[4]GM[1]SZ[19]CA[UTF-8]" >$targetfile
gc $file  -Encoding UTF8|select-string -Pattern '\bAB(\[[a-z][a-z]\])

*' -AllMatches | % { $_.Matches } | % { $_.Value } >> $targetFile
gc $file  -Encoding UTF8|select-string -Pattern '\bAW(\[[a-z][a-z]\])

*' -AllMatches | % { $_.Matches } | % { $_.Value } >> $targetFile
gc $file  -Encoding UTF8|select-string -Pattern '\bGN\[[^\]/p

{IsCJKUnifiedIdeographs}]*\]' -AllMatches | % { $_.Matches } | % {

$_.Value } >> $targetFile
echo ")" >> $targetfile
}


作者: gnsx    时间: 2015-12-17 19:58
回复 飞扬润生 的帖子

我也是菜鸟啊,对于帮助解决问题的大牛真顶礼膜拜啊。和你说下操作方法,先在D盘新建temp文件夹,temp里面再建个ok文件夹,然后把你要修改的棋谱文件放到temp里面,接着按住windows徽标键+R,在窗口里面输入POWERSHELL,接着按回车键,弹出一个黑色窗口,把下面代码粘贴到里面,按两次回车键,转换好的棋谱已经在ok文件夹里面了。

$files=Get-childitem D:\temp\*.sgf
foreach($file in $files)
{
$targetFile = Join-Path "D:\temp\ok\" $file.name
echo "(;ST[0]AP[GOWrite:3.0.5]FF[4]GM[1]SZ[19]CA[UTF-8]" >$targetfile
gc $file  -Encoding UTF8|select-string -Pattern '\bAB(\[[a-z][a-z]\])

*' -AllMatches | % { $_.Matches } | % { $_.Value } >> $targetFile
gc $file  -Encoding UTF8|select-string -Pattern '\bAW(\[[a-z][a-z]\])

*' -AllMatches | % { $_.Matches } | % { $_.Value } >> $targetFile
gc $file  -Encoding UTF8|select-string -Pattern '\bGN\[[^\]/p

{IsCJKUnifiedIdeographs}]*\]' -AllMatches | % { $_.Matches } | % {

$_.Value } >> $targetFile
echo ")" >> $targetfile
}


作者: 飞扬润生    时间: 2015-12-17 20:00
标题: 标题
回复 gnsx 的帖子

谢谢了   
作者: gnsx    时间: 2015-12-17 20:07
我测试了,部分棋谱可以成功,还有的棋谱因格式不同,不能成功,代码要做相应修改,可惜自己不会,又不好意思老是麻烦人
作者: liuchao    时间: 2015-12-17 22:11
本帖最后由 liuchao 于 2015-12-17 22:13 编辑

借地方问个问题,如何改变棋盘方向。劫争记录有的是=,有的是at,如何统一。
作者: gnsx    时间: 2015-12-17 22:32
回复 liuchao 的帖子

输出图片,插入到word里面用宏旋转方向吧。
作者: lhbmmx    时间: 2020-4-23 08:48
最快速的方法:用猫踢狗打开,1.将各个死活题合并成一个SGF文件。2.用按键精灵,将删除节点以下的变化的操作(CTRL+R,C,鼠标滚轮下拉)这个三步动作模拟重复N次即可,几百个文件按一下,几秒即可完成。
作者: wrlomo    时间: 2020-4-23 12:30
本帖最后由 wrlomo 于 2020-4-23 12:31 编辑

先预览,后输出,可输出问题图+答案图两张[attach]165725[/attach]

或者在答案之前插一个分谱(红框部分即为分谱符)
[attach]165726[/attach]

作者: lhbmmx    时间: 2020-4-23 13:35
wrlomo 发表于 2020-4-23 12:30
先预览,后输出,可输出问题图+答案图两张

或者在答案之前插一个分谱(红框部分即为分谱符)

不需要答案图时,这样输出还要挑选,特别是图很多时,麻烦的。

作者: wrlomo    时间: 2020-4-23 14:21
lhbmmx 发表于 2020-4-23 13:35
不需要答案图时,这样输出还要挑选,特别是图很多时,麻烦的。

预览第2页,把显示的步数关掉或者改为0,分谱数也同时关掉,即可

作者: lhbmmx    时间: 2020-4-23 15:35
wrlomo 发表于 2020-4-23 14:21
预览第2页,把显示的步数关掉或者改为0,分谱数也同时关掉,即可

你的方法是处理单个文件时的办法,如果需要批量处理几百个,将所有的SGF文件导入为一个谱的分支时,只需要输出问题图,比如仅需要死活题目时,关掉变化图是不行的。





欢迎光临 飞扬围棋 (http://flygo.net/Bbs/) Powered by Discuz! X3.2