Java five Chess ne peut pas afficher les pièces lors du jeu d'échecs et ne répond pas lors de la sélection de la défaite

Questions et réponses du rseoc 2021-12-30 13:50:40 阅读数:172

java chess ne peut pas
Le phénomène rencontré par le problème et le contexte dans lequel il s'est produit
Codes liés au problème,Ne collez pas la capture d'écran
import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;import javax.swing.JFrame;import javax.swing.JOptionPane;public class MyFive extends JFrame implements MouseListener{ int x=0; int y=0; int chess[][]=new int[15][15]; boolean isblack=true; boolean canplay =true; String messageString="Les taches noires d'abord."; public MyFive() { this.setTitle("Cinq échecs"); this.setSize(550,500); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocation(500,500); this.setResizable(true); int width =java.awt.Toolkit.getDefaultToolkit().getScreenSize().width; int height =java.awt.Toolkit.getDefaultToolkit().getScreenSize().height; this.setLocation((width-600)/2,(height-500)/2); this.addMouseListener(this); this.setVisible(true); } @Override public void paint(Graphics g) { BufferedImage b=new BufferedImage(500,500, BufferedImage.TYPE_INT_ARGB); Graphics g2=b.createGraphics(); BufferedImage image = null; try { image = ImageIO.read(new File("D:/eclipse/PHOTO/4.jpeg")); } catch (IOException e) { e.printStackTrace(); } g2.setColor(Color.BLACK); g2.setFont(new Font("Arial",0,14)); g2.drawImage(image,3,20,this); g2.drawString("Informations sur le jeu:"+messageString,370, 50); g2.drawString("Heure Noire", 30, 470); g2.drawString("Heure blanche", 250, 470); for (int i = 0; i <15; i++) { g2.drawLine(20, 40+25*i, 420, 40+25*i); g2.drawLine(20+25*i, 40, 20+25*i, 410); } g2.drawRect(430,66,55,20); g2.drawString("Recommencerʼ",432,80); g2.drawRect(430, 90, 55, 20); /* g2.drawString("Repentir Chess", 442, 135); g2.drawRect(430, 120, 55, 20);*/ g2.drawString("Abandonner.", 440, 105); g.drawImage(b, 0, 0,this); g2.fillOval(x, y, 124, 12); for (int i = 0; i < 15; i++) { for (int j = 0; j <15; j++) { if (chess[i][j]==1) { int temx=i*25+20; int temy=j*25+40; g2.fillOval(temx-6, temy-6, 12, 12); } if (chess[i][j]==2) { int temx=i*25+20; int temy=j*25+40; g2.setColor(Color.WHITE); g2.fillOval(temx-4, temy-4, 14, 14); g2.setColor(Color.BLACK); g2.drawOval(temx-4, temy-4, 14, 14); } } } } @Override public void mouseClicked(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub //System.out.println("x"+e.getX()); //System.out.println("y"+e.getY()); x=e.getX(); y=e.getY(); if (x>=20&&x<=370&&y>=40 &&y<=390) { x= (x-20)/25; y= (y-40)/25; if (chess[x][y]==0) { if (isblack==true) { chess[x][y]=1; isblack=false; messageString=" C'est au tour du côté noir "; }else { chess[x][y]=2; isblack=true; messageString=" C'est au tour de white square "; } boolean ace= this.winner(); if (ace==true) { JOptionPane.showConfirmDialog(this, "Fin du jeu,"+(chess[x][y]==1 ? "Côté noir":"White square")+"Gagner"); } } else { JOptionPane.showMessageDialog(this, " Cet endroit a déjà des enfants "); } this.repaint(); } if(e.getX()>=430&&e.getX()<=485&&e.getY()>= 66&& e.getY()<=80) { int result= JOptionPane.showConfirmDialog(this, "Redémarrer ou non"); if (result==0) { for (int i = 0; i < 15; i++) { for (int j = 0; j < 15; j++) { chess[i][j] = 0; //Vide. } messageString=" C'est au tour du côté noir "; isblack=true; this.repaint(); }}} if (e.getX() >= 400 && e.getX() <= 470 && e.getY() >= 270 && e.getY() <= 300) { int result1 = JOptionPane.showConfirmDialog(this, "Si vous acceptez de perdre"); if (result1 == 0) { if (isblack) { JOptionPane.showMessageDialog(this, " Black Chess abandonne. "); } else { JOptionPane.showMessageDialog(this, " White Chess abandonne "); } } } } private boolean winner() { boolean flag =false; int co=1; int color = chess[x][y]; int i=1; while( color==chess[x+i][y] ) { co++; i++; } i=1; while( color==chess[x-i][y] ) { co++; i++; } if (co>=5) { flag=true; } int co1=1; int i2=1; while( color==chess[x][y+i2] ) { co1++; i2++; } i2=1; while( color==chess[x][y-i2] ) { co1++; i2++; } if (co1>=5) { flag=true; } int co2=1; int i3=1; while( color==chess[x+i3][y-i3] ) { co2++; i3++; } i3=1; while( color==chess[x-i3][y+i3] ) { co2++; i3++; } if (co2>=5) { flag=true; } int co3=1; int i4=1; while( color==chess[x+i4][y-i4] ) { co3++; i4++; } i4=1; while( color==chess[x-i4][y+i4] ) { co3++; i4++; } if (co3>=5) { flag=true; } int co4=1; int i5=1; while( color==chess[x+i5][y+i5] ) { co4++; i5++; } i5=1; while( color==chess[x-i5][y-i5] ) { co4++; i5++; } if (co4>=5) { flag=true; } return flag; }}

img

Résultats de l'opération et contenu du rapport d'erreur
Mes idées de solution et les méthodes que j'ai essayées
Le résultat que je voulais
版权声明:本文为[Questions et réponses du rseoc]所创,转载请带上原文链接,感谢。 https://primo.wiki/2021/12/202112231449170906.html