Red de conocimiento informático - Conocimiento sistemático - Código fuente del personaje del juego

Código fuente del personaje del juego

Paquete com.fiveChess

Importar Android.app.activity;

Importar Android.OS.bundle;

Importar Android.view.display;

Importar vista de Android .

Importar vista de Android . administrador de ventanas;

La clase pública MainActivity extiende la actividad {

GameView gameView = null

@Override

public void al crear (paquete guardado estado de instancia){

super oncreate(savedInstanceState);

this.getWindow(). requestFeature(window.feature_number_title);

this.getWindow(). setFlags(WindowManager. LayoutParams. FLAG_FULLSCREEN, WindowManager. layout params. FLAG_full screen);

display display = this. getDefaultDisplay();

gameView = new GameView(this, display.getWidth(), display.getheight());

setContentView(vista del juego);

}

@override

público booleano onCreateOptionsMenu(MenuMenu){

Menu.add ("reiniciar"). seticon(Android . r . dibujable . IC _ menu _ mis lugares);

menu . add(" salir "); >

}

@Override

elemento de opciones booleanas públicas seleccionado (elemento de menú){

If(item.getTitle().Equals("re Start"){

vista del juego . can play = true;

vista del juego . chess = new int[vista del juego . fila][vista del juego . col];

vista del juego.invalidate();

}else if(item.getTitle().

Igual a ("salir")){

finish();

}

Devuelve super .onoptionsitems elegido(elemento);

}

}

Paquete com.fiveChess

Importar aplicación de Android.

Importar contexto de contenido de Android.

Importar contenido de Android.

Importar gráficos de Android. Importar gráficos de Android.

Importar gráficos de Android.

Importar vista de movimiento de Android. view ;

Clase pública GameView vista extendida {

Contexto contexto = null

int ancho de pantalla, alto de pantalla;

Mensaje de cadena = " ";//Preguntar qué jugador es el turno

int row, col//Número de filas y columnas subrayadas

int step = 30 //Cada el espaciado del tablero de ajedrez; grid

int[][]chess = null; //0 significa que no hay piezas de ajedrez, 1 significa ajedrez negro y 2 significa bandera blanca.

booleano isBlack = true

Boolean canPlay = true

Public GameView(ContextContext, int screenWidth, int screenHeight) {

super( contexto);

this.context = contexto

este ancho de pantalla = ancho de pantalla;

este alto de pantalla = alto de pantalla;

This.message = "El negro va primero";

fila =(alto de pantalla-50)/largo de paso+1;

col =(ancho de pantalla-10) /paso + 1;

ajedrez = new int[fila][col];

}

@override

aceptado vacío protegido onDraw(lienzo lienzo) {

super.onDraw(lienzo);

Pintura pintura = pintura nueva();

pintura.setColor(color . blanco) ;

canvas.drawRect(0, 0, screenWidth, screenHeight, paint); //Dibuja el fondo

paint.setColor(color. blue);

paint.settextsize(25);

canvas.drawText(message, (screenWidth-100)/2, 30, paint); //Dibuja la palabra superior

paint.setColor (color.

black);

//Dibuja un tablero de ajedrez

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

canvas.drawLine(10, 5 I *tamaño de paso, 1(col-1)*tamaño de paso, 5I *tamaño de paso, dibujo);

}

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

canvas.drawline(1i*longitudpaso, 50, 1I * longitudpaso, 5(fila-1)*longitudpaso, pintura);

}

for(int r = 0; r & ltcolc++){

for(int c = 0; c & ltcolc++){

if (ajedrez[r][c ] == 1){

paint.setColor(Color.Black);

paint.setStyle(Style.Fill);

lienzo dibujar círculo(. 1c *paso, 5r *paso, 10, dibujar);

}else if(ajedrez[r][c] == 2){

//Pintar ajedrez blanco

paint.setColor(color.white);

paint.setStyle(Style.fill);

lienzo .draw circulo(1c* paso,5r*paso,10,dibujar);

paint.setColor(color.negro);

paint.setStyle (Estilo. Trazo

<); p>lienzo .dibujar círculo (1c *paso, 5r *paso, 10, dibujar); p>

}

@override

público booleano onTouchEvent(evento de evento de movimiento){

if(!puede reproducir){ return false;}

flotar x = evento . getx();

flotar y = evento .

int r = ronda matemática ((y-50) /paso);

int c = math . round((x-10)/paso);

if (r & lt; 0 | | r & gtrow-1 | | c & lt; 0 | c > col-1){return false}

if(ajedrez[r][c]! = 0){Return false}//Si hay piezas de ajedrez, no se extraerán más piezas de ajedrez.

If(isBlack){

ajedrez[r][c]= 1;

isBlack = false

Mensaje = " Es El turno de las blancas";

}else{

ajedrez[r][c]= 2;

isBlack = true

Mensaje = "Es el turno de las negras";

}

invalidate();

if(judge(r, c, 0, 1)) Devuelve falso

si(juez(r, c, 1, 0)) devuelve falso

si(juez(r, c, 1, 1)) devuelve falso

if( juez(r, c, 1, -1)) devuelve falso

Devuelve super.onTouchEvent(evento);

}

Juez booleano privado (int r , int c, int x, int y) {//r, c representa la fila y la columna, x representa el desplazamiento en la dirección y e y representa el desplazamiento en la dirección x.

int recuento = 1;

int a = r

int b = c

mientras(r & gt; = 0 &&r<Rank&c>= 0&&c<col&&r+x> = 0 & amp& ampc+y & lt; col & amp& ajedrez[r][c] ==ajedrez[r+x][c+y]){

cuenta++ ;

si(y & gt0){

c++;

} si no (y & lt;0){

c -;

p>

}

si(x<0){

r++;

} más si(x<0) {

r-;

}

}

while(a & gt; = 0 & amp& ampa & lt fila y fila .& ampb>= 0&&b<col&&a-x>= 0&&a-x<row&b-y>= 0&&b-y<col & amp& ampxiangqi[a][b]==xiangqi[a-x][b-y]){

count++;

if (y & gt0){

B-;

} else if(y & lt;0){

b++;

}

if(x & gt;0){

a-;

} más si(x & lt;0){

a++;

}

}

si(cuenta & gt;=5){

String str =

if(isBlack){

Str = "El blanco gana"

} De lo contrario {

Str = "Las negras ganan";

}

Nuevo cuadro de diálogo de alerta. constructor (contexto). settitle("Juego terminado"). establecer mensaje (cadena). setpositivebutton("Reiniciar", nueva interfaz de diálogo.

onclick oyente () {

@override

public void onClick(diálogo de interfaz de diálogo, int cual) {

ajedrez = new int[fila][col] ;

invalidate();

}

}).setNegativeButton("Mira la partida de ajedrez", nueva interfaz de diálogo. onclick oyente () {

@Override

public void onClick(diálogo de diálogo de interfaz, int cual) {

canPlay = false

}

}).show();

Devuelve verdadero

}

Devuelve falso

}

}

PD: El backgammon se dibuja directamente en el programa, sin imágenes. Tenga en cuenta que envié dos archivos, un archivo de actividad y un archivo de clase. No lo consideres un archivo.