Java实现简单的五子棋小游戏

五子棋游戏(Java),供大家参考,具体内容如下

思路:

1.首先创建一个棋盘,建立一个二维数组,此文中为一个15*15的二维数组,
2.初始化棋盘,给棋盘上个点赋初始值为“+”;
3.打印棋盘;
4.开始游戏
创建一个下棋的函数(playChess),黑方棋子为“●”,白方棋子为“○”,用奇偶数分别代表黑方和白方;判断输赢,有5个连续一样的棋子即为赢,游戏结束

五个棋子连续条件

本来需要判断8个方向的棋子,但由于棋子没有方向,头尾可调换,所以只要使得有四个方向的棋子5个连续就可以,这四个方向分别为:右边、右上、右下、下边(其他对应方向也可以),如下图所示。

import java.util.Scanner;

public class Demo01WuZiQi {
 //1.创建一个15*15的棋盘
 public static String[][] board = new String[15][15];
 public static Scanner scanner = new Scanner(System.in);
 public static int player = 0;

 public static void main(String[] args) {
  //2.初始化棋盘
  initBoard();
  //3.打印棋盘
  printBoard();
  //4.开始游戏
  startGame();
 }

 private static void startGame() {
  while (!isGameOver()) {
   if (player % 2 == 0) { //黑方下棋
    System.out.println(">>>请黑方下棋");
    playChess("●");
   } else {    //白方下棋
    System.out.println(">>>请白方下棋");
    playChess("○");
   }
   player++;
  }
  System.out.println("Game Over");
 }

 private static boolean isGameOver() {
  for (int x = 0; x < board.length; x++) {
   for (int y = 0; y < board[x].length; y++) {
    if(!board[x][y].equals("+")){
     //向右
     if (y < 11) {
      if(board[x][y].equals(board[x][y+1])
        && board[x][y].equals(board[x][y+2])
        && board[x][y].equals(board[x][y+3])
        && board[x][y].equals(board[x][y+4]))
      {
       return true;
      }
     }

     //向下
     if (x < 11) {
      if(board[x][y].equals(board[x+1][y])
        && board[x][y].equals(board[x+2][y])
        && board[x][y].equals(board[x+3][y])
        && board[x][y].equals(board[x+4][y]))
      {
       return true;
      }
     }

     //向右下
     if (x < 11 && y < 11) {
      if(board[x][y].equals(board[x+1][y+1])
        && board[x][y].equals(board[x+2][y+2])
        && board[x][y].equals(board[x+3][y+3])
        && board[x][y].equals(board[x+4][y+4]))
      {
       return true;
      }
     }

     //向右上
     if (x > 3 && y < 11) {
      if(board[x][y].equals(board[x-1][y+1])
        && board[x][y].equals(board[x-2][y+2])
        && board[x][y].equals(board[x-3][y+3])
        && board[x][y].equals(board[x-4][y+4]))
      {
       return true;
      }
     }
    }
   }
  }
  return false;
 }

 private static void playChess(String chess) {
  System.out.print(">>>请输入棋子的坐标:");
  int x = scanner.nextInt() - 1;
  int y = scanner.nextInt() - 1;
  if (board[x][y].equals("+")) {
   board[x][y] = chess;
   printBoard();
  } else {
   System.out.println(">>>此处已有棋子,请重新输入");
   player--;
  }
 }

 public static void printBoard() {
  System.out.print(" ");
  //打印列号
  for (int i = 1; i <= board.length; i++) {
   System.out.printf("%-3d",i);
  }
  System.out.println();
  for (int i = 0; i < board.length; i++) {
   //打印行号
   System.out.printf("%-3d", i + 1);
   //打印每一行的棋盘
   for (int j = 0; j < board[i].length; j++) {
    System.out.print(board[i][j] + " ");
   }
   System.out.println();
  }
 }

 public static void initBoard() {
  for (int i = 0; i < board.length; i++) {
   for (int j = 0; j < board[i].length; j++) {
    board[i][j] = "+";
   }
  }
 }
}

更多有趣的经典小游戏实现专题,分享给大家:

C++经典小游戏汇总

python经典小游戏汇总

python俄罗斯方块游戏集合

JavaScript经典游戏 玩不停

java经典小游戏汇总

