【PTA】Juego Buscaminas

Por favor agregue la descripción de la imagen
Tarjeta de visita personal:

bloguero: Alcohólicos ᝰ.
Perfil personal: Disfrute del vino y luche por un futuro con una bebida.
columna: Ejercicios y análisis de PTA
introducir: Grabó las preguntas de práctica del blogger en pta

Por favor agregue la descripción de la imagen

prefacio

1. Introducción

La "Plataforma de enseñanza auxiliar experimental de programación de la PTA" es una plataforma de enseñanza auxiliar para cursos de programación dirigida por la Universidad de Zhejiang, administrada y operada por Hangzhou Baiteng Education Technology Co., Ltd., y construida conjuntamente por profesores en colegios y universidades de todo el país. En la actualidad, han participado 538 colegios y universidades de todo el país, y 3.152 profesores han construido conjuntamente 66.095 temas de alta calidad, y el número de estudiantes registrados ha llegado a 1,36 millones; hay 14 conjuntos de temas fijos (que cubren lenguaje C, lenguaje JAVA, Lenguaje Python, estructura de datos, sistema de base de datos) y banco de preguntas de competencia informática de la Universidad de China) y 55 conjuntos de temas de cursos profesionales (que cubren informática, electrónica, literatura, idiomas extranjeros y certificación de Huawei). Hay 10 tipos de preguntas que incluyen preguntas verdaderas y falsas, preguntas para completar espacios en blanco, preguntas de opción múltiple, preguntas de opción múltiple, preguntas para completar espacios en blanco del programa, preguntas sobre funciones, preguntas sobre programación, preguntas subjetivas, preguntas de programación de archivos múltiples y preguntas de programación SQL.

2. Ventajas

  • Apoye a 200,000 personas en línea al mismo tiempo
  • Soporta múltiples tipos de preguntas
  • Admite una variedad de modos de juicio
  • Proporcionar una garantía integral para la calidad de la enseñanza.
  • Sistema de respuesta instantánea a preguntas.

1. El tema

Los amigos que han jugado al buscaminas saben que el objetivo del juego es encontrar todas las minas en una matriz nm. En esta pregunta, debes contar la cantidad de minas alrededor de cada celda, y cada celda tiene la mayor cantidad Hay 8 celdas adyacentes , como se muestra en la siguiente figura, en las 44 celdas, "*" significa mío y "^" significa que no es mío.
inserte la descripción de la imagen aquí

La salida calculada es:

*100

2210

1*10

1110

Formato de entrada:
La entrada contiene varias matrices. Para cada matriz, la primera fila contiene dos números M y N, que representan el número de filas y columnas de la matriz respectivamente (0<N, M<100), y las siguientes N filas contener caracteres M, es decir, la matriz, con "*" para minas y "^" para espacios en blanco. Cuando N=M=0, significa el final y la línea no se procesa.

Formato de salida:
Para cada matriz, primero imprima el número de serie de la matriz en una línea separada: Campo #X: donde X es el número de la matriz, numerado desde 1, y en las siguientes N líneas, se usa la lectura "^" alrededor de la posición En lugar del número de minas, el lugar de las minas todavía se representa con "*". Hay una línea en blanco entre la salida de dos matrices adyacentes.

Entrada de muestra:
aquí hay un conjunto de entradas. P.ej:
inserte la descripción de la imagen aquí

Salida de muestra:
Aquí se proporciona la salida correspondiente. P.ej:

Campo #1:
100
2210
1
10
1110

Campo #2:
324 310
4 20
2
56 41
23
6**1
2
34 31
334 531
23
5**1
1
33**31

Código Límite de longitud 16 KB
Límite de tiempo 400 ms
Límite de memoria 64 MB

2. Código

import java.util.Scanner;


public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner sc = new Scanner(System.in);
        int number = 0;
        int M = 1;
        int N = 1;
        while (M != 0 && N != 0){
    
    
            M = sc.nextInt();
            N = sc.nextInt();
            int[][] num = new int[M][N];
            String str;
            int sum = 0;
            for (int i = 0; i < M; i++) {
    
    
                str = sc.next();
                for (int j = 0; j < N; j++) {
    
    
                    num[i][j] = str.charAt(j);
                }
            }
            number++;
            if (M != 0 && N != 0 && number == 1){
    
    
                System.out.println("Field #" + number + ":");
            }else if (M != 0 && N != 0 && number != 1){
    
    
                System.out.println();
                System.out.println();
                System.out.println("Field #" + number + ":");
            }
            for (int i = 0; i < M; i++) {
    
    
                for (int j = 0; j < N; j++) {
    
    
                    if (num[i][j] == '*'){
    
    
                        System.out.print("*");
                    }else {
    
    
                        for (int k = i-1; k <= i+1; k++) {
    
    
                            for (int l = j-1; l <= j+1; l++) {
    
    
                                if (k >= M || l >= N || k < 0 || l < 0){
    
    
                                }else if (num[k][l] == '*'){
    
    
                                    sum++;
                                }
                            }
                        }
                        System.out.print(sum);
                        sum = 0;
                    }
                }
                if (i != M-1){
    
    
                    System.out.println();
                }
            }
        }
        System.out.println();
        System.out.println();
    }
}

Supongo que te gusta

Origin blog.csdn.net/m0_65144570/article/details/127115353
Recomendado
Clasificación