编写一个简易五子棋,棋盘在控制台中绘制,棋盘每- - 个点都有对应的坐标,下棋者输
入对应坐标落棋子,运行效果如图所示。两位数字表示的坐标中,第-一个数字表示横坐标,
第二个数字表示纵坐标,运行结果如图所示。


package Test;import java.util.Scanner;public class Test4 {public static void main(String[] args) {int flag = 0;   //偶数玩家一操作,奇数玩家二操作int works=0;    //判断是否胜利,若胜利则为4int works_x=0;  //胜利时最后一步的x值int works_y=0;  //胜利时最后一步的y值String list[][] = start(); //棋盘的生成,和显示for (int i = 0; i < list.length; i++) {for (int j = 0; j < list[i].length; j++) {System.out.print(list[i][j]);}System.out.println();}while (true) {  //循环操作和显示结果,胜利时跳出Scanner sc = new Scanner(System.in);System.out.print("位置:");String temp = sc.next(); //棋手输入的x值和y值(此方法中为0-9的数)int x = Integer.parseInt(temp.substring(0,1));int y = Integer.parseInt(temp.substring(1));if (flag % 2 == 0){//玩家一操作,此位置为" - "时可操作,否则重新输入if (list[x+1][y+1]==" - ")list[x+1][y+1] = " O ";elseflag--;}else{              //玩家二操作,此位置为" - "时可操作,否则重新输入if (list[x+1][y+1]==" - ")list[x+1][y+1] =" X ";elseflag--;}flag++;          //每次操作成功+1,下一玩家操作for (int i = 0; i < list.length; i++) {//显示操作结果for (int j = 0; j < list[i].length; j++) {System.out.print(list[i][j]);///*if (list[i][j]!=" - "){//判断是否胜利,只有非“ - ”时判断if(work(list,i,j)==4){works=work(list,i,j);works_x=x;works_y=y;}}//*/}System.out.println();}if(works!=0){//最后值为“ O ”时,玩家一胜出;最后值为“ X ”时,玩家二胜出。if(list[works_x][works_y]==" O ")System.out.println("玩家一胜出");elseSystem.out.println("玩家二胜出");System.out.println("结束");break;}}}public static String[][] start() {  //生成一个10*10的空棋盘String list[][] = new String[11][11];for (int i = 0; i < list.length; i++) {for (int j = 0; j < list[i].length; j++) {if(i == 0 && j==0)list[i][j] = "   ";else if (i == 0 && j!=0)list[i][j] = " "+(j-1)+" ";else if (j==0 && i!=0)list[i][j] = " "+(i-1)+" ";elselist[i][j] = " - ";}}return list;}public static int work(String list[][],int x,int y) {//判断是否胜利//if(x-5>0 || y-5>0 ||x+5<list.length ||y+5<list[x].length)int temp=0;if(x-4>0 ){if(y-4>0 ){                  //左上角是否五子连线for(int i=0;i<4;i++){if (list[x][y]==list[x-5+i][y-5+i])temp++;elsebreak;}}else if(y+4<list[x].length){//右上角是否五子连线for(int i=0;i<4;i++){if (list[x][y]==list[x-4+i][y+4-i])temp++;elsebreak;}}else{for(int i=0;i<4;i++){  //正上角是否五子连线if (list[x][y]==list[x-4+i][y])temp++;elsebreak;}}}else if(x+4<list.length ){    //左下角是否五子连线if(y-4>0 ){for(int i=0;i<4;i++){if (list[x][y]==list[x+4-i][y-4+i])temp++;elsebreak;}}else if(y+4<list[x].length){//右下角是否五子连线for(int i=0;i<4;i++){if (list[x][y]==list[x+4-i][y+4-i])temp++;elsebreak;}}else{for(int i=0;i<4;i++){  //正下角是否五子连线if (list[x][y]==list[x+4-i][y])temp++;elsebreak;}}}else{if(y-4>0 ){for(int i=0;i<4;i++){  //正左角是否五子连线if (list[x][y]==list[x][y-4+i])temp++;elsebreak;}}else if(y+4<list[x].length){//正右角是否五子连线for(int i=0;i<4;i++){if (list[x][y]==list[x][y+4-i])temp++;elsebreak;}}}return temp;}
}

Java 简易五子棋游戏的编写相关推荐

  1. JAVA简易五子棋游戏

    这是我们的第一次java作业,一个五子棋小游戏,不用实现屏幕交互 由于初学,找了很多资料,调试了很多遍才成功 放代码: package java1; import java.util.Arrays; ...

  2. java 五子棋 简单_java实现简易五子棋游戏

    本文实例为大家分享了java实现简易五子棋游戏的具体代码,供大家参考,具体内容如下 编写一个简易五子棋,棋盘在控制台中绘制,棋盘每- - 个点都有对应的坐标,下棋者输 入对应坐标落棋子,运行效果如图所 ...

  3. 五子棋java设计引言_基于JAVA的五子棋游戏系统设计与实现报告.doc

    PAGE \* MERGEFORMAT PAGE \* MERGEFORMAT I 基于JAVA的五子棋游戏系统设计与实现 专 业 电子信息工程 学 生 董永杰 指导教师 曾玉 摘要 PAGE \* ...

  4. java版五子棋分析_基于JAVA的五子棋游戏系统设计实现分析.doc

    WORD格式整理版 WORD格式整理版 学习好帮手 学习好帮手 基于JAVA的五子棋游戏系统设计与实现 专 业 电子信息工程 学 生 董永杰 指导教师 曾玉 WORD格式整理版 学习好帮手 摘 要 目 ...

  5. 【QT项目】简易五子棋游戏(人机对战)— 完整源码

    文章目录 前言 一.游戏实现效果 二.需求分析 三.解决方案 四.核心步骤 1.插入棋盘图 2.双方落子 3.输赢判定 4.重新开始 五.完整源码 1.main.cpp 2.chessboard.h ...

  6. 基于java的五子棋游戏的设计_基于Java的五子棋游戏的设计

    摘  要 五子棋作为一个棋类竞技运动,在民间十分流行,为了熟悉五子棋规则及技巧,以及研究简单的人工智能,决定用JAVA开发五子棋游戏.主要完成了人机对战和玩家之间联网对战2个功能.网络连接部分为Soc ...

  7. java五子棋游戏设计_基于Java的五子棋游戏的设计

    摘  要 五子棋作为一个棋类竞技运动,在民间十分流行,为了熟悉五子棋规则及技巧,以及研究简单的人工智能,决定用JAVA开发五子棋游戏.主要完成了人机对战和玩家之间联网对战2个功能.网络连接部分为Soc ...

  8. java入门-五子棋游戏的制作

    java入门-五子棋游戏的制作 想要开发一个简单的五子棋游戏,需要实现五子棋的棋盘.棋子.输赢判定.重新开始游戏.悔棋.认输.人机大战以及退出游戏等功能. 1.实现五子棋的棋盘功能 想要实现这个功能, ...

  9. java五子棋游戏人工智能_基于java的五子棋游戏(人机对战)

    [实例简介] 我毕业设计自己做的基于java的五子棋游戏软件,获得优秀论文,功能在单纯的人机对战上算比较齐全,也比较好玩!希望为毕业设计做游戏的同学提供些查考! 软件的基本功能 软件的基本功能介绍如下 ...

最新文章

  1. 搞不懂为啥都要去字节跳动,进阿里不香吗?
  2. Lucid Sight宣布即将推出“VR云霄飞车之星际之旅”
  3. 【数理知识】方程一阶二阶及常用词语含义
  4. 最佳调度问题(SSOJ-2367)
  5. matlab中函数或变量无法识别怎么办_用MATLAB巧解微分方程实例分析
  6. vtigerCrm 目录结构(整理中)
  7. mysql跳板机_python实现ssh通过跳板机连接mysql
  8. easyui 扩展验证
  9. #论char数组结尾’\0’的必要性#
  10. 《C和C++程序员面试秘笈》——1.4 i++与++i哪个效率更高
  11. 如何在windows上 安装更新 显卡的驱动
  12. js判断设备是ios还是安卓,以及微信端
  13. OpenCV交叉编译,选项不同同样成功的路子
  14. Redmi首款超高性价比笔记本明日开售 售价3999元起
  15. 虚拟网络的无损保证-zOVN
  16. 利用 edge的朗读功能,写一个python文本转语音的代码
  17. 实战:从Python分析17-18赛季NBA胜率超70%球队数据开始…
  18. HCIE-2204-BGP
  19. 推荐一个好的数据库工具Embarcadero DBArtisan
  20. MT6177芯片资料/处理器介绍

热门文章

  1. 南航里程每年清空吗_速度用!南航里程即将大量贬值!还有每年3张南航处卡!...
  2. 【RDMA】IBV_SEND_INLINE和IBV_SEND_SIGNALED的原理|RDMA小消息通信性能优化
  3. 新、JQ知识点笔记整理。
  4. 一看就能上手的敏捷婚礼
  5. 地图php,php调用google地图
  6. 计算机考试机试题目word文档,计算机考试 word
  7. bzoj 2563阿狸和桃子的游戏
  8. 有道获取单词读音api
  9. C++ 在 windows vscode 上使用 utf-8
  10. 计算机网络实验三—— Cisco Packet Tracer 实验