¿Cómo implementar backgammon con un clic del mouse en Java? Queridos héroes, por favor ayúdenme.
importar java.awt.*;
importar java.awt.event.*
importar java.awt.color.*;
clase wuzi {
public static void main(String[] args) {
frame myFrame =new frame("五宝"); }
}
clase frame extends Frame implementa ActionListener{
MenuBar mbar=new MenuBar();
Menu mgame=new Menu ( "Opción");
Menú mhelp=new Menu("Ayuda");
MenuItem mstart=new MenuItem("Inicio"); mclose =new MenuItem("Fin");
MenuItem mabout=new MenuItem("Acerca de");
myCanvas canvas
frame(String t) {
super(t);
lienzo = nuevo myCanvas(this);
mgame.add(mstart); add(mclose);
mhelp.add(mabout);
mgame.addActionListener(this);
mstart.addActionListener(this); p >
mclose.addActionListener(this);
mhelp.addActionListener(this);
mabout.addActionListener(this); ( mgame);
mbar.add(mhelp);
this.setMenuBar(mbar
addWindowListener(new WindowAdapter(){
);ventana vacía públicaClosing(WindowEvent e){
System.exit(0
}
}
);
this.add(canvas);
this.pack();
this.show()
this.setLocation; ( 380, 100);
this.setResizable(false);
}
acción nula pública realizada (Ac
tionEvent e)
{
if(e.getSource()==mstart)
{
repaint(); p> p>
}
else if(e.getSource()==mclose){
this.dispose();
System. exit( 0);
}
if(e.getSource()==mabout){
about frm=new about();
}
pack();
}
}
clase ajedrez{
privado boolean isExist ;
privado boolean isColor;
ajedrez público (boolean isExist){
this.isExist = isExist ;
}
boolean getChessExist() {
return isExist
}
boolean getChessColor() {
return isColor; ;
}
void setChessExist(boolean m){
isExist = m
}
void; setChessColor( boolean m) { //Establece el color de la pieza de ajedrez
isColor = m
}
}
class; myCanvas extiende Canvas implementa MouseListener {
frame myFrame;
//Guardar piezas de ajedrez
ajedrez privado chessMan[][] = nuevo ajedrez[19][19 ];
int mx, my; // Obtener la posición
int x, y
estado booleano = true; myCanvas(frame myFrame) {
this.myFrame = myFrame;
setBackground(Color.cyan
addMouseListener(this); p> for(int i= 0;ilt;19;i)
for(int j=0;jlt;19;j)
ajedrezMan[i][j] = nueva pieza de ajedrez (falso);
}
inicio vacío público () {
> for(int i=0;ilt;19;i)
for(int j=0;jlt;19;j)
chessMan[i][j].setChessExist (false);
}
public void paint(Gráficos g) {//Dibujo de líneas
Tamaño de dimensión = this.getSize(); >
g.drawRect(0, 0, tamaño.ancho-1, tamaño.alto-1
g.draw3DRect(1, 1, tamaño.ancho-3, tamaño.alto-); 3, verdadero);
for(int i=0; ilt; 19; i )
g.drawLine(30, i*24 30, 462, i*24 30) ;
for(int j=0;jlt;19;j)
g.drawLine(j*24 30, 30, j*24 30, 462); >
x=(int)((mx-20)/24);
y=(int)((my-20)/24); //Calcula la posición del movimiento
if(!chessMan[y][x].getChessExist()amp;amp;(mxgt;=18||mygt;=18)){
chessMan[y][ x]. setChessExist(true);
chessMan[y][x].setChessColor(estado);
estado = !estado; p>
for(int i =0;ilt;19;i)
for(int j=0;jlt;19;j){
if(chessMan[ i][ j].getChessExist())
{
if(chessMan[i][j].getChessColor()==true){
g.setColor (Color.black); //El negro predeterminado se mueve primero
}
else{
g.setColor(Color.white ); p>
}
g.fillOval(j*24 21, i*24 21, 18, 18);
// whowin(x, y); p>
}
}
}
/* public void whowin(int x, int y) {
int m1 = 0, m2 = 0, m3 = 0, m4 = 0;
for (int i = 1; i lt; 5; i) {//Juez-------izquierda-------
si (x - i gt; 0 amp; chessMan[x - i][y] == chessMan[x][y]) {
m1
}
}
for (int j = 1; j lt; 5; j) {//Juez-------derecha------- p>
if (x j lt; 20 amp; chessMan[x j][y] == chessMan[x][y]) {
m1
}
}
//Juez ganando o perdiendo------línea shu
for (int i = 1; i lt; 5; i) {/ /Juez-- -----Abajo-----------
if (y i lt; 20 amp; chessMan[x][y i] == chessMan[ x][y]) {
m2;
}
}
for (int i = 1; i lt; 5 ; i ) {//Sentencia -------arriba------------
if (y - i gt; 0 amp; chessMan[x] [y - i] == chessMan[ x][y]) {
m2;
}
}
// Juicio de ganar o perder---- --\line
for (int i = 1; i lt; 5; i) {//Sentencia-------Arriba a la izquierda------ ---- ---
if (x - i gt; 0 amp; y - i gt; 0 amp; chessMan[x - i][y - i] == chessMan [x][y]) {
m3;
}
}
for (int i = 1; i lt; 5; i) {//Sentencia -------abajo a la derecha-------------
if (x i lt; 20 amp; amp; y i lt ; 2
0 amp;hombredeajedrez[x i][y i] == hombredeajedrez[x][y]) {
m3
}
}
p>//Juez ganando o perdiendo------/line
for (int i = 1; i lt; 5; i) {//Juez ------ - dirección Abajo izquierda------------
if (x - i gt; 0 amp; y i lt; 20 amp; chessMan[x - i][y i] = = chessMan[x][y]) {
m4
}
}
for (int i = 1; i lt ; 5; i) {//Sentencia-------Arriba y hacia la derecha-------------
if (y - i gt; 0 amp; amp; >
}
//******************Juicio final sobre ganar o perder******** ********** **
if (m1 gt; 3 || m2 gt; 3 || m3 gt; 3 || m4 gt; 3) {
if (chessMan[x][y ] == ) {//----Porque después de jugar al ajedrez, el color de las piezas de ajedrez cambia al color del oponente, así que ajústalos aquí---
JOptionPane.showMessageDialog(this, "hei--- --win");
isgamealive = 0;
}
if (chessMan[ x][y] == false) {
JOptionPane.showMessageDialog(this, "bai-----win");
isgamealive = 0; p> }
}
}*/
Dimensión pública getPreferredSize() {
return nueva Dimensión(492, 492); //Devuelve el tamaño del gráfico
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e){}
>
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseClicked(MouseEvent e){
mx = e.getX();
mi = e.getY();
repintar()
}
}
clase sobre extiende Frame implementa WindowListener //Establecer sobre
{
about() {
this.setSize(300, 170);
this.setTitle("Acerca del juego de backgammon");
this.addWindowListener(this);
this.setVisible(true);
this.setLocation(400, 200);
this.setResizable(false);
this.setLayout(new FlowLayout()); >
Texto de etiqueta1 =nueva etiqueta();
Texto de etiqueta2 =nueva etiqueta();
Texto de etiqueta3=nueva etiqueta();
texto1 setText("Introducción al juego:");
text1.setFont(new Font("黑体", Font.ITALIC, 25)); ) ;
text1.setVisible(true);
text2.setText("Horizontal, vertical o diagonal, el que ponga 5 primero ganará.
");
text2.setFont(new Font("黑体",Font.PLAIN, 15));
text2.setAlignment(text1.LEFT);
text2.setVisible(true);
text3.setText("Productor: 0957207 Wu Jun");
text3.setFont(new Font("楷体",Font. PLAIN , 15));
text3.setVisible(true);
this.add(text1, "Norte"); "Oeste");
this.add(text3, "Sur");
this.show(true); p> ventana vacía pública Activada(WindowEvent e){}
ventana vacía públicaCerrada(WindowEvent e){
}
ventana vacía públicaCerrando(WindowEvent e){
this.dispose();
}
ventana vacía públicaDesactivada(WindowEvent e) {}
ventana vacía públicaDeiconificada(WindowEvent e) {}
ventana vacía públicaIconificada(WindowEvent e) {}
ventana vacía pública abierta(WindowEvent e) {}
}