温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java项目如何实现五子棋小游戏

发布时间:2020-07-21 14:53:06 来源:亿速云 阅读:154 作者:小猪 栏目:编程语言

小编这次要给大家分享的是Java项目如何实现五子棋小游戏,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。

项目名称

五子棋小游戏

项目描述

可以改变获胜棋子数,率先连成棋数的人获胜

代码实现

测试类

public class Test {
 public static void main(String[] args) {
 FiveChess fiveChess = new FiveChess();
 fiveChess.start();
 }
}

主类:实现主方法

public class FiveChess {
 private static final int CheckerSize = 10;
 private static final int successSize = 5;
 private Chess[][] chess;
 private int xPos;
 private int yPos;
 private boolean flag = true;
 private Scanner scanner = new Scanner(System.in);
 public FiveChess(){
 chess = new Chess[CheckerSize][CheckerSize];
 }
 private void initCheck(){
 for(int i=0;i<CheckerSize;i++){
  for(int j=0;j<CheckerSize;j++){
  chess[i][j] = new Chess("十");
  }
 }
 }
 private boolean judge(int xPos,int yPos){
 //横向
 if(yPos-1>=0 && chess[xPos][yPos].getValue().equals(chess[xPos][yPos-1].getValue()) ||
  yPos+1<CheckerSize && chess[xPos][yPos].getValue().equals(chess[xPos][yPos+1].getValue())){
  int count = 1;
  for (int i = 1; i < successSize; i++) {
  if (yPos - i >= 0 && chess[xPos][yPos - i].getValue().equals(chess[xPos][yPos].getValue())) {
   count++;
  } else {
   break;
  }
  }
  for (int i = 1; i < successSize; i++) {
  if (yPos + i < CheckerSize &&
   chess[xPos][yPos + i].getValue().equals(chess[xPos][yPos].getValue())) {
   count++;
  } else {
   break;
  }
  }
  return count >= successSize &#63; true : false;
 }
 //纵向
 if (xPos-1>=0 && chess[xPos][yPos].getValue().equals(chess[xPos-1][yPos].getValue()) ||
  xPos+1<CheckerSize && chess[xPos][yPos].getValue().equals(chess[xPos+1][yPos].getValue())){
  int count = 1;
  for (int i = 1; i < successSize; i++) {
  if (xPos- i >= 0 && chess[xPos-i][yPos].getValue().equals(chess[xPos][yPos].getValue())) {
   count++;
  } else {
   break;
  }
  }
  for (int i = 1; i < successSize; i++) {
  if (xPos + i < CheckerSize &&
   chess[xPos+i][yPos].getValue().equals(chess[xPos][yPos].getValue())) {
   count++;
  } else {
   break;
  }
  }
  return count >= successSize &#63; true : false;
 }
 //正斜线
 if (xPos-1>=0 && yPos-1>=0 && chess[xPos][yPos].getValue().equals(chess[xPos-1][yPos-1].getValue()) ||
  xPos+1<CheckerSize && yPos+1<CheckerSize &&
   chess[xPos][yPos].getValue().equals(chess[xPos+1][yPos+1].getValue())){
  int count = 1;
  for (int i = 1; i < successSize; i++) {
  if (xPos - i >= 0 && yPos - i >= 0 &&
   chess[xPos-i][yPos-i].getValue().equals(chess[xPos][yPos].getValue())) {
   count++;
  } else {
   break;
  }
  }
  for (int i = 1; i < successSize; i++) {
  if (xPos + i < CheckerSize && yPos + i < CheckerSize &&
   chess[xPos+i][yPos+i].getValue().equals(chess[xPos][yPos].getValue())) {
   count++;
  } else {
   break;
  }
  }
  return count >= successSize &#63; true : false;
 }
 //反斜线
 if (xPos-1>=0 && yPos+1<CheckerSize &&
  chess[xPos][yPos].getValue().equals(chess[xPos-1][yPos+1].getValue()) ||
  xPos+1<CheckerSize && yPos-1>=0 &&
   chess[xPos][yPos].getValue().equals(chess[xPos+1][yPos-1].getValue())){
  int count = 1;
  for (int i = 1; i < successSize; i++) {
  if (xPos - i >= 0 && yPos + i<CheckerSize &&
   chess[xPos-i][yPos+i].getValue().equals(chess[xPos][yPos].getValue())) {
   count++;
  } else {
   break;
  }
  }
  for (int i = 1; i < successSize; i++) {
  if (xPos + i < CheckerSize && yPos - i >= 0 &&
   chess[xPos+i][yPos-i].getValue().equals(chess[xPos][yPos].getValue())) {
   count++;
  } else {
   break;
  }
  }
  return count >= successSize &#63; true : false;
 }
 return false;
 }
 private void runChess(String run){
 System.out.println("请输入"+run+"坐标:");
 xPos = scanner.nextInt();
 yPos = scanner.nextInt();
 if(chess[xPos-1][yPos-1].getValue().equals("十")){
  if(run.equals("黑棋")){
  chess[xPos-1][yPos-1] = new Chess("●");
  }
  else if(run.equals("白棋")){
  chess[xPos-1][yPos-1] = new Chess("〇");
  }
  for(int i=0;i<CheckerSize;i++){
  for (int j=0;j<CheckerSize;j++){
   System.out.print(chess[i][j].getValue());
  }
  System.out.println();
  }
  if(judge(xPos-1,yPos-1)){
  flag = false;
  System.out.println(run+"获胜");
  System.out.println("游戏结束,是否重玩");
  String finish = scanner.next();
  if (finish.equals("是")){
   flag = true;
   start();
  }
  else if (finish.equals("否")){
   System.exit(0);
  }
  }
 }else {
  System.out.println("该处已存在棋子,请重新选择");
  runChess(run);
 }
 }
 public void start(){
 initCheck();
 System.out.println("请选择先走方:黑棋or白棋");
 String run = scanner.next();
 for(int i=0;i<CheckerSize;i++){
  for (int j=0;j<CheckerSize;j++){
  System.out.print(chess[i][j].getValue());
  }
  System.out.println();
 }
 while (flag) {
  switch (run) {
  case "黑棋":
   runChess("黑棋");
   run = "白棋";
   break;
  case "白棋":
   runChess("白棋");
   run = "黑棋";
   break;
  default:
  }
 }
 }
}

结点类

public class Chess {
 private String value;
 public Chess(String value){
 this.value = value;
 }
 public String getValue() {
 return value;
 }
}

看完这篇关于Java项目如何实现五子棋小游戏的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI