❶ 将黑白两色棋子分成三堆,每堆棋子一样多,结果,第一堆里的黑子和第二堆里的白子一样多,第三堆里的黑
第一堆里的黑子和第二堆里的白子一样多,也就是说前两堆中黑子和白子各占一半,而第三堆里的黑子占全部黑子的一半,黑子占全部棋子的2分之1,白子占全部棋子的2分之1
❷ 在一个盒子里,混装了数量相等的围棋白子和黑子。现在要用自动分拣系统吧白子和黑子分开。该系统设有两个
实质上是两个进程的同步问题,设信号量S1和S2分别表示可拣白子和黑子,不失一般性,若令先拣白子。
var S1,S2:semaphore;
S1:=1;S2:=0;
cobegin
{
process P1
begin
repeat
P(S1);
拣白子
V(S2);
until false;
end
process P2
begin
repeat
P(S2);
拣黑子
V(S1);
until false;
end
}
coend.
❸ 黑白棋的设计思路
关键是电脑算法的问题,其实要实现双人对战是很简单的。至于电脑下子的算法..这个你得个专门的论文看看,要对黑白棋有很深的了解,或者直接剽窃别人的研究结果也可以,呵呵
设计思路
1.main()主函数
在主函数中,棋盘状态用数组a[8][8],初值为0,表示空格。用图形系统画出棋盘,调用playtoplay()人人对弈函数开始游戏,一旦游戏结束后,关闭图形系统,程序结束。
2.DrawQp()画棋盘函数
背景颜色设为蓝色,从坐标(100,100)开始每隔40个单位用白色画一条水平直线,一条垂直线,构成棋盘,用循环语句实现。函数setfillstyle()可以设置填充模式和填充颜色,fillellipse(int x,int y,xradius,int yradius)以x和y为圆心,xradius和yradius为水平和垂直轴画一填充椭圆,当xradius和yradius相等时,则画出的是圆,用它表示棋子。
3.SetPlayColor()设置棋子的颜色
函数的参数为整型变量t,根据t的值来设计填充棋子的当前颜色,值为1代表白棋,值为2代表黑棋。
4.MoveColor()恢复原来格子的状态
由于棋手在走棋的时候,他的棋子总是首先出现在棋盘的左上角,棋手要通过移动光标走到要落子的位置,在经过的路程上显示当前棋子,就会覆盖原来的棋盘状态,所以一旦棋子走过后,就应恢复原来的状态,是空格的依然显示空格,是棋子的就显示原来棋子的颜色。因为棋子移动过程并没有改变数组元素的值,所以可以根据数组元素的值判定原来的状态,如果值是1,就恢复白色棋子,值是2则恢复黑色棋子,否则恢复蓝色空格。
5.playtoplay()人人对战函数
这是游戏进行的函数,主要是接收棋手的按键消息,其处理过程如下:
按Esc键程序可以随时结束。
按上下左右光标键,则改变棋子移动的坐标值。
按回车键后判断。
6.QpChange()判断棋盘变化
当棋手按回车键落子后,就要分别往8个方向判断是否包围住对方棋子,如果是,则改变棋盘,也就是棋盘上黑白棋子的个数要发生变化。如果所有方向都判断过,并且没有引起棋盘的变化,则棋盘变化标志值yes为0,返回yes,结束本函数。
7.DoScore()处理分数
根据当前数组元素的值判断分数,也就是各方棋子的个数,如果数组元素值为1,白棋棋子数累加;如果数组元素值为2,则黑棋棋子数累加。
8.PrintScore()输出成绩
利用设置实体填充模式填充矩形条清除掉前次的成绩,再利用sprintf()函数将整数转换为字符串的形式,再利用outtextxy()函数将成绩输出。
9.playWin()输出胜利者结果
根据分数值score1和score2的大小得出下棋的结果,输出赢者信息。
❹ 黑白棋怎么玩
把自己颜色的棋子放在棋盘的空格上,而当自己放下的棋子在横、竖、斜八个方向内有一个自己的棋子,则被夹在中间的对方棋子全部翻转会成为自己的棋子。
夹住的位置上必须全部是对手的棋子,不能有空格。并且,只有在可以翻转棋子的地方才可以下子。一步棋可以在数个方向上翻棋,任何被夹住的棋子都必须被翻转过来,棋手无权选择不去翻某个棋子必须是刚下的子夹对方才能够翻对方的子,因翻转对方的棋子而夹住的子是不能被翻的。
翻转棋子时,有一个棋子的翻转动画大概显示1秒左右每次下子最少必须翻转对方一个棋子,若棋局中下子都不能翻转对方棋子,则轮空。若二个玩家都不能下子翻转对方棋子,游戏结束。
❺ 把一副围棋的黑白棋子混放在一个口袋里,问一次至少取出几只棋子才能保证有10只棋子颜色相同
如果是18枚,最坏的结果是9枚白棋9枚黑棋,不能保证百分之百的有10枚棋子颜色相同。如果是19枚,那至少能保证有10枚棋子颜色相同。
❻ 下棋机器人怎么区分黑白棋子颜色
看你说的是什么机器人,一种是打造出来的机器,这个可以使用机器视觉分辨,机器视觉类似人的眼睛,可以分辨出图像。
一种是人工智能程序,这种程序在下棋过程中会记录下对方,和己方下棋的位置数据或者说标记好。用以区分。