Código fuente de juego móvil retro
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) / tamaño del paso 1;
ajedrez = new int[row][col];
}
@override
protected void onDraw( lienzo lienzo){
super.onDraw(canvas);
Paint pintura = nueva pintura();
paint.setColor(color. blanco ); /p>
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 lt row; i) {
canvas.drawLine(10, 50 I * tamaño de paso, 10 (col-1) * tamaño de paso, 50 I * tamaño de paso, dibujo
}
for(int I = 0; i ltcoli ){
canvas . drawline(10 i*stepLength, 50, 10 I * stepLength, 50 (fila-1)*stepLength, paint
}
for(int r = 0; r lt fila; r ){
for(int c = 0; c ltcolc ){
if(ajedrez[r][c] == 1){
paint.setColor(Color.Negro);
paint.setStyle(Style.Fill);
canvas.draw círculo(10 c * Longitud del paso, 50 r * Longitud del paso, 10, haz un dibujo);
}else if(chess[r][c] == 2){
//Dibuja el ajedrez blanco
paint.setColor(Color.White);
paint.setStyle(Style.Fill);
canvas.draw círculo(10 c *paso , 50 r * tamaño de paso, 10, dibujo);
paint.setColor (color. negro
paint.setStyle (Estilo. trazo
lienzo .dibujar círculo(10 c * paso, 50 r * paso, 10, dibujar
}
}
}
<); p>}@override
público booleano onTouchEvent(evento de evento de movimiento){
if (!puede reproducir){ return false;}
flotador x = evento . getx();
flotador y = evento . gety();
int r = ronda matemática ((y-50)/tamaño de 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 amp ampr lt fila y fila = 0 amp ampc ltcol amp ampr x gt; = 0 amp ampr x lt; ampc y gt = 0 amp ampc y lt; == ajedrez[r x][c y]){
cuenta;
if (y gt0){
c;
} else if(y lt; 0){
c-;
}
if(x gt; 0){
r ;
} si(x lt; 0){
r-;
}
}
mientras(a gt; = 0 amp ampa lt fila y fila. ampb gt = 0 amp ampb ltcol amp ampa-x gt; = 0 amp ampa-x lt; fila y fila. ampb-y gt; = 0 amp ampb- y lt; col amp xiangqi[a][b] == xiangqi[a-x][b-y]){
cuenta;
if (y gt0){
B-;
} else if(y lt; 0){
b;
}
if(x gt ; 0){
a-;
} si(x lt; 0){
a;
} p>
}
if(count gt;=5){
String str =
if(isBlack){ p>
Str = "Las blancas ganan";
} De lo contrario {
Str = "Las negras ganan"
}
Nuevo cuadro de diálogo de alerta; caja. constructor (contexto). settitle("Juego terminado"). establecer mensaje (cadena).
setpositivebutton("Reiniciar", nueva interfaz de diálogo. onclick listener () {
@Override
public void onClick(diálogo de interfaz de diálogo, int cual) {
chess = new int[row][col];
invalidate();
}
}).setNegativeButton("Mira el juego de ajedrez", nuevo oyente onclick () {
@override
public void onClick(diálogo de interfaz de diálogo, 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.