Experimento dos pares programación segunda fase

En primer lugar, el destino de la prueba
  1) experiencia y que trabajan en el desarrollo ágil.

    2) habilidades y prácticas de programación personal para mejorar aún más.

 

En segundo lugar, el contenido experimental
  1) de acuerdo con la siguiente descripción del problema, la programación en parejas ejercicio (programación en parejas) Práctica;

    2) requerir a los estudiantes que trabajen en parejas, combinación libre. Cada grupo utiliza una computadora, dos común que codifica requisitos experimentales completos.

    3) requiere par durante la programación, tanto las funciones de conmutación al menos 4;

    4) lenguaje de programación no se limita a, la versión no está limitado. Recomienda el uso de programación Python o Java.

 

En tercer lugar, los requisitos experimentales

1, la especificación de código


2, el proceso de diseño general (la relación entre el módulo de referencia)

(1) A fin de reflejar la idea jerárquica de la ingeniería de software, la estructura se divide en la capa de datos, capa de servicios y la capa de aplicación

  • datos de la capa de almacenamiento de clase matriz de células
  • aritmética lógica almacenada en la capa de servicio
  • lifeGame capa de aplicación es la principal aplicación de interfaz y de inicio

 

(2) un diagrama de bloques funcionales que ilustra el algoritmo

 

3, el logro de unión programa (y con código) procedimientos de programación del (de referencia) y funciones

par de proceso (1) la programación

Practicamos estamos utilizando par QQ remoto, con el fin de facilitar las estadísticas que utilizamos para el progreso tema específico registro

 

 

(2) la consecución de la función

  • inicialización de la matriz

 

. 1  pública  estática CellArray initMap ( int fila, int COL) {
 2          células CellArray = nuevo nuevo CellArray (fila, columna);
 . 3          para ( int   I = 0 ; I <Fila; I ++ ) {
 4.              Para ( int J = 0 ; J < COL; J ++ ) {
 . 5                  el azar = R ^ nuevo nuevo el azar ();
 . 6                  int a = r.nextInt ( 4. ); // seleccionados al azar de un número entre 0-3 
. 7                  SI (a == . 1 ) {
 . 8                     cells.setCell (i, j, CellState.LIVE.getValue ());
9                  }
 10                  más {
 11                      cells.setCell (i, j, CellState.DEAD.getValue ());
12                      
13                  }
 14              }
 15          }
 16          de retorno células;
17      }

 

  • Celular de próxima generación
1  // 判断细胞下一代的生死
2      pública  estática CellArray generar (células CellArray) {
 3          CellArray nextCells = nuevo CellArray (cells.getRow (), cells.getCol ());
4        para ( int i = 0 ; i <nextCells.getRow (); i ++ ) 
 5            para ( int j = 0 ; j <nextCells.getCol (); j ++ ) {
 6                
7                int count = countNumber (células, i, j) ;
8               Si (recuento == 3 ) {
 9                  nextCells.setCell (I, J, CellState.LIVE.getValue ());    // en vivo tres vecinos vivos 
10               }
 . 11               la otra  IF (COUNT == 2 && cells.getCell (I, J) == CellState.LIVE.getValue ( )) {   // vivo y sus vecinos es inherentemente dos viviendo viva 
12 es                   nextCells.setCell (I, J, CellState.LIVE.getValue ());
 13 es               }
 14               la otra cosa {
 15                   nextCells.setCell (I, J, CellState.DEAD .getValue ());   // de lo contrario mueren 
16               }
 . 17            }
 18 es          
19.          retorno   nextCells;
 20 es         
21      }

 

  • ciclo de vida de la célula
1          // 细胞生命周期
2          Timer temporizador = nuevo Timer ();
3          timer.schedule ( nuevo TimerTask () {
 4              @ Override
 5              público  void run () {
 6                  células = GameService.generate (células);
 7                  ++ generación;
 8                  label2.setText ( " 繁衍代数: " + generación);
 9                  para ( int i = 0 ; i <fila; i ++ ) {
 10                      para (int j = 0 ; j <col; j ++ ) {
 11                          si (cells.getCell (i, j) == CellState.LIVE.getValue ()) {
 12                              btns [i] [j] .setBackground (Color.black);
13  
14                          } else {
 15                              btns [i] [j] .setBackground (Color.white);
16                          }
 17                      }
 18                  }
 19              }
 20          }, 0 , 500 );
21          setVisible ( verdadero);
22      }

 

  • Contar el número de vecinos en vivo
1      // contar el número de los límites de la viabilidad celular vecino 
2      pública  estática  int countNumber (células CellArray, int X, int Y) {
 3.          Int COUNT = 0 ;
 . 4           para ( int I = 0 ; I < . 3 ; ++ I) {
 5.                  para ( int J = 0 ; J < 3. ; ++ J) {
 6.                      IF (CellState.LIVE.getValue () == cells.getCell (TEMP + X [I], TEMP + Y [J])) { // contar determinar el número de células viables en la matriz y célula dada y las células circundantes son los mismos 
7                         ++ COUNT;
 . 8                      }
 9.                  }
 10              }    
 11.           IF {(() == cells.getCell (X, Y) CellState.LIVE.getValue) // número de posiciones en las células de la matriz si el número de células viables y dado el mismo 
12                  - COUNT;
 13 es              }
 14          
15          retorno COUNT;
 16      }

 

  • Los resultados muestran

 

 

4, la dirección de elemento github (referencia)

Dirección: https://github.com/super-sweet8/-

Añadir lo siguiente: cuando el cuarto de cambio, compruebe el código correctamente compañeros de equipo ya no push de información, por lo que no hay constancia en el README, pero puede reflexionar sobre temas de

 

5, resumen de la prueba

    Tendría el efecto de mostrar que a uno le gustaría subir videos, revisar una gran cantidad de información, tutoriales de vídeo en línea son similares a cargar estaciones Youku B y similares, la plataforma generará un enlace al video, no se encuentra la solución de vídeo local. Tratado de usar disco de red Baidu para crear un enlace, la página se encuentra para mostrar la introducción de la contraseña, no quiero convertir esta ayuda enlace de la estación B, debido B-UP video principal estación es proporcionar a aprender, que no tengo ningún tipo de ayuda a los demás, puramente para fines personales , acondicionados sensación muy avergonzado, así que me di por vencido. Tal vez hay otras maneras de conocer amigos dan la bienvenida mensaje.

    El experimento ha terminado, los problemas encontrados en el proceso realmente es interminable, no hay otra manera es tener que tener paciencia y luego se detiene la repetición repetición de la repetición, Baidu es una gran herramienta de aprendizaje, pero no un montón de acceso a la cosecha total . equipo de programación es un gran reto, la comunicación es la más importante, también representaron una gran cantidad de tolerancia y entendimiento, las dos partes completaron el momento del experimento, incluso a través de la pantalla también es consciente del otro lado de las líneas de esa emoción.

   Los experimentos en la operación en github omitido en el presente documento se han descrito en detalle en este documento varios hecho primero.

Supongo que te gusta

Origin www.cnblogs.com/blog-address/p/12433806.html
Recomendado
Clasificación