Java二维数组——关灯游戏算法
关灯游戏
基本设计算法
0为关灯,1为开灯。
用户输入行和列号,等全部的数字都统一为0时获胜。
第一步:用二维数组创建棋盘。由于new之后开辟了内存,都默认是0。所以在二维数组中随便改变几个元素让他为1.等用户让棋盘全部为0时,就可以获胜了。
第二步:改变用户点击的数字和他周围的数字,这时候要考虑临界值的问题。
第三步:在主方法中让用户不断输入,直到他成功为止。
代码实现
int bb[][]={{0,0,0,0,0,0},{0,0,0,1,0,0},{0,0,1,1,1,0},{0,0,0,1,0,0},{0,0,0,0,0,0}};Scanner sc=new Scanner(System.in);int sun=0;while(true){for(int i=0;i<bb.length;i++){for(int j=0;j<bb[i].length;j++){System.out.print(bb[i][j]+" ");}System.out.println();}System.out.println("请输入您点击的行");int r=sc.nextInt();System.out.println("请输入您点击的列");int c=sc.nextInt();bb[r][c]=1-bb[r][c];if(r-1>=0){bb[r-1][c]=1-bb[r-1][c];}if(r+1<bb.length){bb[r+1][c]=1-bb[r+1][c];}if(c-1>=0){bb[r][c-1]=1-bb[r][c-1];}if(c+1<bb[r].length){bb[r][c+1]=1-bb[r][c+1];}for(int i=0;i<bb.length;i++){for(int j=0;j<bb[i].length;j++){sun+=bb[i][j];System.out.print(bb[i][j]+" ");}System.out.println();}if(sun==0){break;}}System.out.println("恭喜过关");
输出结果
0 0 0 0 0 0
0 0 0 1 0 0
0 0 1 1 1 0
0 0 0 1 0 0
0 0 0 0 0 0
请输入您点击的行
2
请输入您点击的列
3
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
恭喜过关
Java二维数组——关灯游戏算法相关推荐
- 实体类 接口_Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口)
原文:Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口, 视频讲解) 这里分享三道编程题, 下面是我个人的视频讲解 二维数组, 五子棋游戏, 实体类和接口_哔哩哔哩 (゜-゜)つロ ...
- java二维数组的创建,java二维数组创建方法
java动态创建二维数组,从零学java笔录-第31篇 图解二位数组在内存中存储,java二维数组动态赋值,java二维数组创建方法 二维数组的定义 type arrayName[ ][ ]; typ ...
- java二维数组存储数据,从键盘上录入学生人数,考试科目数,以及每个学生每科分数,输出每个学生的最高分、最低分、总分、平均分
java二维数组存储数据,从键盘上录入学生人数,考试科目数,以及每个学生每科分数,输出每个学生的最高分.最低分.总分.平均分 import java.util.Scanner;/* * 二维数组存储数 ...
- java二维数组的遍历
java二维数组的遍历 /* * java二维数组的遍历 * 二维数组,数组座位数组元素类型的数组,数组的数组 * */ public class Test14 {public static void ...
- 案例演示Python二维列表与Java二维数组
1.Python二维列表案例演示 运行程序,结果如下: 2.案例演示Java二维数组 package net.hw.test;/*** 功能:二维数组用法示例* 作者:华卫* 日期:2013年12月1 ...
- java二维数组遍历与元素查找
java二维数组 格式 数据类型 [ ][ ] arrayName = new 数据类型[一维数组的个数][每个一维数组的长度] 例如: int [ ][ ] array = new int [2][ ...
- Java二维数组实现学生管理系统
Java二维数组实现学生管理系统 一.预备知识 1.二维数组的创建1) DataType [][] name=new DataType[10][];2) DataType [][] name=new ...
- 杰神之JAVA二维数组(案例:走迷宫)
Java二维数组(案例:走迷宫) 二维数组 数组的数组-二维数组的每一个元素是一个一维数组 定义方式: 数据类型[][] 数组名 = new 数据类型[长度][长度]; 数据类型[][] 数组名 = ...
- java二维数组杨辉三角_实验----Java的二维数组的应用及杨辉三角的编写
(1) 编写一个程序,生成一个10*10的二维随机整数数组,并将该数组的每行最大值保存于一个一维数组中,将每列平均值保存于另外一个一维数组中并分别输出. (2) 编程输出杨辉三角的前10行. 找出一个 ...
- Java二维数组赋值
Java二维数组是指由多个一维数组组成的数组结构.它可以看作是一个表格,其中行表示数组中的第一个维度,列表示第二个维度. 可以使用两个方括号([ ] [ ])来声明和访问Java二维数组中的元素. 例 ...
最新文章
- go net.conn读取请求头信息_go语言网络编程socket sever的实现
- Java中 this关键字详解
- [leetcode笔记] Remove Duplicates from Sorted List II
- Spring事务传递性探讨
- 机器学习:分类器介绍
- MYSQL安装和配置
- Oracle 12C -- 预定义audit policies
- 动态规划——最嘉观光组合(Leetcode 1014)
- ArcMap 入门教程
- 使用vue开发的网页游戏
- PHPWAMP开启SSL,PHPWAMP配置ssl证书
- java uint64_Java 中的 uint64
- 别跑!JAVA!-----------一篇关于JAVA的博客
- 数仓中的维度、原子指标、派生指标、衍生指标、指标分类、缓慢变化维等的含义
- 各种UML图的应用场景
- brpc源码解析(二)—— brpc收到请求的处理过程
- Shell编程——退出状态(if语句判断某个命令的退出状态)
- 开放存取平台以保存Odia印度语言
- python pandas 分类汇总_pandas去重复行并分类汇总的实现方法
- 编译器会为const引用创建临时变量
热门文章
- 图像的常规边缘检测(梯度算子、Roberts算子和Sobel算子)(纯C++)
- Opencv中convertTo函数2
- matlab改变直方图数量级,直方图规定化——Matlab实现及其原理
- tp交换机管理页面_TP-LINK交换机设置细节
- 超级终端之——MobaXterm
- arcgis超级工具安装教程_ArcGIS超级工具SPTOOLS1.7升级说明
- Java编程基础知识(一)
- 如果机械工程师分等级的话,你在哪个等级,我是婴儿级
- 异星工厂0.16控制台代码
- 研究生论文排版工具:LaTeX