Red de conocimiento informático - Conocimiento informático - Código fuente de moneda java

Código fuente de moneda java

importar java.awt.*;

importar javax.swing.*;

importar java.util.random;

importar java.awt.event.* ;

La clase mínima extiende JPanel //clase de lei

{

//Observaciones: botón izquierdo del mouse = 1; botón derecho = 3;

private int flag = 0, status = 0; //Definir los atributos de Thunder 0: No abierto 1: Abierto 2: Marcado como Thunder 3: No seguro.

//flag = 0 no es un trueno; Flag = 1 es un trueno.

private int pero, count = 0; //Pero: ¿qué botón del ratón se presionó? Earl: ¿Cuántas minas hay en esta zona?

private int mx = 0, my = 0, MW = 10; // Definir las coordenadas y ancho de la mina.

Mín público() //Constructor

{

statu = 0

}

Mínimo público; (int f, int x, int y, int w)

//Constructor

{

bandera = f;

MX = x;

my = y

MW = w;

}

public int get flag(){ return flag; }

public int get status(){ return status;}

public int getMx(){ return MX;}

public int getMy() { return my;}

public int getMw(){ return MW;}

public int get count(){ return count;}

public void set flag( int f){ flag = f;}

recuento de conjunto de vacío público (int c){ recuento = c;}

setData de vacío público (int f, int x, int y, int w, int s)

//valor de paso

{

bandera = f;

MX =(x- 1) * w;

mi =(y-1)* w;

MW = w-1;

estado = s;

}

//Cambie las propiedades de la luz según los clics del mouse.

public int sendKey(int key)

{

//Valor de retorno, -1 si el juego termina.

int RTN = 1;

if(clave == 3)

{

Cambiar (estado)

{

Caso 1:

Rotura;

Caso 2:

statu = 3;

Romper;

Caso 3:

statu = 0;

Romper;

Caso 0:

statu = 2;

Pausa;

}

RTN = 1;

}

if(clave = = 1&&status==0)

{

Interruptor (bandera)

{

Caso 0:

estado = 1;

RTN = 2;

Pausa;

Caso 1:

estado = 1 ;

RTN =-1;

Pausa;

}

}

Devolver rtn

}

}

La clase DrawPanel extiende JPanel

