Red de conocimiento informático - Material del sitio web - Código fuente de juego móvil retro

Código fuente de juego móvil retro

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) / 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;

}

}

if(count gt;=5){

String str =

if(isBlack){

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.