【编程题】 # 背景: “康威生命游戏”由一个二维的平面网格组成。网格内的每个格子都是一个细胞,包括“存活”和“死亡”两种状态。每个细胞的生存状态由周围最多8个邻居的状态决定。详细规则如下: * 当前细胞为存活状态时,当周围的存活细胞低于2个时(不包含2个),该细胞变成死亡状态。(模拟生命数量稀少) * 当前细胞为存活状态时,当周围有2个或3个存活细胞时,该细胞保持原样。 * 当前细胞为存活状态时,当周围有超过3个存活细胞时,该细胞变成死亡状态。(模拟生命数量过多) * 当前细胞为死亡状态时,当周围有3个存活细胞时,该细胞变成存活状态。(模拟繁殖) # 任务: * 实现函数:`private int getNextVal(int[][] arr, int i, int j)`,返回某个元素的生存状态。 * 实现函数:`private int countLivingNeighbors(int[][] arr, int i, int j)`,计算某细胞的存活邻居数量。 初始代码: public class ShowMeBug {     public final int[][] arr;     public ShowMeBug(int[][] arr) {         this.arr = arr;     }     public static void main(String[] args) {         int[][] arr = new int[][]{                 {0, 0, 0},                 {1, 1, 1},                 {0, 0, 0}         };         final ShowMeBug showMeBug = new ShowMeBug(arr);         showMeBug.updateNextState(arr);         showMeBug.printState();     }     /**      * 输出当前生存状态到控制台      *      */     public void printState() {         int M = arr.length;         int N = arr[0].length;         for (int i = 0; i < M; i++) {             for (int j = 0; j < N; j++) {                 System.out.print(arr[i][j]);                 System.out.print(“” “”);             }             System.out.println();         }     }     /**      * 更新arr下个tick的生存状态      *      * @param arr 当前状态下的数组      */     public void updateNextState(int[][] arr) {         int M = arr.length;         int N = arr[0].length;         for (int i = 0; i < M; i++) {             for (int j = 0; j < N; j++) {                 arr[i][j] = getNextVal(arr, i, j);             }         }     }     /**      * 计算某细胞下个tick的状态      *      * @param arr 当前状态下的数组      * @param i   行索引      * @param j   列索引      * @return 生存返回1,否则返回0      */     private int getNextVal(int[][] arr, int i, int j) {         int nextVal = 0;         //TODO:请完善该函数,要求:需要调用countLivingNeighbors         return nextVal;     }     /**      * 计算某细胞的存活邻居数量      *      * @param arr 当前状态下的数组      * @param i   行索引      * @param j   列索引      * @return 该元素存活的邻居数量      */     private int countLivingNeighbors(int[][] arr, int i, int j) {         int count = 0;         //TODO:请完善该函数         return count;     } }

区块链毕设网qklbishe.com为您提供问题的解答

【编程题】
# 背景:

“康威生命游戏”由一个二维的平面网格组成。网格内的每个格子都是一个细胞,包括“存活”和“死亡”两种状态。每个细胞的生存状态由周围最多8个邻居的状态决定。详细规则如下:
* 当前细胞为存活状态时,当周围的存活细胞低于2个时(不包含2个),该细胞变成死亡状态。(模拟生命数量稀少)
* 当前细胞为存活状态时,当周围有2个或3个存活细胞时,该细胞保持原样。
* 当前细胞为存活状态时,当周围有超过3个存活细胞时,该细胞变成死亡状态。(模拟生命数量过多)
* 当前细胞为死亡状态时,当周围有3个存活细胞时,该细胞变成存活状态。(模拟繁殖)

# 任务:
* 实现函数:`private int getNextVal(int[][] arr, int i, int j)`,返回某个元素的生存状态。

