有一种棋,盖子竖起来做棋盘,红蓝两种棋子,玩法有点像五子棋有多少棋子,叫什么

加载中,请稍候...
加载中,请稍候...
商品名称:
京东价:暂无报价
评价得分:
咨询内容:
请问一下有多少个棋子啊
京东回复:
您好!黑子有101粒,白子有100粒,总计有201粒。感谢您对京东的支持!祝您购物愉快!
发表咨询:
声明:您可在购买前对产品包装、颜色、运输、库存等方面进行咨询,我们有专人进行回复!因厂家随时会更改一些产品的包装、颜色、产地等参数,所以该回复仅在当时对提问者有效,其他网友仅供参考!咨询回复的工作时间为:周一至周五,9:00至18:00,请耐心等待工作人员回复。
咨询类型:
库存及配送
发票及保修
促销及赠品
京东承诺:商品均为原装正品行货,自带机打发票,严格执行国家三包政策,享受全国联保服务。
功能咨询:咨询商品功能建议您拨打各品牌的官方客服电话,以便获得更准确的信息。
发货时间:现货:下单后一日内即可发货;在途:一般1-2天发货; 预订:一般1-6天可发货;无货:已售完,相应物流中心覆盖地区内的用户不能购买
运&&&&费:如需查看快递运输收费标准及免运费规则,
货到付款:如需查看开通货到付款地区及运费,
上门自提:上门自提不收取运费,如需查看全部自提点位置、地图、注意事项,
物流中心:京东商城拥有北京、上海、广州三个物流中心,各物流中心覆盖不同的城市,
限&&&&额:如需查看各银行在线支付限额,
大额支付:快钱支付中的招行、工行、建行、农行、广发支持大额支付,最高单笔一次支付10000元
分期付款:单个商品价格在500元以上,可使用中国银行、招商银行发行的信用卡申请分期付款,
货到付款:如需查看开通货到付款地区及运费,
京东承诺:商品均为原装正品行货,自带机打发票,严格执行国家三包政策,享受全国联保服务。
发票类型:京东商城所售商品均自带机打发票,在提供相关企业资料证明后,可申请开取增值税发票。
退 换 货:京东商城为您提供完善的退换货服务,
咨询内容:在6*6的五子棋棋盘中都是棋子,求去掉最少的棋子使这个棋盘里不存在任何五子棋连线_百度知道
在6*6的五子棋棋盘中都是棋子,求去掉最少的棋子使这个棋盘里不存在任何五子棋连线
在6*6的五子棋棋盘中都是棋子,求去掉最少的棋子使这个棋盘里不存在任何五子棋连线(也就是没有五个连续的棋子横行,纵行,斜行)。(十分对不起没有财富)其实我已经知道答案是7,但是不管我怎么推都是8种,有人能做一个示意图出来吗谢谢了
提问者采纳
看下图:利用五子棋的八卦阵。答案是7,不可能是6的。
提问者评价
谢谢了!什么是五子棋的八卦阵呢
其他类似问题
为您推荐:
五子棋的相关知识
其他1条回答
不好发 啊,可以是6的
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁五子棋二&&在棋盘上添加棋子&&&透明位图显示
首先是添加一个鼠标左键点击响应的函数。
然后当鼠标点击时就添加图片。
我是默认先下黑棋的,我现在的做法是在这个期盼范围类,累计点击的次数,当点击次数为单数时:下黑棋;当点击次数为双数时:下白棋。
void CFiveChess1View::OnLButtonDown(UINT nFlags, CPoint
&// TODO: 在此添加消息处理程序代码和/或调用默认值
&&& CDC *pDC
mx=(point.x-59)/30;
&int my=(point.y-72)/30;
(mx&=0&&mx&15&&my&=0&&my&15)
if (m_chessNum%2==1)
pDC-&TransparentBlt(mx * 30 + 59,my * 30 +
72,27,28,&m_BlackChessDC,0,0,27,28,RG(255,255,255));
&& m_chessNum++;
& else if (m_chessNum%2==0)
pDC-&TransparentBlt(mx * 30 + 59,my * 30 +
72,27,28,&m_WhiteChessDC,0,0,27,28,RG(255,255,255));
&& m_chessNum++;
&在棋盘上添加棋子的时候遇到的问题,不过我用TransparentBlt这个函数后,白色的棋子中间有个小黄点,这个先暂时不做处理了。
棋子添加号了之后,现在就是要实现在我们要下棋子的位置已经有棋子之后,这个棋子就不能再在这个地方添加了。显然。这时候我们需要增加一个变量来记录棋盘上棋子的状态。(即在同一个位置只能有一个棋子)。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。下次自动登录
现在的位置:
& 综合 & 正文
android游戏开发之我的小小游戏1——五子棋游戏1之绘制棋子与棋盘
之前写过的技术类博客很少,如果写的不好还请大家见谅!
写博客的目的,一是想把自己做过的一些小的练习记录一下,以便在日后的某一个时间自己回忆起自己前一段时间到底有过什么样的学习经历的时候作为一个参照,二是希望自己做的一些东西能给其他想要学习的人一点参考,毕竟自己在学习开发的这条路上也是参考了别人的许多例子,也学习了别人的很多经验,所以想把互联网的这份分享的精神传承下去,三是感觉自己在编程这一块已经到达入门的级别了,想通过自己的分享与记录,给自己一点动力,让自己更好的坚持下去,能够每天花更多的时间去专注在学习方面。首先,此次的博客的编写我将把它定位成一个系列,在这个系列中,我会以实例的形式来讲解android游戏的所有开发的步骤,估计会有8-10个游戏会陆续的跟大家见面的,由于自己本身现在在上班,所以时间不是很充裕,一般会在每周日定时更新博客,而每一周至少更新一个游戏的所有相关内容。
首先要编写android中的游戏,要了解android在游戏开发的过程中要用到的两个类view、SurfaceView,另外还有一个GLSurfaceview主要是编写3D游戏的好像,现在自己涉及的比较少,所以在这里也不会讲。
View与SurfaceView有什么区别呢,我想大家在网上也能找到很多相关的答案,自己也在这里再重复一下别人的总结,当然也是自己在开发中的体会。
SurfaceView和View最本质的区别在于,surfaceView可以在一个新起的单独线程中重新绘制画面而View必须在UI的主线程中更新画面,所以这就有问题发生了,当我们重新绘制画面所要耗费的时间比较的长时,那么在UI的主线程中更新画面 可能会引发问题,比如你更新画面的时间过长,那么你的主UI线程会被你正在画的函数阻塞。那么将无法响应按键,触屏等消息。
   当使用surfaceView 由于是在新的线程中更新画面所以不会阻塞你的UI主线程。但这也带来了另外一个问题,就是事件同步。比如你触屏了一下,你需要surfaceView中 thread处理,一般就需要有一个事件队列的设计来保存touch event,这会稍稍复杂一点,因为涉及到线程同步。
  所以基于以上,根据游戏特点,一般分成两类。
  1 被动更新画面的。比如棋类,这种用view就好了。因为画面的更新是触摸屏幕来更新,可以直接使用 invalidate或postInvalidate(在后面会详细讲解一下这两个函数的区别) ,因为这种情况下,这一次触摸屏幕和下一次的触摸屏幕需要的时间比较长些,不会产生影响。
2 主动更新。比如一个人在一直跑动。这就需要一个单独的thread不停的重绘人的状态,避免阻塞主UI线程。所以显然view不合适,需要surfaceView来控制。
所以五子棋也就要用View来写了。
下面开始上:
主要是绘制棋盘与棋子的部分
public class GameView extends View {
//屏幕的宽和高
private int screenWidth = 0;
private int screenHeight = 0;
//画棋盘的起始位置
private int startX = 0;
private int startY = 0;
//棋盘中每个格子的高和宽
private int GRID_WIDTH = 40;
private int GRID_NUM = 12;//要画的棋盘中的线数
private Paint paint =
//表示棋子的二维数组,其中数组中的每一个元素代表棋盘上的一个点
private int[][] chess = new int[GRID_NUM][GRID_NUM];
private int CHESS_BLACK = 1;//表示棋子的颜色,1代表黑色,2代表白色,0达标没有棋子
private int CHESS_WHITE = 2;
private int chess_flag = 0;//用于记录上一次下的棋子的颜色,1为黑色,2为白色,0是刚开始下棋,上一次没下棋子
public GameView(Context context) {
super(context);
paint = new Paint();//实例化一个画笔
paint.setColor(0xff000000);//设置画笔的颜色
paint.setAntiAlias(true);//设置画笔去锯齿,没有此语句,画的线或图片周围不圆滑
protected void onDraw(Canvas canvas) {//重写View中的该方法,该方法主要承担绘图的工作,每刷新一次,就调用一次该方法
super.onDraw(canvas);
canvas.drawColor(0xffd700);//把屏幕的底色绘成黄色,此处不仅仅是起把屏幕绘成这种颜色的作用,还有刷屏的作用,对以前绘制的进行清除
paint.setColor(0x458b00);//此处是把画笔变成绿色,是绘制的棋盘变成绿色
for(int i=0;i&GRID_NUM;i++)
canvas.drawLine(startX, startY+i*GRID_WIDTH,startX+(GRID_NUM-1)*GRID_WIDTH , startY+i*GRID_WIDTH, paint);
canvas.drawLine(startX+i*GRID_WIDTH, startY,startX+i*GRID_WIDTH , startY+(GRID_NUM-1)*GRID_WIDTH, paint);
//绘制棋子
for(int i=0;i&GRID_NUM;i++)
for(int j=0;j&GRID_NUM;j++)
if(chess[i][j] == CHESS_BLACK)
paint.setColor(0xff000000);//黑色画笔,画黑棋
canvas.drawCircle(startX+i*GRID_WIDTH,startY+j*GRID_WIDTH , 15, paint);
if(chess[i][j] == CHESS_WHITE)
paint.setColor(0xffffffff);//白色画笔,画白棋
canvas.drawCircle(startX+i*GRID_WIDTH,startY+j*GRID_WIDTH , 15, paint);
//重写View的监听触摸事件的方法
public boolean onTouchEvent(MotionEvent event) {
float touchX = event.getX();
float touchY = event.getY();
if(touchX & startX || touchX&startX+(GRID_NUM-1)*GRID_WIDTH || touchY & startY || touchY&startY+(GRID_NUM-1)*GRID_WIDTH)
{//点击到棋盘以外的位置
System.out.println("......哥们点跑偏了,呵呵");
//根据点击的位置,从而获知在棋盘上的哪个位置,即是数组的脚标
int index_x = Math.round((touchX-startX)/GRID_WIDTH);
int index_y = Math.round((touchY-startY)/GRID_WIDTH);
System.out.println("..."+index_x+"..."+index_y);
System.out.println("...startX"+startX+"...touchX"+touchX);
if(chess_flag == 0)
{//此句表示在最开始下棋的时候每次都是黑棋先下
chess[index_x][index_y] = CHESS_BLACK;
chess_flag = CHESS_BLACK;
}else if( chess_flag == CHESS_BLACK && chess[index_x][index_y] == 0)
chess[index_x][index_y] = CHESS_WHITE;
chess_flag = CHESS_WHITE;
}else if(chess_flag == CHESS_WHITE && chess[index_x][index_y] == 0)
chess[index_x][index_y] = CHESS_BLACK;
chess_flag = CHESS_BLACK;
invalidate();//点击完成后,通知重绘即再次执行onDraw方法
return super.onTouchEvent(event);
函数中的 if( chess_flag == CHESS_BLACK && chess[index_x][index_y] == 0)的语句中的chess[index_x][index_y] == 0主要是判断当前位置上现在是否有棋子,如果有就不能再这个位置上再放置棋子了
&&&&推荐文章:
【上篇】【下篇】

我要回帖

更多关于 五子棋有多少棋子 的文章

 

随机推荐