「黑白翻转棋java」黑白翻转棋手书

博主:adminadmin 2023-01-05 07:54:05 559

今天给各位分享黑白翻转棋java的知识,其中也会对黑白翻转棋手书进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Javaswing编写的翻转棋程序,下子很混乱,救急

因为不太了解你的思路 所以看代码很费劲 你的问题是 没有处理数组下标越界 还有就是 下子的时候 应该首先判断这里是否已经有子 然后再做下一步判断 我只是简单修改了下数组下标越界的问题 还有 判断这里是否已经有子,是否可以下白子 的问题 目前至少是没有异常了 但是是否可以下黑子 我没有时间仔细看你代码 你自己改下就可以了 至于黑白子 相互吃子的逻辑处理 你在修改完以上问题之后 测试下 看看有没有混乱的问题 有的话 再说…… import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; public class AppleChess extends JFrame implements ActionListener { private JButton[][] button = new JButton[8][8]; public AppleChess() { super("苹果棋"); this.setSize(600, 600); this.setBackground(Color.lightGray); this.setLocation(300, 240); this.setLayout(new GridLayout(8, 8)); this.setDefaultCloseOperation(EXIT_ON_CLOSE); for (int i = 0; i 8; i++) { for (int j = 0; j 8; j++) { button[i][j] = new JButton(); button[i][j].setBackground(Color.yellow); this.add(button[i][j]); button[i][j].addActionListener(this); } } button[3][3].setBackground(Color.black); button[3][4].setBackground(Color.white); button[4][3].setBackground(Color.white); button[4][4].setBackground(Color.black); this.setVisible(true); JMenuBar menubar = new JMenuBar(); //创建菜单条 this.setJMenuBar(menubar); //将菜单条加入到面板中 JMenu menu1 = new JMenu("文件"); //创建菜单 JMenu menu2 = new JMenu("换肤"); menubar.add(menu1); //在菜单条中添加菜单 menubar.add(menu2); JMenuItem item1 = new JMenuItem("退出"); JMenuItem item2 = new JMenuItem("蓝"); JMenuItem item3 = new JMenuItem("红"); JMenuItem item4 = new JMenuItem("黄"); menu1.add(item1); menu2.add(item2); menu2.add(item3); menu2.add(item4); } public void setUserColor(JButton bt) { bt.setBackground(Color.white); } public void setComputerColor(JButton bt) { bt.setBackground(Color.black); } public Color getColor(JButton bt) { return bt.getBackground(); } //find the near two Buttons public int findUpButton(int a, int b, int co) { int color = co; int c2 = -1; int mark = -2; for (int m = a - 1; m = 0; m--) { Color c = getColor(button[m][b]); if (c == Color.yellow) { c2 = 0; } else if (c == Color.white) { c2 = 1; } else { c2 = 2; } if (c2 == 0) { mark = -1; break; } else if (c2 == color) { if (a - m 1) { mark = m; } else { mark = -1; } break; } else { mark = -1; continue; } } return mark; } public int findDownButton(int a, int b, int co) { int color = co; int c2 = -1; int mark = -1; for (int m = a + 1; m 8; m++) { Color c = getColor(button[m][b]); if (c == Color.yellow) { c2 = 0; } else if (c == Color.white) { c2 = 1; } else { c2 = 2; } if (c2 == 0) { mark = -1; break; } else if (c2 == color) { if (m - a 1) { mark = m; break; } else { mark = -1; break; } } else { mark = -1; } } return mark; } public int findLeftButton(int a, int b, int co) { int color = co; int c2 = -1; int mark = -1; for (int m = b - 1; m = 0; m--) { Color c = getColor(button[a][m]); if (c == Color.yellow) { c2 = 0; } else if (c == Color.white) { c2 = 1; } else { c2 = 2; } if (c2 == 0) { mark = -1; break; } else if (c2 == color) { if (b - m 1) { mark = m; } else { mark = -1; } break; } else { mark = -1; } } return mark; } public int findRightButton(int a, int b, int co) { int color = co; int c2 = -1; int mark = -1; for (int m = b + 1; m 8; m++) { Color c = getColor(button[a][m]); if (c == Color.yellow) { c2 = 0; } else if (c == Color.white) { c2 = 1; } else { c2 = 2; } if (c2 == 0) { mark = -1; break; } else if (c2 == color) { if (m - b 1) { mark = m; } else { mark = -1; } break; } else { mark = -1; } } return mark; } public int findLeftUpButton(int a, int b, int co) { int color = co; int c2 = -1; int mark = -1; for (int m = a - 1, n = b - 1; m 0 n 0; m--, n--) { Color c = getColor(button[m][n]); if (c == Color.yellow) { c2 = 0; } else if (c == Color.white) { c2 = 1; } else { c2 = 2; } if (c2 == 0) { mark = -1; break; } else if (c2 == color) { if (a - m 1) { mark = m; } else { mark = -1; } break; } else { mark = -1; } } return mark; }

关于java黑白棋涉及到java中的哪些技术?

制作棋盘需要GUI,也就是

图形用户界面

;判断走棋需要设计算法,要用多线程技术;建立网络连接需要

网络编程

;还需要数据库。差不多就这些。。。

java黑白棋代码,急求

一个小程序 简单的21点

package com.citicbank.other;

import java.awt.Color;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.SwingConstants;

import javax.swing.border.LineBorder;

public class gameTest extends JFrame {

private JLabel label_2;

private int number;

private int sum;

final JLabel label = new JLabel();

final JLabel label_1 = new JLabel();

public static void main(String[] args) {

new gameTest();

}

public gameTest() {

super("21点?!");

getContentPane().setLayout(null);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

final JButton button = new JButton();

button.addActionListener(new ActionListener() {

public void actionPerformed(final ActionEvent arg0) {

onClick();

}

});

button.setText("出牌");

button.setBounds(170, 350, 106, 28);

getContentPane().add(button);

label.setBorder(new LineBorder(Color.black, 1, false));

label.setHorizontalAlignment(SwingConstants.CENTER);

label.setFont(new Font("", Font.BOLD, 26));

label.setText("背面");

label.setBounds(158, 81, 137, 153);

getContentPane().add(label);

label_1.setText("你已经拥有的牌:");

label_1.setBounds(109, 22, 270, 45);

getContentPane().add(label_1);

this.setBounds(200, 300, 501, 528);

this.setVisible(true);

getContentPane().add(getLabel_2());

}

public int randNumber() {

try {

Thread.sleep(10);

} catch (InterruptedException e) {

e.printStackTrace();

}

return (int) (Math.random() * 10 + 1);

}

public void onClick() {

number = this.randNumber();

this.sum += number;

label.setText("" + number);

String strTemp = this.label_1.getText();

strTemp += "" + number + " ";

label_1.setText(strTemp);

String temp = "合计:" + sum;

label_2.setText(temp);

isWin();

}

public void isWin() {

if (sum 21) {

JOptionPane.showMessageDialog(this, "你输了");

clear();

return;

} else if (sum == 21) {

JOptionPane.showMessageDialog(this, "你赢了");

clear();

return;

} else {

int i = JOptionPane.showOptionDialog(this, "是否继续?", "提示",

JOptionPane.OK_CANCEL_OPTION,

JOptionPane.INFORMATION_MESSAGE, null, null, null);

if (i == JOptionPane.OK_OPTION) {

onClick();

} else

return;

}

}

private void clear() {

label_2.setText("合计:");

sum = 0;

number = 0;

label_1.setText("你已经拥有的牌:");

}

/**

* @return

*/

protected JLabel getLabel_2() {

if (label_2 == null) {

label_2 = new JLabel();

label_2.setText("合计:");

label_2.setBounds(313, 35, 66, 18);

}

return label_2;

}

}

关于黑白翻转棋java和黑白翻转棋手书的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。