关灯游戏

基本设计算法

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二维数组——关灯游戏算法相关推荐

  1. 实体类 接口_Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口)

    原文:Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口, 视频讲解) 这里分享三道编程题, 下面是我个人的视频讲解 二维数组, 五子棋游戏, 实体类和接口_哔哩哔哩 (゜-゜)つロ ...

  2. java二维数组的创建,java二维数组创建方法

    java动态创建二维数组,从零学java笔录-第31篇 图解二位数组在内存中存储,java二维数组动态赋值,java二维数组创建方法 二维数组的定义 type arrayName[ ][ ]; typ ...

  3. java二维数组存储数据,从键盘上录入学生人数,考试科目数,以及每个学生每科分数,输出每个学生的最高分、最低分、总分、平均分

    java二维数组存储数据,从键盘上录入学生人数,考试科目数,以及每个学生每科分数,输出每个学生的最高分.最低分.总分.平均分 import java.util.Scanner;/* * 二维数组存储数 ...

  4. java二维数组的遍历

    java二维数组的遍历 /* * java二维数组的遍历 * 二维数组,数组座位数组元素类型的数组,数组的数组 * */ public class Test14 {public static void ...

  5. 案例演示Python二维列表与Java二维数组

    1.Python二维列表案例演示 运行程序,结果如下: 2.案例演示Java二维数组 package net.hw.test;/*** 功能:二维数组用法示例* 作者:华卫* 日期:2013年12月1 ...

  6. java二维数组遍历与元素查找

    java二维数组 格式 数据类型 [ ][ ] arrayName = new 数据类型[一维数组的个数][每个一维数组的长度] 例如: int [ ][ ] array = new int [2][ ...

  7. Java二维数组实现学生管理系统

    Java二维数组实现学生管理系统 一.预备知识 1.二维数组的创建1) DataType [][] name=new DataType[10][];2) DataType [][] name=new ...

  8. 杰神之JAVA二维数组(案例:走迷宫)

    Java二维数组(案例:走迷宫) 二维数组 数组的数组-二维数组的每一个元素是一个一维数组 定义方式: 数据类型[][] 数组名 = new 数据类型[长度][长度]; 数据类型[][] 数组名 = ...

  9. java二维数组杨辉三角_实验----Java的二维数组的应用及杨辉三角的编写

    (1) 编写一个程序,生成一个10*10的二维随机整数数组,并将该数组的每行最大值保存于一个一维数组中,将每列平均值保存于另外一个一维数组中并分别输出. (2) 编程输出杨辉三角的前10行. 找出一个 ...

  10. Java二维数组赋值

    Java二维数组是指由多个一维数组组成的数组结构.它可以看作是一个表格,其中行表示数组中的第一个维度,列表示第二个维度. 可以使用两个方括号([ ] [ ])来声明和访问Java二维数组中的元素. 例 ...

最新文章

  1. go net.conn读取请求头信息_go语言网络编程socket sever的实现
  2. Java中 this关键字详解
  3. [leetcode笔记] Remove Duplicates from Sorted List II
  4. Spring事务传递性探讨
  5. 机器学习:分类器介绍
  6. MYSQL安装和配置
  7. Oracle 12C -- 预定义audit policies
  8. 动态规划——最嘉观光组合(Leetcode 1014)
  9. ArcMap 入门教程
  10. 使用vue开发的网页游戏
  11. PHPWAMP开启SSL,PHPWAMP配置ssl证书
  12. java uint64_Java 中的 uint64
  13. 别跑!JAVA!-----------一篇关于JAVA的博客
  14. 数仓中的维度、原子指标、派生指标、衍生指标、指标分类、缓慢变化维等的含义
  15. 各种UML图的应用场景
  16. brpc源码解析(二)—— brpc收到请求的处理过程
  17. Shell编程——退出状态(if语句判断某个命令的退出状态)
  18. 开放存取平台以保存Odia印度语言
  19. python pandas 分类汇总_pandas去重复行并分类汇总的实现方法
  20. 编译器会为const引用创建临时变量

热门文章

  1. 图像的常规边缘检测(梯度算子、Roberts算子和Sobel算子)(纯C++)
  2. Opencv中convertTo函数2
  3. matlab改变直方图数量级,直方图规定化——Matlab实现及其原理
  4. tp交换机管理页面_TP-LINK交换机设置细节
  5. 超级终端之——MobaXterm
  6. arcgis超级工具安装教程_ArcGIS超级工具SPTOOLS1.7升级说明
  7. Java编程基础知识(一)
  8. 如果机械工程师分等级的话,你在哪个等级,我是婴儿级
  9. 异星工厂0.16控制台代码
  10. 研究生论文排版工具:LaTeX