package com.qq.gb;import java.util.Scanner;public class GoBang {Scanner sc = new Scanner(System.in);String [][] num= new String[15][15];//创建二维数组int userId = 0;//判断当前用户 int x = 0;//横坐标int y = 0;//纵坐标static boolean win = false;//用于判断输赢的变量//初始化二维数组public void board() {for (x = 0; x < num.length; x++) {for (y = 0; y < num.length; y++) {num[x][y]="+";}}}//打印棋盘方法public void printBoard() {for (int x = 0; x < num.length; x++) {for (int y = 0; y < num.length; y++) {System.out.print(num[x][y]+"  ");}System.out.println();}}//用户下棋的方法public void userXY() {System.out.println("请输入所放棋子的横坐标:");x = sc.nextInt();System.out.println("请输入所放棋子的纵坐标:");y = sc.nextInt();//判断当前用户如果userId是0则是第一个用户if (userId==0) {if (!num[x-1][y-1].equals("+")) {System.out.println("该棋子已经存在,请重新输入!");userXY();}else {num[x-1][y-1] = "X";userId = 1;printBoard();}} else {if (!num[x-1][y-1].equals("+")) {System.out.println("该棋子已经存在,请重新输入!");userXY();}else {num[x-1][y-1] = "O";userId = 0;printBoard();}}}//判断输赢的方法public void winOrLose() {//创建Boolean类型的变量判断结果boolean a1,a2,a3,a4,b1,b2,b3,b4;//a和b分别代表一个玩家,1,2,3,4分别代表能赢的4种情况for (int x = 0; x < num.length-4; x++) {for (int y = 4; y < num.length; y++) {//当五颗棋子呈右上左下连着的时候游戏结束a4 = num[x][y].equals("X")&&num[x+1][y-1].equals("X")&&num[x+2][y-2].equals("X")&&num[x+3][y-3].equals("X")&&num[x+4][y-4].equals("X");b4 = num[x][y].equals("X")&&num[x+1][y-1].equals("X")&&num[x+2][y-2].equals("X")&&num[x+3][y-3].equals("X")&&num[x+4][y-4].equals("X");if (a4==true){win = true;System.out.println("游戏结束!");System.out.printf("玩家%d赢了",userId);break;}else if (b4==true){win = true;System.out.println("游戏结束!");System.out.printf("玩家%d赢了",userId);break;}}}for (int x = 0; x < num.length-4; x++) {for (int y = 0; y < num.length-4; y++) {//当五个棋子横排或者竖排连着的时候游戏结束a1 = num[x][y].equals("X")&&num[x][y+1].equals("X")&&num[x][y+2].equals("X")&&num[x][y+3].equals("X")&&num[x][y+4].equals("X");b1 = num[x][y].equals("O")&&num[x][y+1].equals("O")&&num[x][y+2].equals("O")&&num[x][y+3].equals("O")&&num[x][y+4].equals("O");a2 = num[x][y].equals("X")&&num[x+1][y].equals("X")&&num[x+2][y].equals("X")&&num[x+3][y].equals("X")&&num[x+4][y].equals("X");b2 = num[x][y].equals("O")&&num[x+1][y].equals("O")&&num[x+2][y].equals("O")&&num[x+3][y].equals("O")&&num[x+4][y].equals("O");//当五颗棋子呈左上右下连着的时候游戏结束a3 = num[x][y].equals("X")&&num[x+1][y+1].equals("X")&&num[x+2][y+2].equals("X")&&num[x+3][y+3].equals("X")&&num[x+4][y+4].equals("X");b3 = num[x][y].equals("O")&&num[x+1][y+1].equals("O")&&num[x+2][y+2].equals("O")&&num[x+3][y+3].equals("O")&&num[x+4][y+4].equals("O");if ((a1==true)||(a2==true)||(a3==true)){win = true;System.out.println("游戏结束!");System.out.printf("玩家%d赢了",userId);break;}else if ((b1==true)||(b2==true)||(b3==true)){win = true;System.out.println("游戏结束!");System.out.printf("玩家%d赢了",userId);break;}}}}public static void main(String[] args) {GoBang gb = new GoBang();gb.board();//初始化二维数组gb.printBoard();//打印棋盘do {gb.userXY();//循环下棋gb.winOrLose();//判断输赢} while (win==false);//当win变量变为ture时停止循环}
}

