作者:弈智围棋

小棋手们在下完棋之后,总会高高地举起小手,同时大声地问道:“老师!这盘棋谁赢了???!”呐,今天,老师就来告诉你们,围棋是怎样判断胜负的。

围棋的胜负是以双方在棋盘上活棋的多少来决定的,一方在棋盘上的活棋总数是该方各块活棋子数的总和,那么,一方的活棋总数要如何计算呢?

想要计算一方的活棋总数,首先要会计算一块棋的活棋子数,计算方法如下:

↑↑↑如上图所示,黑棋是“两眼活棋”,中间的两个白子是黑可随时提掉的死子,因此,计算这块黑棋活棋数的步骤是:

一、把白棋死子拿掉,如下图↓↓↓:

二、整地。

1、将黑棋整理成以5个交叉点为边长或是以10个交叉点为边长的小方块,但值得小棋手们需要注意的是,这个由交叉点组成的小方块,交叉点数最好是10或10的倍数,比较容易记住!

2、再把方块数与剩余棋子数相加,计算共有多少子,如下图:

把黑△移到○处,黑□从棋盘上拿掉并不影响最终结果。如下图↓↓↓:

由上图所知,黑一共有20子。

那,小朋友们,下面这个图形,黑棋一共活了多少子呢?

有的小朋友很快就能看出,“老师,那个A点到底要算是黑棋的还是白棋的?”

真棒!黑白双方还有一个公共点没占,就会出现这样情况。因此,在计算活棋数多少之前,最重要的一步就是把所有的公共点轮流占满!

若A点被黑棋抢先占掉,黑棋一共活了21子,若A点被白抢先占掉,那黑棋只活了20子,小朋友们可千万别小看这1子!2015年12月22日,金龙城杯第2届世界围棋团体决赛在广州白云宾馆战罢,韩国种子队执白288手1/4子险胜中国种子队,赢得200万冠军奖金!而亚军只有80万,这1/4子可是决定了200万的资金归属呢!!!

所以,要计算一块棋的活棋子数,正确的步骤是:

一、确定活棋的边界,公共点必须轮流全部填满,否则公共点会被双方平分;

二、清除死子;

三、整地。

1、将黑棋整理成以5个交叉点为边长或是以10个交叉点为边长的小方块,这个由交叉点组成的小方块,交叉点数最好是10或10的倍数,比较容易记住!如下图:

这是一个13路棋盘,

左边是边长为5个交叉点的小方块,这个小方块一共围住了5*2=10个交叉点,我们可以拿棋盘外的一个白子放在桌子上,一白子=10个黑棋交叉点;

右边是边长为10个交叉点的小方块,小朋友们有没有发现,从上面那个星位一直到棋盘边缘,刚刚好是10个交叉点呢!这个小方块一共围住了10*4=40个交叉点,再在棋盘外放4个白子。

PS:在标准的19*19的大棋盘中,中间的星位到棋盘一线也刚好是10个交叉点。如下图:

2、再把方块数与剩余棋子数相加,计算共有多少子,如下图:

把剩余棋子排成以上图形,5子一排,10子两排并列,得出左边黑棋围得地盘是 10+10+1=21子,右边是40+10+5=55子。

小朋友们学会了吗?

小朋友们学会了如何计算一块活棋的子数之后,再来计算一方的活棋子数就变得简单多了。为了简便,我们以13路棋盘为例,如下图↓↓↓:

根据老师所讲的三个步骤,小朋友们试着数数,到底谁胜谁负呢?

正确的答案是:

一、确定边界,所有公共点必须轮流全部填满,如下图↓↓↓:

二、清除死子,小棋手们一定要自己拿掉自己的死子哦,如下图中的▲,都是死子↓↓:

三、整地,选择一方进行数子,如数黑棋,这并不影响最终结果。

1、把地盘整理成以5个交叉点为边长或是以10个交叉点为边长的小方块,这个由交叉点组成的小方块,交叉点数最好是10或10的倍数,比较容易记住!在这里要提醒下小棋手们,整地时,只能移动数子方的棋子,如下图↓↓↓:

注:把上图中的黑△移到○处,剩余的黑△从棋盘上拿掉并不影响最终结果。如下图↓:

从上图可知,左上黑棋方块有20子,右上黑棋方块有10子,下面的黑棋方块有20子,合共是50子,请小朋友在棋盘外摆5个白子,一个白子代表10个黑子。

接下来数剩下的棋子,把棋子排成以下图形,5子一排,10子两排并列,如下图↓↓↓:

到此,我们已经可以得出结论:

黑棋的活棋子数为:50+10+10+10+9=89

由于是13路棋盘,一共有13*13=169个交叉点,169/2=84.5,

因此,在不贴子的情况下,黑白双方都必须占到85子的地盘才算赢,所以,这盘棋是黑棋赢了4.5子。

如果是标准大棋盘的话,19*19=361个交叉点,361/2=180.5,