{

private int i, j;

private int f = 0; //Si f = 1, el juego termina, si f =2, entonces gana

private int chx = 0, chy = 0 //Registra especialmente las coordenadas x y el valor de; y.

private int msum = 6, ksum = 0; //msum: número de minas, ksum: número de minas marcadas.

private int bx = 10, by = 10, bw = 40 //bx, by: el tamaño del tablero de ajedrez, bw: el tamaño de las piezas de ajedrez.

Tablero mínimo público[][] = {

{Nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo mínimo valor valor(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo() ( ), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(),

{nuevo valor mínimo(), nuevo valor mínimo() ( ), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo () , nuevo mínimo(), nuevo mínimo(), nuevo mínimo(), nuevo mínimo(), nuevo mínimo(), nuevo mínimo(), nuevo mínimo(), nuevo mínimo(),

{Nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo valor(), nuevo valor mínimo() valor(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo ( ), nuevo valor mínimo (),

{nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo ( ), nuevo valor mínimo ( ), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(),

{nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min( ), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min( ), nuevo Min(), nuevo Min(), {nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min (), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min (), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min(), nuevo Min (),

{nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo() , nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(),

{nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo() , nuevo valor mínimo () , nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo mínimo(), nuevo mínimo (), nuevo mínimo(), nuevo mínimo(), nuevo mínimo(), nuevo mínimo(), nuevo mínimo(),

{nuevo min(), newmin(), newmin(), newmin (), newmin(), newmin(), newmin(), newmin(), newmin (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo(),

{nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo (), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo () , nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(),

{nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo min(), newmin(), newmin(), newmin(), newmin(), newmin(), newmin(), newmin( ), nuevo minuto ()

, nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(),

{nuevo valor mínimo() , nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo min(), newmin(), newmin(), newmin(), newmin(), newmin(), newmin(), newmin(), newmin (),

{nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo mínimo valor (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo () ),

{nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo ( ), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(),

{nuevo valor mínimo(), nuevo min(), newmin(), newmin(), newmin(), newmin (), newmin(), newmin(), newmin(), newmin (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (),

{Nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(),

{nuevo valor mínimo(), nuevo valor mínimo() (), nuevo valor mínimo(), nuevo valor mínimo(), nuevo min(), newmin(), newmin(), newmin(), newmin(), newmin(), newmin(), newmin(), newmin ( ), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (),

{nuevo valor mínimo (), nuevo valor mínimo ( ), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), < / p>

{Nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo valor mínimo(), nuevo min (), newmin(), newmin(), newmin(), newmin(), newmin(), newmin(), newmin(), newmin (), nuevo valor mínimo (), nuevo valor mínimo (),

{nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo (), nuevo valor mínimo () , nuevo valor mínimo (), nuevo valor mínimo (),

};

//Uso Las coordenadas ax y ay dibujan el estado de la mina en la zona.

Public void Draw(Gráficos g, int ax, int ay)

{

int x, y, w; // Coordenadas x, y y; Ancho: w

int s, c, bandera//estado; número de truenos

int CX = bw/2-4; bw/2+4;

x = tablero[ax][ay]. getMx();

y = tablero[ax][ay].

getMy();

w = tablero[ax][ay]. getMw();

s = tablero[ax][ay]. obtener estado();

c = tablero[ax][ay]. getCount();

bandera= tablero[ax][ay]. get flag();

Cambiar

{

Caso 0: //No abierto.

{

g . establecer color(color . negro);

g.fillRect(x, y, w, w); p>Break;

}

Caso 1: //Estado abierto

{

g set color(color . blue) ;

g.fillRect(x, y, w, w);

If (c!= 0 & amp& ampFlag == 0) //Aquí no hay truenos.

{

g . establecer color(color . rojo);

g.drawString(String.valueOf(c), x + cx, y+cy); );

}

If(flag == 1) //Aquí hay truenos.

{

g . establecer color(color . rojo

g.fillRect(x, y, w, w); p>g . establecer color(color . azul);

G.drawString("雷",x+cx,y+cy);

}

Pausa;

}

Caso 2: //Estado de la marca de la mina

{

g . ;

g.fillRect(x, y, w, w);

g establecer color(color . azul); flag ", x+cx, y+cy);

Pausa;

}

Caso 3: //Estado incierto

{

g . establecer color(color . negro);

g.fillRect(x, y, w, w);

g . color . rojo);

g . Tirar de la cuerda ("?, x + cx, y + cy);

Romper;

}

Valor predeterminado:

Interrupción;

}

}

//Sin función de dibujo del trazador: use el eje de coordenadas, ay dibuja el estado y los gráficos de Thunder

Extracción de vacío público (int ax, int ay)

{

Gráfico g; = this . get Graphics();

draw(g, ax, ay);

}

//Abre un lugar sin minas a su alrededor, haz clic. el botón izquierdo para activar el área de dibujo

public int openNoMin(int ax, int ay)

{

int i, j;

if(ax & lt; 1 | | ay & lt; 1 | | ax & gt; bx | | ay & gtby) devuelve 0; //El área en la que se hace clic con el mouse está fuera de los límites

if (board [. ax][ay]. getStatu() ! = 0) devuelve 0; // Devuelve si esta área está abierta

Plank[ax][ay].

sendKey(1); //Si el valor de retorno es igual a -1, el juego termina.

draw(ax, ay);

if (board[ax][ay].getFlag() == 1)

//Si el juego Se acabó, y mostró todos los truenos.

{

for(I = 1; i & lt= bxi++)

{

for(j = 1; j & lt= byj++)

{

if(tablero de ajedrez[i][j].getFlag() == 1)

{

Consejo[i][j]. enviarClave(1);

dibujar(i, j);

}

}

}

return-1;

}

//Si el juego no ha terminado.

if(board[ax][ay].getCount()>0)

{

ksum++;

Devuelve 1 ; // Si hay truenos alrededor, no es necesario abrir el asedio.

}

if(Board[ax][ay].getCount()== 0&&Board[ax][ay].getFlag()==0 )

//No hay truenos alrededor. Abre alrededor hasta que haya truenos.

{

openNoMin(ax-1, ay-1); openNoMin(ax, ay-1); openNoMin(ax+1, ay-1);

openNoMin(ax-1, ay); openNoMin(ax+1, ay);

openNoMin(ax-1, ay+1); ax+1, ay+1);

}

ksum++;

Devuelve 1;

}

//Calcule el número de truenos alrededor de las coordenadas xey.

público int getCount(int ai, int aj)

{

int suma = 0;

if(tablero[ai] [aj].getFlag() == 1)

{

Suma devuelta;

}

if(ai & gt; 1. & ampaj & gt1. & ampai & ltbx & amp& ampaj & lt by)

{

suma = tablero[ai-1][aj-1]. obtener bandera()+tablero[ai][aj-1]. obtener bandera()+tablero[ai+1][aj-1]. getFlag()+

Tablero[ai-1][aj]. obtener bandera()+tablero[ai+1][aj]. getFlag()+

Tablero[ai-1][aj+1]. obtener bandera()+tablero[ai][aj+1]. obtener bandera()+tablero[ai+1][aj+1]. obtener bandera();

}

if(ai == 1 & amp; & ampaj==1)

{

suma = tablero[ai+1][aj]. getFlag()+

Tablero de ajedrez[ai][aj+1]. obtener bandera()+tablero[ai+1][aj+1]. get flag();

}

if(ai == 1 & amp; & ampaj==by)

{

suma = tablero[ai][aj-1].

obtener bandera()+tablero[ai+1][aj-1]. getFlag()+

Tablero[ai+1][aj]. obtener bandera();

}

if(ai == bx & amp; & ampaj==1)

{

suma = tablero[ai-1][aj]. getFlag()+

Tablero[ai-1][aj+1]. obtener bandera()+tablero[ai][aj+1]. obtener bandera();

}

if(ai == bx & amp; & ampaj==by)

{

suma = tablero[ai-1][aj-1]. obtener bandera()+tablero[ai][aj-1]. getFlag()+

Tablero[ai-1][aj]. get flag();

}

if(ai = = 1&&aj>1. &aj< by)

{

suma = tablero[ai ][aj-1]. obtener bandera()+tablero[ai+1][aj-1]. getFlag()+

Tablero[ai+1][aj]. getFlag()+

Tablero de ajedrez[ai][aj+1]. obtener bandera()+tablero[ai+1][aj+1]. get flag();

}

if(ai = = bx & amp; & ampaj & gt1. & ampaj & lt by)

{

suma = tablero[ai-1][aj-1]. obtener bandera()+tablero[ai][aj-1]. getFlag()+

Tablero[ai-1][aj]. getFlag()+

Tablero[ai-1][aj+1]. obtener bandera()+tablero[ai][aj+1]. get flag();

}

if(ai & gt; 1. & ampai & ltbx & amp& ampaj==1)

{

suma = tablero[ai-1][aj]. obtener bandera()+tablero[ai+1][aj]. getFlag()+

Tablero[ai-1][aj+1]. obtener bandera()+tablero[ai][aj+1]. obtener bandera()+tablero[ai+1][aj+1]. get flag();

}

if(ai & gt; 1. & ampai & ltbx & amp& ampaj==by)

{

suma = tablero[ai-1][aj-1]. obtener bandera()+tablero[ai][aj-1]. obtener bandera()+tablero[ai+1][aj-1]. getFlag()+

Tablero[ai-1][aj]. obtener bandera()+tablero[ai+1][aj]. get flag();

}

Devuelve la suma;

}

//Pasar parámetros: cuántas columnas, cuántas muchas filas, ancho, número de trueno.

public void initMin(int ax, int ay, int aw, int as)

{

int k = 1 //Indica qué mío se genera; .

Random r; //Número aleatorio

f = 0; //f=0 significa que el juego aún no ha terminado.

ksum = 0;

bx = ax

by = ay

bw = aw

msum = as

r = new Random();

//Inicializa el valor del chasis.

for(I = 1; i & lt= bxi++)

{

for(j = 1; j & lt= byj++)

{

Tablero[i][j]. setData(0, I, j, bw, 0);

}

}

//Generar truenos aleatoriamente

mientras( k & lt; = msum)

{

I = r nextint(bx)+1

j = r nextint(by)+1; ;

if(tablero[i][j].getFlag()!= 1)

{

Tablero[i][j]. set flag(1);

k++;

}

}

//Hay varias minas alrededor del área libre de minas . Inicialice sus valores.

for(I = 1; i & lt= bxi++)

{

for(j = 1; j & lt= byj++)

{

Tablero[i][j]. setCount(getCount(i, j));

}

}

establecer fondo(color . blanco);

repintar( );

}

//Constructor

Panel de dibujo público (int ax, int ay, int aw, int as)

{

initMin(ax, ay, aw, as);

addMouseListener(new MouseAdapter()

{

Public void mousePressed (MouseEvent me)

{

int r;

Regresar if (f!= 0); //Si el juego termina, regresar.

CHX = yo . getx();

chy = yo . gety();

if(me.getButton()!= 1)

{

Tablero [CHX/bw+1][chy/bw+1]. sendKey(me. get button());

draw(chx/bw+ 1). ,chy/bw+1);

}

else if(me.getButton() == 1)

{

if(openNoMin(chx/bw+1,chy/bw+1) == -1)

{

f = 1;

repintar() ;

}

si no (ksum + msum == bx*by)

{

f = 2;

p>

repintar();

}

}

}

}

) ;

}

//Vuelve a dibujar todos los gráficos, incluidos algunos gráficos modificados.

Pintura pública en blanco (gráfico g)

{

int x, y, w

int

int CX = bw/2-4;

int cy = bw/2+4;

g.clearRect(0, 0, 600, 600); p>

for(I = 1; i & lt= bxi++)

{

for(j = 1; j & lt= byj++)

{

dibujar(g, I, j

}

}

Si (f == 1)

{

fuente f = nueva fuente("11",1,70);

fuente fo = g.get font();

g . establecer color(color . blanco);

g . >g .drawString("Juego terminado", 0, 200);

g set font(fo);

}

if (f ==. 2)

{

Fuente f = nueva fuente("11",1,70);

fuente fo = g.get font();

g . establecer color(color . blanco);

g establecer fuente(f);

//g .

g.drawString("¡Tú ganas!",0,200);

g set font(fo);

}

}

};

//Entrada de la clase principal y del programa

Clase pública Mine extiende JFrame para implementar ActionListener

{

contenedor CP = getContentPane();

JButton Bt = nuevo JButton("apertura");

Etiqueta l1 = nueva etiqueta("Columna:");

Etiqueta l2 = nueva etiqueta (" línea: ");

Etiqueta l3 = nueva etiqueta (" ancho:

Etiqueta l4 = nueva etiqueta ("雷número: ") ;

TextField TF 1 = new TextField(" 10 ", 2); // Columna

TextField tf2 = new TextField(" 10 ", 2); // Línea

TextField tf3 = new TextField("40",2);//Ancho

TextField tf4 = new TextField("15",2);//El número de truenos

int x=10, y=10, w=40, suma = 15

DrawPanel dp = new DrawPanel(x, y, w, suma); p>Mina pública()

{

establecer fondo(color . blanco

cp.setLayout(empty

); CP agregar (DP);

CP agregar(Bt);

CP agregar(TF 1);

CP agregar(tf2);

CP agregar(tf3);

CP agregar(tf4);

);

CP agregar(L2);

CP agregar(L3

CP . >l1.setBounds(20, 10, 20, 20);

tf1.setBounds(40, 10, 20, 20);

l2.setBounds(70, 10, 20); , 20);

tf2.setBounds(90, 10, 20, 20);

l3.setBounds(120, 10, 40, 20); >tf3.setBounds(160, 10, 20, 20);

l4.setBounds(190, 10, 60, 20);

tf4.setBounds(250, 10, 20); , 20);

bt.setBounds(300, 10, 80, 20);

dp.setBounds(20, 40, x*w, y * w); p>

p>

setResizable(false);

setSize(x*w+40, y * w+80);

SetTitle("Desminado") ;

show();

Bt. addactionlistener(this);

addWindowListener(new WindowAdapter()

{ventana vacía pública close(WindowEvent e)

{ sistema .

Public void La operación se ha ejecutado (evento de operación e)

{

if(e.getSource() == bt)

{

/ /x = entero . parse int(TF 1 . gettext());

//y = entero . parse int(tf2 . gettext());

//w = entero . parse int(tf3 . gettext());

suma = entero . parse int(tf4 . gettext());

setSize(x) *w+40, y * w+80);

dp.setBounds(20, 40, x*w, y * w);

show();

dp.initMin (x, y, w, suma);

}

}

Public static void main(String args[])

{

Nueva Mina();

}

};