Java 数组实例——实现棋盘落子
五子棋、连连看、俄罗斯方块、扫雷等常见小游戏,都可以通过二维数组实现。
棋盘落子效果图:
源码:
package my_package; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Gobang { //定义棋盘大小为15*15 private static int BOARD_SIZE=15; //定义一个二维数组来充当棋盘 private static String[][] board; //初始化棋盘数组 public void initBoard(){ board=new String[BOARD_SIZE][BOARD_SIZE]; //把每个元素赋为“十” for(int i=0;i<15;i++){ for(int j=0;j<15;j++){ board[i][j]="十"; } } } //在控制台打印棋盘 public void printBoard(){ for(int i=0;i<15;i++){ for(int j=0;j<15;j++){ System.out.print(board[i][j]); } //打印完一行后换行 System.out.print("\n"); } } public static void main(String[] args) throws IOException { Gobang gb=new Gobang(); gb.initBoard(); gb.printBoard(); //接收控制台输入棋盘坐标 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String str=null; System.out.println("请输入落子点的坐标:"); while((str=br.readLine()) != null){ String[] arr=str.split(","); int x=Integer.parseInt(arr[0]); int y=Integer.parseInt(arr[1]); //需要先判断该点是否已有子,若已有子,则不能再落子。此处省略 board[x-1][y-1]="●"; //刷新 gb.printBoard();; //每次落子后需判断输赢,进行4次循环扫描,横、竖、左斜、右斜,看是否有5子连着,没有就接着下。此处省略 System.out.println("请输入落子点的坐标:"); } } }
Java 数组实例——实现棋盘落子的更多相关文章
- Java 数组实例——将阿拉伯数字转换为最大写
题目:将阿拉伯数字转换为最大写,比如1234转换为壹仟贰佰叁拾肆. package my_package; public class Transform { private String[] arr1 ...
- JAVA 数组实例-求学生平均成绩,与计算数组的长度
实例: 知识点:数组名.length是计算数组的长度 import java.util.*; //求学生平均分成绩 public class Test{ public static void main ...
- JAVA 数组实例-求学生成绩的最大成绩,获取数组中的最大值、最小值
实例: import java.util.*; //求学生最大成绩 public class Test{ public static void main(String[] args){ System. ...
- Java 数组
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如numbers[100 ...
- Java数组(初学者必看)
数组无论在哪种编程语言中都算是最重要的数据结构之一,同时不同语言的实现及处理也不尽相同.但凡写过一些程序的人都知道数组的价值及理解数组的重要性,与链表一道,数组成为了基本的数据结构.尽管Java提供了 ...
- Java数组实现五子棋功能
package ch4; import java.io.*; /** * Created by Jiqing on 2016/11/9. */ public class Gobang { // 定义棋 ...
- JAVA 数组作业——动手动脑以及课后实验性问题
JAVA课后作业——动手动脑 一:阅读并运行示例PassArray.java,观察并分析程序输出的结果,小结,然后与下页幻灯片所讲的内容进行对照. 1.源代码 // PassArray.java // ...
- Java数组的内存管理
Java数组的内存管理 Java语言是典型的静态语言,因此Java的数组是静态的,即当数组被初始化之后,该数组的长度是不可变的.Java程序中的数组必须经初始化才能使用.所谓初始化,就是当数组对象的元 ...
- 对java数组的一些理解
刚开始学习Java的时候一直搞不清除获取数组的长度是用length()还是length,现在不妨来深入了解一下数组的真实面目. 我们不妨来看一下数组的源码,诶,数组的类名叫什么?我们声明一个int数组 ...
随机推荐
- lightgbm GPU版本安装
python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)https://study.163.com/course/introduction.htm?courseId=1005269003&u ...
- @JsonInclude(Include.NON_NULL) resttemplate 传递实体参数时 序列化为json时 空字符串不参与序列化
@JsonInclude(Include.NON_NULL) resttemplate 传递实体参数时 序列化为json时 空字符串不参与序列化 https://www.cnblogs.com/sup ...
- Python3基础 tuple 使用通配符*进行拆包 简单示例
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
- (原)ffmpeg中filter开发过程遇到的坑<一>
最近在使用ffmpeg开发了一些滤镜filter功能,中间出现一些问题,今天想把这部分的内容整理为笔记,方便以后遇到同样问题的时候,方便翻阅. author:lihaiping1603@aliyun. ...
- 用js实现call方法
Function.prototype.call2 = function (context, ...args) { var context = context || window; //改变th ...
- Idea 目录结构下有红色波浪线
问题截图: 解决方案: Build -> Rebuild Project
- netcore发布失败
2.2 发布Views <MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish> 导致 发布失败--------- ...
- RWMutex:共享/专有的递归互斥锁
具有共享/独占访问权限,且具有升级/降级功能的互斥锁 介绍 我的目标是创建可以充当读/写锁定机制的对象.任何线程都可以锁定它以进行读取,但是只有一个线程可以锁定它以进行写入.在写入线程释放它之前,所有 ...
- Python中的sync和wait函数的使用
转自这篇博文,备忘: https://blog.csdn.net/Likianta/article/details/90123678 https://www.cnblogs.com/xinghun85 ...
- SQLite接口函数 - C核心api实践与总结
SQLite核心源代码由C语言写就,同时提供了很多的扩展包可应用于其他编程语言和类库,如Python.Ruby.Java.Perl..Net/C#.Qt和ODBC.在很多情况下,针对一种语言有很多扩展 ...