五子棋的下法-五子棋的棋局流程
五子棋学法简单,但内容丰富,简简单单黑白二子就可以变化复杂,或以攻为守,或招招进逼,或死守门户伺机还击,总的来说,五子棋可以锻炼记忆力和推测能力,同时还能锻炼思维的反应。
第一条 五子棋的棋具
1、棋盘
棋盘由纵横各十五条等距离、垂直交叉的平行线构成。形成225个交叉点,简称为“点”。
棋盘整体形状以及每个格子纵、横向相比,横向稍短,通常为每格2.4厘米×2.3厘米。正中央的圆点又称“天元”。
2、棋子
棋子分黑白两色,形状为扁圆形体。
棋子的数量应能保证顺利终局。正式比赛以黑113子、白112子为宜。
第二条 五子棋的下法
1、对局双方各执一色棋子。
2、空枰开局。
3、黑先白后,交替落一子于棋盘的空点上轮流落子是双方的权利,允许任何一方放弃下子权。无论落子或弃权,均称为一手棋。
4、棋子落定后,不再向其他点移动。落定后移动棋子视为悔棋,判负。
5、五子棋的目标是在直线(阳线)或45°斜线(阴线)上形成同色五子紧密相连。
第三条 五子棋的棋局流程
完整的棋局包括五个阶段:
1、准备阶段:包含礼节及确定开局阶段的先后手两个程序。先后手由抽签、猜先或棋赛的竞赛规则确定。
2、开局阶段:又称自由座子阶段。由对局双方将两白两黑四枚棋子置于棋盘的任意四点处。一般由先手方置第一手黑棋及第四手白棋,由后手方置第二手白棋及第三手黑棋。开局阶段不允许弃权。
3、预判阶段:对局双方根据前四手的配置,预判终局结果,以“某色棋若干手(形成五连)”形式的陈述封陈于裁判(或对方)。裁判(双方)公示双方预判结果并由此确定双方的棋色及终局胜负判定依据。
(1)由判定某色棋更优者执该色棋子,对方执另一色。若双方所判定的`终局结果相同,则由原先手方执黑先行。
(2)双方判定的某色棋五连手数的平均数为判定胜负的依据,实际手数小于等于该数则判执该色棋者胜。若达到协定手数时未能形成五连或在此之前对方形成五连,则判执该色棋者负。允许预判为和棋,但必须分胜负的棋局不能预判为和棋。
(3)预判阶段限时以比赛总时间的五分之一为宜,或由棋赛的竞赛规则确定。
先手方从第三座子落于棋盘时开始计时,后手方从第四座子落于棋盘时开始计时。超时判负。
【例1】某局甲判断“白子42手(形成五连)”,乙判断“白子46手(形成五连)”则确定甲执白、乙执黑白子在44手之前形成五连则白胜,白子恰好在44手形成五连则判和,除此两种情形外均为黑胜。
【例2】某局甲判断“白子42手(形成五连)”,乙判断“黑子43手(形成五连)”则确定甲执白、乙执黑棋局手数无限制,直至出现某色棋子五连或和棋。
【例3】某局甲判断“和”,乙判断“黑子43手(形成五连)”则确定甲执白、乙执黑棋局手数无限制,直至出现某色棋子五连或和棋。判黑子出现五连则黑胜,否则白胜。
【例4】某局甲(先手方)、乙均判断“白子42手(形成五连)”则确定甲执黑、乙执白白子在42手之前形成五连则白胜,白子恰好在42手形成五连则判和,除此两种情形外均为黑胜。
必须分胜负的棋局应协定必然能分胜负的依据。
4、对局阶段:从第五手开始,执黑者先行,每人轮流落一子于棋盘上。(双方都有禁手,落子成禁立即判负。)
5、终局阶段:结束对局并根据预判阶段确定的终局胜负判定依据判定胜负。
(1)达到胜负依据的限制手数,结束对局。
(2)在胜负依据的限制手数内某色棋子形成五连,结束对局。
(3)胜负依据中没有手数限制,又最终形成和局,结束对局。
(2)对局中有一方中途认输时,结束对局。
(4)参赛一方弃权、超时、因故被判负或判和的棋局,均作终局处理。
胜负判定陈述为“某色棋总手数/某色棋限定手数胜”、“某色棋中盘胜”、“和”等。
【例5】某局预判阶段确定白子在42手之前形成五连则白胜。
(1)白子于40手形成五连,则胜负判定陈述为:“白40手/白42手胜”。
(2)白子于42手形成五连,则胜负判定陈述为:“白42手/白42手和”。
(2)黑子于41手形成五连,则胜负判定陈述为:“黑41手/白42手胜”。
(3)白子于42手未能形成五连,则胜负判定陈述为:“黑42手/白42手胜”。
【例6】某局预判阶段确定棋局手数无限制,直至出现某色棋子五连或和棋。
(1)白子于40手形成五连,则胜负判定陈述为:“白40手/无限制胜”。
(2)205手后握手言和,则胜负判定陈述为:“205手/无限制和”。
【例7】某局预判阶段确定棋局手数无限制,直至出现某色棋子五连或和棋黑子出现五连则黑胜,否则均白胜。
(1)白子于40手形成五连,则胜负判定陈述为:“白40手/黑无限制胜”。
(2)205手后握手言和,则胜负判定陈述为:“白205手/黑无限制胜”。
楼主要是觉得看的不舒服可以拷到记事本里看~ import java.applet.* import java.awt.* import java.awt.event.* import java.applet.Applet import java.awt.Color//这一段import就不说了,下面要用到的就import进来 public class wuziqi extends Applet implements ActionListener,MouseListener,MouseMotionListener,ItemListener //继承Applet表明是个applet,后面的接口必须要实现每个接口的所有方法 { int color_Qizi=0//旗子的颜色标识 0:白子 1:黑子 int intGame_Start=0//游戏开始标志 0未开始 1游戏中 int intGame_Body[][]=new int[16][16]//设置棋盘棋子状态 0 无子 1 白子 2 黑子 Button b1=new Button("游戏开始") Button b2=new Button("重置游戏")//两个按钮 Label lblWin=new Label(" ")//这个label用来显示最后输赢信息的,先留空 Checkbox ckbHB[]=new Checkbox[2]//用来表明选择黑气或白棋先走的checkbox CheckboxGroup ckgHB=new CheckboxGroup()//两个checkbox必须放在同一个checkboxgroup里才能做到单选 public void init() //初始化,堆砌界面 { setLayout(null)//不设布局管理器 addMouseListener(this)//将本类作为鼠标事件的接口响应鼠标动作 add(b1)//将事先定义好的第一个按钮添加入界面 b1.setBounds(330,50,80,30)//设置第一个按钮左上角的位置和大小 b1.addActionListener(this)//将本类作为按钮事件的接口响应按钮动作 add(b2)//将事先定义好的第二个按钮添加进去 b2.setBounds(330,90,80,30)/设置第二个按钮左上角的位置和大小 b2.addActionListener(this)//将本类作为按钮事件的接口响应按钮动作 ckbHB[0]=new Checkbox("白子先",ckgHB,false)//new一个checkbox ckbHB[0].setBounds(320,20,60,30)//设置左上角位置和大小 ckbHB[1]=new Checkbox("黑子先",ckgHB,false)//new第二个checkbox ckbHB[1].setBounds(380,20,60,30)//设置左上角位置和大小 add(ckbHB[0])//将第一个checkbox加入界面 add(ckbHB[1])//将第二个checkbox加入界面 ckbHB[0].addItemListener(this)//将本类作为其事件接口来响应选中动作 ckbHB[1].addItemListener(this)//将本类作为其事件接口来响应选中动作 add(lblWin)//将标签加入界面 lblWin.setBounds(330,130,80,30)//设置标签的左上角位置和大小 Game_start_csh()//调用游戏初始化 } public void itemStateChanged(ItemEvent e) //ItemListener接口中的方法,必须要有 { if (ckbHB[0].getState()) //选择黑子先还是白子先 { color_Qizi=0//白棋先 } else { color_Qizi=1//黑棋先 } } public void actionPerformed(ActionEvent e) //ActionListener接口中的方法,也是必须的 { Graphics g=getGraphics()//这句话貌似可以去掉,g是用来画图或者画界面的 if (e.getSource()==b1) //如果动作的来源是第一个按钮 { Game_start()//游戏开始 } else //否则 { Game_re()//游戏重新开始 } } public void mousePressed(MouseEvent e){} //MouseListener接口中的方法,用不到所以留个空,但一定要有 public void mouseClicked(MouseEvent e) //鼠标单击时 { Graphics g=getGraphics()//获得画笔 int x1,y1 x1=e.getX()//单击处的x坐标 y1=e.getY()//单击处的y坐标 if (e.getX()<20 || e.getX()>300 || e.getY()<20 || e.getY()>300) //在棋盘范围之外 { return//则这是不能走棋的,直接返回 } //下面这两个if和两个赋值的作用是将x和y坐标根据舍入原则修改成棋盘上格子的坐标 if (x1%20>10) { x1+=20 } if(y1%20>10) { y1+=20 } x1=x1/20*20 y1=y1/20*20 set_Qizi(x1,y1)//在棋盘上画上一个棋子 } public void mouseEntered(MouseEvent e){} //MouseListener接口中的方法,用不到所以留个空,但一定要有 public void mouseExited(MouseEvent e){} //MouseListener接口中的方法,用不到所以留个空,但一定要有 public void mouseReleased(MouseEvent e){} //MouseListener接口中的方法,用不到所以留个空,但一定要有 public void mouseDragged(MouseEvent e){} //MouseListener接口中的方法,用不到所以留个空,但一定要有 public void mouseMoved(MouseEvent e){} //MouseListener接口中的方法,用不到所以留个空,但一定要有 public void paint(Graphics g) //重绘和applet程序装载的时候会调用这个绘制的过程 { draw_qipan(g)//画棋盘 }(1)对局双方各执一色棋子。
(2)空棋盘开局。
(3)黑先、白后,交替下子,每次只能下一子。
(4)棋子下在棋盘的空白点上,棋子下定后,不得向其它点移动,不得从棋盘上拿掉或拿起另落别处。
(5)黑方的第一枚棋子可下在棋盘任意交叉点上。
(6)轮流下子是双方的权利,但允许任何一方放弃下子权(即:PASS权)
五子棋对局,执行黑方指定开局、三手可交换、五手两打的规定。整个对局过程中黑方有禁手,白方无禁手。黑方禁手有三三禁手、四四禁手和长连禁手三种。
扩展资料
1,五子棋是世界智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏,是世界智力运动会竞技项目之一,通常双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成5子连线者获胜。
2,棋具与围棋通用,起源于中国上古时代的传统黑白棋种之一。主要流行于华人和汉字文化圈的国家以及欧美一些地区,是世界上最古老的棋。
3,容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。已在各个游戏平台有应用。
参考资料百度百科;五子棋
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)