* 实现函数:`private int countLivingNeighbors(int[][] arr, int i, int j)`,计算某细胞的存活邻居数量。
初始代码:
public class ShowMeBug {     public final int[][] arr;      public ShowMeBug(int[][] arr) {         this.arr = arr;     }      public static void main(String[] args) {         int[][] arr = new int[][]{                 {0, 0, 0},                 {1, 1, 1},                 {0, 0, 0}         };          final ShowMeBug showMeBug = new ShowMeBug(arr);          showMeBug.updateNextState(arr);         showMeBug.printState();     }      /**      * 输出当前生存状态到控制台      *      */     public void printState() {         int M = arr.length;         int N = arr[0].length;         for (int i = 0; i < M; i++) {             for (int j = 0; j < N; j++) {                 System.out.print(arr[i][j]);                 System.out.print("" "");             }             System.out.println();         }     }      /**      * 更新arr下个tick的生存状态      *      * @param arr 当前状态下的数组      */     public void updateNextState(int[][] arr) {         int M = arr.length;         int N = arr[0].length;         for (int i = 0; i < M; i++) {             for (int j = 0; j < N; j++) {                 arr[i][j] = getNextVal(arr, i, j);             }         }     }      /**      * 计算某细胞下个tick的状态      *      * @param arr 当前状态下的数组      * @param i   行索引      * @param j   列索引      * @return 生存返回1,否则返回0      */     private int getNextVal(int[][] arr, int i, int j) {         int nextVal = 0;         //TODO:请完善该函数,要求:需要调用countLivingNeighbors         return nextVal;     }      /**      * 计算某细胞的存活邻居数量      *      * @param arr 当前状态下的数组      * @param i   行索引      * @param j   列索引      * @return 该元素存活的邻居数量      */     private int countLivingNeighbors(int[][] arr, int i, int j) {         int count = 0;         //TODO:请完善该函数         return count;     } }

更新状态不应该在同一时刻都依据上一时刻更新吗?
编辑于 2024-03-05 21:23:18

以上就是关于问题【编程题】 # 背景: “康威生命游戏”由一个二维的平面网格组成。网格内的每个格子都是一个细胞,包括“存活”和“死亡”两种状态。每个细胞的生存状态由周围最多8个邻居的状态决定。详细规则如下:
* 当前细胞为存活状态时,当周围的存活细胞低于2个时(不包含2个),该细胞变成死亡状态。(模拟生命数量稀少)
* 当前细胞为存活状态时,当周围有2个或3个存活细胞时,该细胞保持原样。
* 当前细胞为存活状态时,当周围有超过3个存活细胞时,该细胞变成死亡状态。(模拟生命数量过多)
* 当前细胞为死亡状态时,当周围有3个存活细胞时,该细胞变成存活状态。(模拟繁殖)

# 任务:
* 实现函数:`private int getNextVal(int[][] arr, int i, int j)`,返回某个元素的生存状态。
* 实现函数:`private int countLivingNeighbors(int[][] arr, int i, int j)`,计算某细胞的存活邻居数量。
初始代码: public class ShowMeBug {     public final int[][] arr;     public ShowMeBug(int[][] arr) {         this.arr = arr;     }     public static void main(String[] args) {         int[][] arr = new int[][]{                 {0, 0, 0},                 {1, 1, 1},                 {0, 0, 0}         };         final ShowMeBug showMeBug = new ShowMeBug(arr);         showMeBug.updateNextState(arr);         showMeBug.printState();     }     /**      * 输出当前生存状态到控制台      *      */     public void printState() {         int M = arr.length;         int N = arr[0].length;         for (int i = 0; i < M; i++) {             for (int j = 0; j < N; j++) {                 System.out.print(arr[i][j]);                 System.out.print(“” “”);             }             System.out.println();         }     }     /**      * 更新arr下个tick的生存状态      *      * @param arr 当前状态下的数组      */     public void updateNextState(int[][] arr) {         int M = arr.length;         int N = arr[0].length;         for (int i = 0; i < M; i++) {             for (int j = 0; j < N; j++) {                 arr[i][j] = getNextVal(arr, i, j);             }         }     }     /**      * 计算某细胞下个tick的状态      *      * @param arr 当前状态下的数组      * @param i   行索引      * @param j   列索引      * @return 生存返回1,否则返回0      */     private int getNextVal(int[][] arr, int i, int j) {         int nextVal = 0;         //TODO:请完善该函数,要求:需要调用countLivingNeighbors         return nextVal;     }     /**      * 计算某细胞的存活邻居数量      *      * @param arr 当前状态下的数组      * @param i   行索引      * @param j   列索引      * @return 该元素存活的邻居数量      */     private int countLivingNeighbors(int[][] arr, int i, int j) {         int count = 0;         //TODO:请完善该函数         return count;     } }的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

从业7年-专注一级市场


微信:btc9767
TELEGRAM :https://t.me/btcok9

具体资料介绍

web3的一级市场千万收益的逻辑


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 【编程题】 # 背景: “康威生命游戏”由一个二维的平面网格组成。网格内的每个格子都是一个细胞,包括“存活”和“死亡”两种状态。每个细胞的生存状态由周围最多8个邻居的状态决定。详细规则如下: * 当前细胞为存活状态时,当周围的存活细胞低于2个时(不包含2个),该细胞变成死亡状态。(模拟生命数量稀少) * 当前细胞为存活状态时,当周围有2个或3个存活细胞时,该细胞保持原样。 * 当前细胞为存活状态时,当周围有超过3个存活细胞时,该细胞变成死亡状态。(模拟生命数量过多) * 当前细胞为死亡状态时,当周围有3个存活细胞时,该细胞变成存活状态。(模拟繁殖) # 任务: * 实现函数:`private int getNextVal(int[][] arr, int i, int j)`,返回某个元素的生存状态。 * 实现函数:`private int countLivingNeighbors(int[][] arr, int i, int j)`,计算某细胞的存活邻居数量。 初始代码: public class ShowMeBug {     public final int[][] arr;     public ShowMeBug(int[][] arr) {         this.arr = arr;     }     public static void main(String[] args) {         int[][] arr = new int[][]{                 {0, 0, 0},                 {1, 1, 1},                 {0, 0, 0}         };         final ShowMeBug showMeBug = new ShowMeBug(arr);         showMeBug.updateNextState(arr);         showMeBug.printState();     }     /**      * 输出当前生存状态到控制台      *      */     public void printState() {         int M = arr.length;         int N = arr[0].length;         for (int i = 0; i < M; i++) {             for (int j = 0; j < N; j++) {                 System.out.print(arr[i][j]);                 System.out.print(“” “”);             }             System.out.println();         }     }     /**      * 更新arr下个tick的生存状态      *      * @param arr 当前状态下的数组      */     public void updateNextState(int[][] arr) {         int M = arr.length;         int N = arr[0].length;         for (int i = 0; i < M; i++) {             for (int j = 0; j < N; j++) {                 arr[i][j] = getNextVal(arr, i, j);             }         }     }     /**      * 计算某细胞下个tick的状态      *      * @param arr 当前状态下的数组      * @param i   行索引      * @param j   列索引      * @return 生存返回1,否则返回0      */     private int getNextVal(int[][] arr, int i, int j) {         int nextVal = 0;         //TODO:请完善该函数,要求:需要调用countLivingNeighbors         return nextVal;     }     /**      * 计算某细胞的存活邻居数量      *      * @param arr 当前状态下的数组      * @param i   行索引      * @param j   列索引      * @return 该元素存活的邻居数量      */     private int countLivingNeighbors(int[][] arr, int i, int j) {         int count = 0;         //TODO:请完善该函数         return count;     } }