黑白子问题

问题描述:两人下棋,一方执黑棋,一方执白棋。要求双方轮流下子。给出两种情况的解决办法。

1)执黑子一方先下

2)双方都可以先下,谁先抢到棋盘谁先下。然后开始轮流下子。


1.黑棋先下

黑:

while(没结束){

wait(b);

下一黑棋;

signal(w);

}

白:

while(没结束){

wait(w);

下一白棋;

signal(b);

}

2.设先抢到谁先下

seamphore bf=1;  wfg=0;  m=1;

boolean fg=F;

void main(){

black();

white();

}

void black(){

wait(m);

if!fg { bfg=1;  wfg=0;  fg=T}

signal(m) ;

while(ture){

wait(bfg);

if whereput()

put a black qizi;

       }

}

void white(){

wait(m);

if!fg { bfg=0;  wfg=1;  fg=T}

signal(m) ;

while(ture){

wait(wfg);

put a black qizi;

       }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容