Java数组实现五子棋功能

简介:
package ch4;
import java.io.*;

/**
 * Created by Jiqing on 2016/11/9.
 */
public class Gobang {
    // 定义棋盘的大小
    private static int BOARD_SIZE = 15;
    // 定义一个二维数组来充当棋盘
    private String[][] board;
    public void initBoard()
    {
        // 初始化棋盘数组
        board = new String[BOARD_SIZE][BOARD_SIZE];
        // 把每个元素赋为"╋",用于在控制台画出棋盘
        for (int i = 0 ; i < BOARD_SIZE ; i++)
        {
            for ( int j = 0 ; j < BOARD_SIZE ; j++)
            {
                board[i][j] = "╋";
            }
        }
    }
    // 在控制台输出棋盘的方法
    public void printBoard()
    {
        // 打印每个数组元素
        for (int i = 0 ; i < BOARD_SIZE ; i++)
        {
            for ( int j = 0 ; j < BOARD_SIZE ; j++)
            {
                // 打印数组元素后不换行
                System.out.print(board[i][j]);
            }
            // 每打印完一行数组元素后输出一个换行符
            System.out.print("\n");
        }
    }
    public static void main(String[] args) throws Exception
    {
        Gobang gb = new Gobang();
        gb.initBoard();
        gb.printBoard();
        // 这是用于获取键盘输入的方法
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String inputStr = null;
        // br.readLine():每当在键盘上输入一行内容按回车,用户刚输入的内容将被br读取到。
        while ((inputStr = br.readLine()) != null)
        {
            // 将用户输入的字符串以逗号(,)作为分隔符,分隔成2个字符串
            String[] posStrArr = inputStr.split(",");
            // 将2个字符串转换成用户下棋的座标
            int xPos = Integer.parseInt(posStrArr[0]);
            int yPos = Integer.parseInt(posStrArr[1]);
            // 把对应的数组元素赋为"●"。
            gb.board[yPos - 1][xPos - 1] = "●";
            /*
             电脑随机生成2个整数,作为电脑下棋的座标,赋给board数组。
             还涉及
                1.座标的有效性,只能是数字,不能超出棋盘范围
                2.如果下的棋的点,不能重复下棋。
                3.每次下棋后,需要扫描谁赢了
             */
            gb.printBoard();
            System.out.println("请输入您下棋的座标,应以x,y的格式:");
        }
    }
}

422101-20161109205545780-316716776.png

422101-20161109205553045-502932319.png

422101-20161109205601608-1072607672.png



本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/6048455.html,如需转载请自行联系原作者

相关文章
|
5天前
|
存储 前端开发 JavaScript
【前端学java】一篇文章带你精通java 中的数组(10)
【8月更文挑战第10天】一篇文章带你精通java 中的数组
9 3
【前端学java】一篇文章带你精通java 中的数组(10)
|
5天前
|
Java 索引
java中的栈(利用数组实现栈)
这篇文章通过Java代码示例介绍了如何使用数组实现栈操作,包括栈的初始化、入栈、出栈、判断栈满和空以及遍历栈的方法。
java中的栈(利用数组实现栈)
|
11天前
|
Java
Java 基础语法-面试题(54-63道)(数组+类+包)
Java 基础语法-面试题(54-63道)(数组+类+包)
29 16
|
11天前
|
Java
Java数组几道练习题
Java数组几道练习题
27 11
|
11天前
|
Java 容器
07 Java数组与数组操作(定义+遍历+排序+增删改查)(上)
07 Java数组与数组操作(定义+遍历+排序+增删改查)
28 8
|
11天前
|
Java
Java数组的2个小案例(杨辉三角分析和商品管理增删改查)
Java数组的2个小案例(杨辉三角分析和商品管理增删改查)
35 4
|
11天前
|
存储 Java API
07 Java数组与数组操作(定义+遍历+排序+增删改查)(下)
07 Java数组与数组操作(定义+遍历+排序+增删改查)
26 4
|
5天前
|
Java
Java中 字符串,字符串数组,整型数组初始化
Java中 字符串,字符串数组,整型数组初始化
6 0
|
6天前
|
JavaScript 前端开发 网络协议
WebSocket在Java Spring Boot+Vue框架中实现消息推送功能
在现代Web应用中,实时消息提醒是一项非常重要的功能,能够极大地提升用户体验。WebSocket作为一种在单个TCP连接上进行全双工通信的协议,为实现实时消息提醒提供了高效且低延迟的解决方案。本文将详细介绍如何在Java Spring Boot后端和Vue前端框架中利用WebSocket实现消息提醒功能。
19 0
|
10天前
|
算法 Java 索引
LeetCode初级算法题:寻找数组的中心索引+x的平方根+三个数的最大乘积+Leetcode 149:直线上最多的点数 Java详解
LeetCode初级算法题:寻找数组的中心索引+x的平方根+三个数的最大乘积+Leetcode 149:直线上最多的点数 Java详解
21 0