又因在分先的情况下,黑棋要贴还白棋3又3/4子,所以,黑棋要约185子才算赢,而白棋只需约177子。

小棋手们都学会了吗?

围棋JAVA判断胜负_几张图教会你:围棋终局胜负计算相关推荐

  1. java 变量锁_一张图看透java的“锁”事

    Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率. Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家 ...

  2. java数据类型划分_一张图搞定java数据类型的划分

    基本数据类型 byte.short.int.long.float.double.char.boolean Java基本数据类型的大小.范围.默认值 No. 数据类型 大小/位 可表示的数据范围 默认值 ...

  3. 几张图教会你画折弯钣金件

    几张图教会你画折弯钣金件 在非标这个行业,往往折弯件,钣金件,用的非常多,这就要求我们要学会钣金件的绘制.接下来我将详细介绍一下简单折弯件如何建模的. 1.首先绘制一个矩形 2.点击钣金这一栏的基体法 ...

  4. python构造方法与java区别_一张图秒懂Java和Python的区别,你知道吗?

    对于程序员的语言千千万JAVA\C\C++\PHP\Python不同的程序员使用着不同的语言,做着功能相似需求却不同的产品. 但是最近Python在人工智能的推动下突然出现在人们的面前,其实和Java ...

  5. java 原型图_一张图搞懂原型、原型对象、原型链

    基本概念 在javascript中,函数可以有属性. 每个函数都有一个特殊的属性叫作原型(prototype) 每个对象拥有一个原型对象 [[Prototype]] / __proto__ / Obj ...

  6. 一张图了解python基本语法_一张图认识Python(附基本语法总结)

    一张图带你了解Python,更快入门, 一张图认识Python(附基本语法总结) Python基础语法总结: 1.Python标识符 在 Python 里,标识符有字母.数字.下划线组成. 在 Pyt ...

  7. 学Java还是Python?一张图告诉你!

    Java 和 Python 一直都是两种很火很强大的编程语言,对于刚开始起步学习编程的同学来说,会迷惑且最经常问的问题是,我该学 Java 还是 Python,是不是 Python 容易学,或是应该先 ...

  8. oauth2 增加token 返回参数_一张图搞定OAuth2.0

    公众号:低并发编程(dibingfa) 目录 1.引言 2.OAuth2.0是什么 3.OAuth2.0怎么写 1.引言 本篇文章是介绍OAuth2.0中最经典最常用的一种授权模式:授权码模式 非常简 ...

  9. javafx应用启动自动执行函数_一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式...

    前言 有时候我们需要在应用启动时执行一些代码片段,这些片段可能是仅仅是为了记录 log,也可能是在启动时检查与安装证书 ,诸如上述业务要求我们可能会经常碰到 Spring Boot 提供了至少 5 种 ...

最新文章

  1. 用Transformer定义所有AI模型!特斯拉AI总监Karpathy发推感叹AI融合趋势
  2. optee内核中malloc函数的原理介绍
  3. MANIFEST.MF文件全面解析
  4. SAP Spartacus里的产品主数据显示的数据源
  5. string concat_Java String concat()方法与示例
  6. 二叉搜索树(BST树)的简单实现
  7. 服饰贴图定制小程序V1.2.4安装更新一体包+小程序前端
  8. jquery插件dataTables(dataTables在显示表格的时候,果然是个好东西,支持排序/搜索/分页/...)
  9. linux文件夹做链接,linux为什么不能给目录做硬链接
  10. 【Java SE】记录一次Java实验(多态,集合,泛型)
  11. UI素材干货|听说UI设计师更喜欢Sketch
  12. cordova打开外部链接_企业网盘的分享链接功能 这种的你一定没见过
  13. 利用base64展示图片
  14. python数列的平方_python数组平方
  15. 服务器c盘里面哪些是临时文件,别再让你系统产生的大量临时文件占用C盘了的方法...
  16. oracle_用户与概要文件
  17. wordcloud:利用fontawesome字体绘制图标词云图
  18. html表单设计姓名性别,编写一个表单页面census.html,让用户填写姓名、性别(男女选择)、兴趣(运动,读书,音乐,书法及其他)...
  19. MySQL5数据库更改默认等待连接时间(wait_timeout)
  20. Linux下如何播放CSF格式视频

热门文章

  1. 使用scp在俩台电脑上传输文件
  2. MediaPlayer实现金额的语音播报功能 1
  3. emif接口速率问题_基于EMIF接口的双速率1553B总线设备通信方法与流程
  4. 高斯混合模型leaning note
  5. oracle 自增id,oracle实现自增id
  6. (转)名企工资一览表 更加明确 自己的目标。
  7. CelebA数据集介绍以及预处理代码
  8. Java贪吃蛇应用的设计与实现
  9. android 动画设计,Android loading动画设计分析
  10. 【Ruby on Rails】2021 OWASP TOP 10 的安全加固建议