javascript经典小游戏汇总

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java项目实现五子棋小游戏

    本文实例为大家分享了Java实现五子棋小游戏的具体代码,供大家参考,具体内容如下 项目名称 五子棋小游戏 项目描述 可以改变获胜棋子数,率先连成棋数的人获胜 代码实现 测试类 public class Test { public static void main(String[] args) { FiveChess fiveChess = new FiveChess(); fiveChess.start(); } } 主类:实现主方法 public class FiveChess { priva

  • Java实现五子棋(附详细源码)

    本文实例为大家分享了Java实现五子棋游戏的具体代码,供大家参考,具体内容如下 学习目的:熟悉java中swing类与java基础知识的巩固.(文末有源代码文件和打包的jar文件) 效果图: 思路:**1.首先构建一个Frame框架,来设置菜单选项与按钮点击事件. MyFrame.java文件代码如下 package StartGame; import javax.swing.ButtonGroup; import javax.swing.Icon; import javax.swing.JBu

  • java实现单机版五子棋

    这个小游戏是我和我姐们儿的JAVA课程设计,也是我做的第一个JAVA项目,适合初学者,希望能帮到那些被JAVA课设所困扰的孩纸们~~~ 一.该游戏需要实现 1.设计主框架,界面. 2.利用ActionListener接口实现按钮事件的监听. 3.重新开始功能的实现. 4.悔棋功能的实现. 5.退出功能的实现. 6.棋盘中棋子点类的定义. 7.利用MouseListener接口实现事件监听,并实现接口里的所有方法. 8.当鼠标移动到棋盘上的交点上,且该点上无棋子时能够变成小手形状. 9.点击棋盘时

  • java实现五子棋小游戏

    java实现五子棋小游戏 package Gomoku; import java.awt.Toolkit; import javax.swing.JFrame; public class GomokuFrame extends JFrame { //定义一个操作面板 OperatorPane op=null; public GomokuFrame() { //设置名称 this.setTitle("五子棋"); //设置窗口大小 this.setSize(510,510); //设置窗

  • Java实现五子棋游戏的完整代码

    用Java编写简单的五子棋,供大家参考,具体内容如下 前言 这两天在空闲时间做了个五子棋项目,分享给大家看一下,界面是这样的: 界面很丑我知道,本人虽有几年PS基础,但知识浅薄,审美观不尽人意,做到如此实属极限(其实我懒得做了),大家将就着看看吧. 下面放出代码,为方便大家参考,我几乎每条代码都标有注释.    测试类代码 public class Test { public static void main(String[] args) { MyJFrame mj=new MyJFrame()

  • java实现简单控制台五子棋游戏

    本文实例为大家分享了java实现简单控制台五子棋的具体代码,供大家参考,具体内容如下 GobangMain这个类是游戏的主方法,主要用于控制游戏的执行,值得注意的是输入的坐标的格式是3,4的样式,不能是其他的格式,也不能出现空格. package com.qf.Gobang; import java.util.Scanner; import org.omg.CORBA.PUBLIC_MEMBER; public class GobangMain { public static String wh

  • Java实现五子棋的基础方法

    本文实例为大家分享了Java实现五子棋的具体代码,供大家参考,具体内容如下 任务概述: 五子棋是全国智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏.通常双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成五子连线者获胜. 任务过程: 1.绘制棋盘 2.提示黑方(用 1 表示)和白方(用 2 表示)分别下棋(X,Y 轴位置)并重新绘制棋盘 3.每当一方下棋后判断是否获胜 重点讲解: 1.关于胜利的判断: 根据用户所下棋子的位置对其周围进行检测,分为以下情况: 横向:当前下棋位

  • java实现简易五子棋游戏

    本文实例为大家分享了java实现简易五子棋游戏的具体代码,供大家参考,具体内容如下 编写一个简易五子棋,棋盘在控制台中绘制,棋盘每- - 个点都有对应的坐标,下棋者输 入对应坐标落棋子,运行效果如图所示.两位数字表示的坐标中,第-一个数字表示横坐标, 第二个数字表示纵坐标,运行结果如图所示. 代码: package Test; import java.util.Scanner; public class Test4 { public static void main(String[] args)

  • javaFX实现五子棋小游戏

    javaFX实现五子棋游戏,供大家参考,具体内容如下 做课程设计的时候做到这个,分享出来大家参考一下吧,图片为游戏运行过程 最下的代码就是整个实现整个需求的 package Version3; import javafx.application.Application; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.

  • java GUI实现五子棋游戏

    本文实例为大家分享了java实现五子棋游戏GUI,供大家参考,具体内容如下 引用包 //{Cynthia Zhang} import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.LineBorder; import javax.swing.JOptionPane; import javax.swing.ImageIcon; import java.awt.Image; i

随机推荐