Código fuente del personaje del juego
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){ p>
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 () { p >
@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.