您的位置:首页 > 数据 >
java编程题:如何判断四个棋子连在一起?_环球看点
来源:CSDN 2023-01-28 09:18:27


(资料图)

非常简单的四子棋游戏

本人是刚学java的小白,最近在书上看到了有关四子棋游戏的编程题,就试着来写一写,代码也比较简单。

思路

写四子棋的难点是如何判断四个棋子连在一起。 下面给出图解: 观察上图,先从落棋点开始,设置一个计数器 i ,并初始化它为1,像左端移动,遇到的是跟落棋点相同颜色的棋子,则使 i 加1,继续向左端移动,没有棋子,则回到落棋点从而向右移动,向右端移动遇到第三个相同的棋,这时i = 3,然后继续向右移动遇到第四个棋子使 i = 4,到最后只要i = 4,即游戏胜利。再看下图。 按照上面的流程,先向左边移动,遇到没有棋子的点停止后 i = 2,再向右移动,遇到不同颜色的棋子后停止,i = 3,这样落棋点两边方向判断结束后,i < 4即游戏继续。

总结 判断游戏是否胜利,就是从棋子落点两个相反的方向,遇到相同的棋子使计数器数值加1,遇到无棋或颜色不同就结束向另一个方向,直到遇到无棋子和不同颜色的棋子,然后判断计数器是否为4。在四子棋中有7个方向需要判断。

