Red de conocimiento informático - Aprendizaje de programación - La programación Java es algo normal y corriente.

La programación Java es algo normal y corriente.

Escribí uno, espero que el cartel esté satisfecho. Código superior

¿Importar? Java .awt.point;

¿Importar? Java . util .aleatorio;

¿Importar? Java . util . escáner;

¿Público? ¿clase? ¿La hormiga? {

carácter[][]? entorno

int? ancho = 20;

int? altura = 10;

¿Aleatorio? Corrió=¿nuevo? aleatorio();;

int? hormigas = corrió . nextint(30)+40;

int? caramelo = corrió . nextint(30)+55;

int? nivel = 1;

¿Escáner? sc=nuevo? Escáner(sistema . in);

TheAnt(){

env=new? char[alto][ancho];

for(int?i = 0;i<ant;i++){

punto? po = getPoint();

if(env[po.y][po.x]!=0){

I-;

Continuar;

}

env[po . y][po . I = 0;i<Candy;i++){

¿Punto? po = getPoint();

if(env[po.y][po.x]!=0){

I-;

Continuar;

}

env[po . y][po x]= ' $ '; println("Distribución aleatoria:");

showMap();

¿Cadena? isnext =

while(true){

System.out.println("Ingrese 1 para mostrar la siguiente ronda de resultados, otros para salir");

es siguiente = sc . siguiente();

if(isnext.trim().equals(" 1 "){

handle();

nivel++;

mostrarMapa();

}de lo contrario{

romper;

}

}

System.out.println("Resultado final:");

showMap();

}

Punto getPoint(){

Punto? resultado = nuevo? Punto(ran.nextInt(ancho), ran.nextInt(alto));

retorno?

}

¿No es válido? handle(){

char[][]? char[alto][ancho];

for(int?I = 0; & ltheeight;i++ ){

for(int? j = 0;j & ltwidth;j++){

//Procesa cada cuadrícula

handleCell(tem,j, I);

}

}

//tem es el resultado del procesamiento.

this.env = tem

}

¿No es válido? handleCell(char[][]tem,int?w,int?h){

int? sx = w & lt=0?0:w-1;

int? sy = h & lt=0?0:h-1;

int? ex=w<ancho-1? w+1:ancho-1;

int? ey=h&laltura-1? h+1:Altura-1;

¿Dejar un mensaje? resultado=nuevo? message();

resultado . settype(env[h][w]);

//Estadísticas sobre el tipo de esta grilla y las condiciones circundantes.

for(int?a = sxa & lt= exa++){

for(int?b = syb & lt= eyb++){

if(a = = w &&B==h){//Esta casilla no cuenta.

Continuar;

}

if(env[b][a]=='#'){

resultado . (resultado . getantnum()+1);

}¿Algo más? if(env[b][a]=='$'){

resultado . setcannum(resultado . getcannum()+1); >}

}

if(result.getType()==0){

if(resultado . getcannum()>0){< / p>

tem[h][w]= ' $ ';

}

}¿Algo más? if(result.getType()=='#'){

if(resultado. getantnum()>=3?||?result.getCanNum()==0){

tem[h][w]= 0;

}

}¿Otro? if(result.getType()=='$'){

if(resultado. getantnum()> 0){

tem[h][w]= ' # ';

}

}

}

¿Público? ¿Electricidad estática? ¿Vacío? main(String[]?args){

¿Nuevo? TheAnt();

}

¿Público? ¿Vacío? mostrarMapa(){

System.

out.println ("\ n = = = = primera homotopía "+nivel+" = = = = = = \ n ");

for(int?I = 0; i< altura; i++){

for(int? j = 0; j & lt ancho; j++){

if(env[i][j]==0){

System.out.print("?);

} En caso contrario{

System.out.print("?+env[i][j]+ "?);

}

}

sistema . println(" \ n ");

}

}

}

Mensaje{

¿Privado? char?

¿Privado?

¿Privado?

¿Público? mensaje(){}

¿Público?

this.antNum = num

this.type = pc

}

público? getType()? {

Regresar? Tipo;

}

¿No es válido? p>

¿Este tipo? p>

}

¿Público? getAntNum()? {

¿Regresar?

¿Público? ?antNum)? {

Este.antNum

público? getCanNum()? /p>

¿Regresar? p>¿No válido? {

This.CanNum?canNum

}

}

De hecho, no es difícil. procesamiento, simplemente cuente la situación alrededor de cada cuadrícula y luego use la cuadrícula en sí. ¿Qué es? Y las reglas condicionales para determinar cómo debería verse la siguiente cuadrícula.

Espero adoptar O (∩_∩) O~