┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

└┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┘

白子:○ 黑子:●

┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼大象┼┼┼┤

├┼老鼠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼版主┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼豆豆┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼卒┼┼┼┤

├┼┼┼┼┼┼┼白板┼┼┼┼┼马┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼玉┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼银将┼┼┼┤

├┼┼┼┼┼┼┼┼坛霸┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼车┼┼┼┼┼┼┼┼┤

├┼┼炮┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼士┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼后┼┼┤

├春┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤

└┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┘

回复 第2楼 的 uunetcom:大象老鼠……你让我想到了小时候玩过的一种卡片牌,老鼠可以钻大象的鼻子[s:11]

回复 第3楼 的 ming_uld:斗兽棋,形势很复杂 斗争很激烈。

</p>
<p>plot(1:19,type="n",xlim=c(1,19),axes=F,xlab='',ylab='',bty="o",lab=c(19,19,1))<br />
rect(1,1,2:19,2:19)<br />
rect(1:18,1:18,19,19)</p>
<p>for(i in 1:200)<br />
{<br />
points(locator(1),cex=3,pch=21,bg="white")<br />
points(locator(1),cex=3,pch=19)<br />
}</p>
<p>
</p>

自己跟自己下着玩吧

回复 第5楼 的 lanfeng:不能下,不好玩

回复 第5楼 的 lanfeng:哈哈,给力,要是写个小程序让电脑和自己下就好了。

回复 第6楼 的 Cloud Wei:可以下啊

回复 第7楼 的 lanfeng:联机也好做,把locator(1)的结果用cat(append=T,...)追加写到windows共享目录的某个文件中,而另一边用readLines()去读取该文件的末尾一行tail(n=1),如此轮流进行即可。

回复 第9楼 的 yanlinlin82:限于局域网是吧?不过每次都要手动readLines()么?

要走互联网也行,在cos服务器上搭个ftp,专门存放五子棋临时文件,呵呵。

或者,干脆用发帖的方式,直接把棋盘以Web POST的方式发送到 http://cos.name/cn/,每步一帖,所有人还能围观。[s:11]

回复 第5楼 的 lanfeng:这个不能把点直接画在鼠标的位置上,得先计算一下最近的格子,画在格子里。

回复 第9楼 的 yanlinlin82:不务正业系列程序又有新成员了……我们可以开个公共的Gmail帐户,在Google Docs的Spreadsheets中读写下棋数据(用RGoogleDocs包),这样就可以联机了,如果有人要围观,可以以只读模式实时更新客户端R里面的棋盘。或者用RCurl之类的工具在这里发帖也行。你们折腾去吧,我不管了。

老大一提RCurl,我倒是有个疑问:RCurl能在cos论坛上发帖么? 前些日子尝试过没能成功。Google上说不支持js,不知道哪位大神能指点下。

回复 第12楼 的 谢益辉:棋子应该放在线的交叉点上,不是格子里吧?加个round就可以了。

</p>
<p>plot(1:19,type="n",xlim=c(1,19),axes=F,xlab='',ylab='',bty="o",lab=c(19,19,1))<br />
abline(h=1:19)<br />
abline(v=1:19)<br />
box()<br />
for(i in 1:200)<br />
{<br />
l=locator(1)<br />
points(round(l$x),round(l$y),cex=3,pch=21,bg="white")<br />
l=locator(1)<br />
points(round(l$x),round(l$y),cex=3,pch=19)<br />
}<br />
</p>

还差个自动判停,和三三禁手规则[s:11]

回复 第14楼 的 dengyishuo:我们以前高中下五子棋就是拿个作业本,两个人在格子里画圈和叉。

回复 第13楼 的 ming_uld:没试过,也许可以吧,发帖好像跟JS没关系。

别说我对cos没贡献:

<br />
Connect5 <- function(maxmoves=200) {<br />
        plot(1:19,type="n",xlim=c(1,19),axes=F,xlab='',ylab='',bty="o",lab=c(19,19,1))<br />
        segments(1,1:19,19,1:19)<br />
        segments(1:19,1,1:19,19)<br />
        points(rep(c(4,10,16),3),rep(c(4,10,16),each=3),pch=19,cex=1.2)<br />
        box()</p>
<p>        playedlist <- NULL<br />
        for(i in 1:maxmoves)<br />
        {<br />
                repeat<br />
                {<br />
                        l=locator(1)<br />
                        l$x <- min(19,max(1,round(l$x)))<br />
                        l$y <- min(19,max(1,round(l$y)))<br />
                        xy <- paste(l,collapse=":")<br />
                        if (!is.element(xy,playedlist)) break<br />
                }<br />
                playedlist <- c(playedlist,xy)<br />
                points(l,cex=3,pch=21,bg="white")</p>
<p>                repeat<br />
                {<br />
                        l=locator(1)<br />
                        l$x <- min(19,max(1,round(l$x)))<br />
                        l$y <- min(19,max(1,round(l$y)))<br />
                        xy <- paste(l,collapse=":")<br />
                        if (!is.element(xy,playedlist)) break<br />
                }<br />
                playedlist <- c(playedlist,xy)<br />
                points(l,cex=3,pch=19)<br />
        }<br />
}</p>
<p>Connect5()<br />
</p>

回复 第18楼 的 pklin:精华了...棋盘很精致。