import java.util.Scanner;/** *  *  * 玩法:1.跟五子棋玩法差不多,只是少一颗子,下棋只能选择每列下在每列棋子上面一格。 *      2.棋子分为黄、红,执黄先行。 *      3.胜利条件跟五子棋一样,就是少一颗子。 */class Desk {//棋桌类private char[][] date = new char[6][7];private Scanner scanner = new Scanner(System.in) ;private int hand = 1 ;//画出整个棋盘以及上面的棋子public void draw() {for (int i = 0; i < this.date.length; i++) {System.out.print("|");for (int j = 0; j < this.date[i].length; j++) {System.out.print(this.date[i][j] + "|");}System.out.println();}if (this.hand % 2 == 1) {System.out.print("现在是第" + this.hand + "手,轮到黄棋: ");playchess("Y");}else {System.out.print("现在是第" + this.hand + "手,轮到红棋: ") ;playchess("R");}}//控制落子public void playchess(char color) {this.hand ++;int place = scanner.nextInt() ;int i ;for (i = 5; i >= 0; i--) {//if (date[i][place] == "\u0000") {date[i][place] = color;break;}}if (i < 0)System.exit(1);else win(i, place, color) ;}//判断游戏是否有人胜利或平局(依据是根据落子位置的两个方向是否连成四子)public void win(int x, int place,char color) {int number = 1;//第一个方向(右斜线方向)for (int i = x - 1, j = place - 1; (i >= 0) && (j >= 0); i--, j--) {if (date[i][j] == color) {number++;}else break;}for (int i = x + 1, j = place + 1; (i <= 5) && (j <= if="" number="1;for" else="" int="" i="" -="" j="place">= 0) && (j <= 6); i--, j++) {if (date[i][j] == color) {number++;}else break;}for (int i = x + 1, j = place - 1; (i <= j="">= 0); i++, j--) {if (date[i][j] == color) {number ++ ;}else break;}if (number == 4)end(color, "win");//第三个方向(水平)number = 1;for (int i = x, j = place - 1; j >= 0; j--) {if (date[i][j] == color) {number ++ ;}else break ;}for (int i = x, j = place + 1; j <= 6; j++) {if (date[i][j] == color) {number ++ ;}else break;}if (number == 4)end(color, "win");//第四个方向(竖直)number = 1;for (int i = x + 1, j = place; i <= 5; i++) {if (date[i][j] == color) {number ++ ;}else break;}if (number == 4)end(color, "win") ;//判断平局for (int i = 0; i < date.length; i++) {for (int j = 0; j < date[i].length; j++) {if (date[i][j] != "Y" || date[i][j] != "R")draw() ;}}end(color, "s") ;}//判断游戏是否结束public void end(char color, String str) {if (str.equals("win")) {System.out.print(color + "棋获得胜利!!!");System.exit(0);}else {System.out.print("两棋子平局.") ;System.exit(0);}}}public class ChessOffour {public static void main(String[] args) {Desk desk = new Desk() ;desk.draw() ;}}

小白第一次写文章,代码也很可能有不足之处,谢谢大家阅读。求赞。

关键词:
相关文章
当前滚动:四川铁路电煤专列同比增长9.8%

当前滚动:四川铁路电煤专列同比增长9.8%

  今年春运以来,中国铁路成都局集团有限公司已抢卸电煤3万余车、190万余吨,其中,四川地区已抢卸电煤13万余车、83万余吨,卸车数同比增长9更多

2023-01-28 09:17:28
内蒙古:煤企生产忙 供应不断档

内蒙古:煤企生产忙 供应不断档

  春节假期,位于内蒙古乌海市的国家能源集团乌海能源公司加强煤炭生产组织,确保煤炭供应不断档。乌海能源公司提前制定计划,适时调整煤炭更多

2023-01-28 09:15:32
陕煤入渝发运量再创新高 2022年达1798.3万吨 环球速看料

陕煤入渝发运量再创新高 2022年达1798.3万吨 环

  据陕煤运销集团统计数据显示,2022年陕煤入渝发运量17983万吨,同比增长132%,入渝年度发运量创下历史新纪录,有效保障了重庆地区电力和重更多

2023-01-20 11:10:02
全球快看:为完成2023年煤炭供应目标 晋城市出台了7项措施

全球快看:为完成2023年煤炭供应目标 晋城市出台

  晋城市能源局消息,该市日前发布了煤炭增产保供和产能新增工作方案并提出,通过核增产能、扩产、新投产等方式,加快释放先进产能,充分发更多

2023-01-20 11:09:59
当前关注:2022年内蒙古煤电气产量对全国增长贡献均居首位

当前关注:2022年内蒙古煤电气产量对全国增长贡献

  2022年,内蒙古全区积极落实煤电增产保供工作,规模以上工业煤电气等主要能源产品产量均位居全国前列,对全国增长贡献率均位居首位,有力更多

2023-01-20 11:11:26
全球微速讯:山东:细化分解任务 坚决完成煤炭保供任务

全球微速讯:山东:细化分解任务 坚决完成煤炭保

  山东省政府工作报告提出,要抓好能源保供。菏泽代表团三名来自煤炭企业的省人大代表,围绕报告精神,就如何保障煤炭供应,加强能源保供建更多

2023-01-20 10:54:12
CCTD:短期煤市基本面仍难寻亮点

CCTD:短期煤市基本面仍难寻亮点

  据CCTD了解,节前最后一周,煤炭市场交易逐渐停滞,周初在封航港口库存迅速累积情况下,贸易商报价有小幅下跌。随后封航结束,港口调出恢更多

2023-01-20 11:02:24
每日观察!12月份内蒙古煤炭价格环比下降8.3%

每日观察!12月份内蒙古煤炭价格环比下降8.3%

  2022年12月份受疫情防控、原油价格变化,农业生产进程和建筑工程进展等因素影响,煤炭价格环比下降。据内蒙古自治区商务厅生产资料市场监更多

2023-01-19 10:54:37
促开采、增储备、抢维修、保运输,各地多措并举——力保群众温暖过冬过年 焦点速讯

促开采、增储备、抢维修、保运输,各地多措并举—

  中央经济工作会议要求,要做好岁末年初各项工作,强化市场保供稳价,加强能源调节,确保群众温暖安全过冬。冬季供暖事关千家万户,是重要更多

2023-01-19 10:08:31
生态环境部:推动保供煤矿全部按时保质完成环评办理

生态环境部:推动保供煤矿全部按时保质完成环评办

  生态环境部环境影响评价与排放管理司司长刘志全17日在新闻发布会上表示,2023年将落实环评审批三本台账和绿色通道机制,推进十四五重大工更多

2023-01-19 08:59:13