enlace del tema: disponible coche de captura
Significado de las preguntas: en el tablero de un 8 x 8, hay un coche blanco (torre). También puede ser caja disponible, elefante blanco (obispo) y el peón negro (peón). Se les da el carácter "R", "",y 'p'. Los caracteres en mayúscula indican blanca, se representan los caracteres en minúsculas negras.
El coche se mueve en la regla de ajedrez: elegir una de las cuatro direcciones básicas (Norte, Este, Oeste y Sur), y luego se mueven en esa dirección hasta que se elija a tope, o llegan al borde del tablero para mover a la misma plaza captura y muerte de los cuadrados de colores opuestos. Además, el coche no puede ser amigable con el otro (blanco) al igual que en la misma caja.
Devuelve el número de la muerte en un coche para ser capaz de captar el movimiento.
Solución: es comprender el significado del título. . Explicar que, encontrar la ubicación del coche, encontrará la muerte tan lejos de la ubicación actual a la rodea. Golpear como a parada.
Con muy violentos métodos. .
código:
1 de clase de soluciones { 2 públicas : 3 int numRookCaptures (vector <vector < Char >> y de mesa) { 4 int posx, ramillete; 5 int cnt = 0 ; 6 para ( int i = 0 ; i < 8 ; i ++ ) { 7 para ( int j = 0 ; j < 8 ; j ++ ) { 8 si (tablero [i] [j] == ' R ' ) { 9 posx = i; 10 ramillete = j; 11 descanso ; 12 } 13 } 14 } 15 16 // 上 17 para ( int i = posx- 1 ; i> = 0 ; i-- ) { 18 si (tablero [i] [ramillete] == ' ' ) siguen ; // 空方块19 más si (tablero [i] [ramillete] == ' B ' ) PAUSA ; // imagen 20 es la más IF (Board [I] [POSY] == ' P ' ) { // Muerte 21 es CNT = + 1. ; 22 es PAUSA ; 23 es } 24 } 25 // caso 26 es para ( int I = POSX + 1. ; I < . 8 ; I ++ ) { 27 IF (Board [I] [POSY] == ' ' ) Continuar ; // cuadrados vacíos 28 más si (tablero [i] [ramillete] == ' B ' ) descanso ; // 象 29 más si (tablero [i] [ramillete] == ' p ' ) { // 卒 30 cnt + = 1 ; 31 descanso ; 32 } 33 } 34 // 左 35 para ( int i = posy- 1 ; i> = 0 ; i-- ) { 36 si (tablero [posx] [i] == '. ' ) Continuar ; // cuadrados vacíos 37 [ el otro IF (Board [POSX] [I] == ' B ' ) PAUSA ; // imagen 38 es la más IF (Board [POSX] [I] == ' P ' ) { / / muerte 39 CNT + = 1. ; 40 PAUSA ; 41 es } 42 es } 43 es // derecho 44 es para ( int I = POSY + 1. ; I <. 8 ; I ++ ) { 45 IF (Board [POSX] [I] == ' ' ) Continuar ; // cuadrados vacíos 46 es la más IF (Board [POSX] [I] == ' B ' ) PAUSA ; // como 47 el otro IF (Board [POSX] [I] == ' P ' ) { // muerte 48 CNT + = 1. ; 49 PAUSA ; 50 } 51 es } 52 es vuelta cnt; 53 } 54 };