编写Java程序,实现简单的五子棋博弈游戏(美和易思Java练习习题)相关推荐

  1. 编写java程序模拟简单的计算器

    /*** 编写java程序模拟简单的计算器* 定义名为Number的类其中有两个整型数据成员变量n1和n2应该声明为私有* 编写构造方法赋予n1和n2初始值* 再为该类定义加addition().减s ...

  2. Java程序员周末时间搞锭银行信息管理系统毕业设计(java+springboot+mybatis+mysql+vue+elementui)等实现 免费源码+论文答辩资料获取

    Java程序员周末时间搞锭银行信息管理系统毕业设计(java+springboot+mybatis+mysql+vue+elementui)等实现 前言介绍: 在社会快速发展的影响下,银行继续发展,大 ...

  3. Java程序员的求职面试简历应该怎么写?Java常用框架有哪些?

    [Java程序员]的求职面试简历应该怎么写?首先要做到信息的完整,比如基本信息.求职意向.工作经历/项目经验.个人技能这几大简历版块一定得有.然后简历内容要做到简单明了,详略得当.即要求大家简单概括自 ...

  4. 用Java写一个简单的回合制游戏

    用Java写一个简单的回合制游戏 创建基本属性,血量,名字,技能,技能伤害. 如下: public class One3 {//创建三个属性private String name;private St ...

  5. 用java编写spark程序,简单示例及运行

     最近因为工作需要,研究了下spark,因为scala还不熟,所以先学习了java的spark程序写法,下面是我的简单测试程序的代码,大部分函数的用法已在注释里面注明. 我的环境:hadoop 2 ...

  6. eclipse怎么编写java程序_简单使用Eclipse编写第一个Java程序

    文章作者:姜南(Slyar)文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作. Eclipse是很常用的Java IDE,至少我们学校教Java都是用这个.下载就不 ...

  7. 简单java程序_简单的Java程序

    简单java程序 Simple java programs are good for assessing the coding skills of a programmer. You will fin ...

  8. Java程序设计基础——简单Java程序

    简单Java程序 一.Java应用程序 1.HelloWorldApp 源代码: 编译运行: 二.Java小应用程序 1.HelloApplet 源代码: 编译运行: 2.firstApplet 源代 ...

  9. dos下编写java程序_在DOS命令行状态下,如果命令java Hello成功运行了程序,那么下面哪些叙述是正确的()...

    [判断题]在JDK命令行开发工具中,用编译程序javac.exe编译生成的文件是二进制可执行文件. [论述题]你认为堂吉诃德是一个怎样的人? [简答题]练习函数 [单选题]下列制度体现商法提高交易效率 ...

最新文章

  1. IDEA 小技巧之书签与收藏
  2. IBM Java多线程 - 6.其它线程 API 详细信息
  3. 排球计分程序(八)——验证编辑方法(Edit method)和编辑视图(Edit view)
  4. 014_html折行
  5. java 越来越慢_浅析Java语言慢的原因
  6. Vue属性篇_侦听器watch
  7. 使用UniWeibo实现Unity3d里分享到新浪微博功能
  8. 安徽理工大学大学计算机科学与技术学院,安徽理工大学计算机科学与工程学院介绍...
  9. 分布式日志收集解决方案ELK
  10. 什么是网络安全网格?
  11. 五险一金 | 2020年企业社保缴费为零问题
  12. 【渝粤题库】广东开放大学物业管理基本制度与政策 形成性考核
  13. IPA (苹果应用程序文件格式)
  14. Python3快速入门—5.函数
  15. UIImageView视图内容按比例缩小并淅淅隐去
  16. 数据结构---线性表课后习题详解(朱昌杰编著)
  17. 搭建NAT64/DNS6实现IPv4/v6转换
  18. python和scre_python学习日志10
  19. 少爷的云台山漂流记:山崖水畔的狂欢
  20. c语言程序的流程控制语句,三 C语言流程控制语句

热门文章

  1. R语言绘图技巧之显示希腊字母
  2. 字符串数据处理 arduino
  3. 音视频基础知识——素材理解
  4. 8_future_threading_multiprocessing的封装(线程进程的高级api)
  5. C语言中的cbp文件是什么,C语言编程入门——函数(上)
  6. js数字类型每隔三位加逗号(最简单方法)
  7. BootStrap 导航栏实现下滑消失,上滑出现
  8. 微信 qq微博分享功能
  9. SRPG游戏开发(五十三)第十一章 地图动作与地图事件 - 二 地图剧情(Map Plot)
  10. python——tensorflow使用和两层全连接神经网络搭建