java實現(xiàn)雙人五子棋游戲
本文實例為大家分享了java實現(xiàn)雙人五子棋游戲的具體代碼,供大家參考,具體內容如下
通過 上下左右 控制棋盤走動 空格落子 (深度優(yōu)先搜索)
package day_1;? ? import java.awt.*; import javax.swing.*; ? import java.awt.event.*; ? public class CircleRun extends JFrame { ?? ?/** ?? ? *? ?? ? */ ?? ?MyPanel mp = null; ? ?? ?public static void main(String[] args) { ?? ??? ?CircleRun cr = new CircleRun(); ?? ?} ? ?? ?public CircleRun() { ? ?? ??? ?mp = new MyPanel(); ?? ??? ?this.add(mp); ?? ??? ?this.addKeyListener(mp); ?? ??? ?this.setTitle("雙人五子棋正式版3.0"); ?? ??? ?this.setSize(518, 538);// 設置窗體大小 ?? ??? ?this.setLocation(340, 50);// 設置出現(xiàn)的位置 ?? ??? ?this.setVisible(true);// 設置為可見 ?? ??? ?this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ?? ??? ?JOptionPane.showMessageDialog(this, "雙人五子棋游戲說明:通過←↑→↓控制旗子走向,空格下子先滿五個子勝利", "游戲說明", JOptionPane.WARNING_MESSAGE); ?? ?}// 游戲說明 } ? class Text2Frame {// 設置一個交互框 ?? ?JTextField jt1 = new JTextField(); // new一個文本框 ?? ?JTextArea jt2 = new JTextArea(); // new一個文本區(qū) ? ?? ?JTextArea jt4 = new JTextArea(); // new一個文本區(qū) ? ?? ?Text2Frame() { ? ?? ??? ?JScrollPane jsp = new JScrollPane(jt2); // new一個滾條 ?? ??? ?String title = "正在思考。。。。"; ?? ??? ?JFrame jf = new JFrame(title); ?? ??? ?Container container = jf.getContentPane(); ?? ??? ?// container.setBackground(Color.yellow); //容器的背景色 ?? ??? ?jf.setVisible(true); // 窗體可見 ?? ??? ?jf.setLocation(150, 50); ?? ??? ?jf.setSize(300, 150); // 窗體大小 ?? ??? ?jf.setLayout(new BorderLayout()); // 邊界布局 ?? ??? ?jf.add(BorderLayout.NORTH, jt1); // 文本框邊界頂部放置 ?? ??? ?jt1.setBackground(Color.yellow); ?? ??? ?jf.add(BorderLayout.CENTER, jt2); // 文本框邊界中間放置 ?? ??? ?jf.add(BorderLayout.EAST, jt4); // 文本框邊界中間放置 ?? ??? ?jt2.setBackground(Color.red); ? ?? ??? ?jt2.setFont(new Font("宋體", Font.PLAIN, 30)); ? ?? ?} ? ?? ?void add(String a) { ?? ??? ?jt2.setText(a); ? ?? ?} ? }; ? class Text3Frame { ?? ?JTextField jt1 = new JTextField(); // new一個文本框 ?? ?JTextArea jt2 = new JTextArea(); // new一個文本區(qū) ? ?? ?JTextArea jt4 = new JTextArea(); // new一個文本區(qū) ? ?? ?Text3Frame() { ? ?? ??? ?JScrollPane jsp = new JScrollPane(jt2); // new一個滾條 ?? ??? ?String title = "當前坐標"; ?? ??? ?JFrame jf = new JFrame(title); ?? ??? ?Container container = jf.getContentPane(); ?? ??? ?// container.setBackground(Color.yellow); //容器的背景色 ?? ??? ?jf.setVisible(true); // 窗體可見 ?? ??? ?jf.setLocation(140, 180); ?? ??? ?jf.setSize(300, 200); // 窗體大小 ?? ??? ?jf.setLayout(new BorderLayout()); // 邊界布局 ?? ??? ?jf.add(BorderLayout.NORTH, jt1); // 文本框邊界頂部放置 ?? ??? ?jt1.setBackground(Color.yellow); ?? ??? ?jf.add(BorderLayout.CENTER, jt2); // 文本框邊界中間放置 ?? ??? ?jf.add(BorderLayout.EAST, jt4); // 文本框邊界中間放置 ?? ??? ?jt2.setBackground(Color.green); ? ?? ??? ?jt2.setFont(new Font("宋體", Font.PLAIN, 30)); ? ?? ?} ? ?? ?void add(String a) { ?? ??? ?jt2.setText(a); ? ?? ?} ? ?? ?String shu(int a, int b) { ?? ??? ?return "當前坐標(" + a + "," + b + ")"; ?? ?} ? }; ? // 定義自己的面板 class MyPanel extends JPanel implements KeyListener { ?? ?/** ?? ? *? ?? ? */ ?? ?private static final long serialVersionUID = 4154597541232213984L; ?? ?Text2Frame txw = new Text2Frame(); ?? ?Text3Frame txw3 = new Text3Frame(); ?? ?static JFrame sc = new JFrame(); ?? ?static int jishu = 1; ? ?? ?static int summm = 1; ?? ?static int summm2 = 1; ?? ?static int arr[][] = new int[11][12]; ? ?? ?int x = 5; ?? ?int y = 5; ?? ?int sum = 0; ?? ?int sum2 = 0; ?? ?Node n1 = new Node(x, y); ?? ?seqlist kai = new seqlist(n1); ?? ?seqlist seq = new seqlist(null); ?? ?seqlist seq2 = new seqlist(null); ? ?? ?static void soushang(int a, int b) { ? ?? ??? ?if (a - 1 < 1) { ? ?? ??? ??? ?return; ? ?? ??? ?} ?? ??? ?if (arr[a - 1][b] == 1 && a - 1 > 0) { ? ?? ??? ??? ?summm++; ?? ??? ??? ?if (summm == 5) { ?? ??? ??? ??? ?for (int i = 0; i < 11; i++) { ?? ??? ??? ??? ??? ?for (int k = 0; k < 12; k++) { ?? ??? ??? ??? ??? ??? ?arr[i][k] = 0; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ?} ?? ??? ??? ??? ?System.out.println("勝利"); ?? ??? ??? ??? ?JOptionPane.showMessageDialog(sc, "紅色方勝利,點擊確定重新開始", "結果", JOptionPane.WARNING_MESSAGE); ? ?? ??? ??? ?} ? ?? ??? ??? ?soushang(a - 1, b); ? ?? ??? ?} ? ?? ?} ? ?? ?static void souxia(int a, int b) { ? ?? ??? ?if (a + 1 > 10) { ? ?? ??? ??? ?return; ? ?? ??? ?} ?? ??? ?if (arr[a + 1][b] == 1 && a + 1 <= 10) { ? ?? ??? ??? ?summm++; ?? ??? ??? ?if (summm == 5) { ?? ??? ??? ??? ?for (int i = 0; i < 11; i++) { ?? ??? ??? ??? ??? ?for (int k = 0; k < 12; k++) { ?? ??? ??? ??? ??? ??? ?arr[i][k] = 0; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ?} ?? ??? ??? ??? ?System.out.println("勝利"); ?? ??? ??? ??? ?JOptionPane.showMessageDialog(sc, "紅色方勝利,點擊確定重新開始", "結果", JOptionPane.WARNING_MESSAGE); ?? ??? ??? ?} ? ?? ??? ??? ?souxia(a + 1, b); ? ?? ??? ?} ? ?? ?} ? ?? ?static void souzuo(int a, int b) { ? ?? ??? ?if (b - 1 < 1) { ? ?? ??? ??? ?return; ? ?? ??? ?} ?? ??? ?if (arr[a][b - 1] == 1 && b - 1 >= 1) { ? ?? ??? ??? ?summm++; ?? ??? ??? ?if (summm == 5) { ?? ??? ??? ??? ?for (int i = 0; i < 11; i++) { ?? ??? ??? ??? ??? ?for (int k = 0; k < 12; k++) { ?? ??? ??? ??? ??? ??? ?arr[i][k] = 0; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ?} ?? ??? ??? ??? ?System.out.println("勝利"); ?? ??? ??? ??? ?JOptionPane.showMessageDialog(sc, "紅色方勝利,點擊確定重新開始", "結果", JOptionPane.WARNING_MESSAGE); ?? ??? ??? ?} ? ?? ??? ??? ?souzuo(a, b - 1); ? ?? ??? ?} ? ?? ?} ? ?? ?static void souyou(int a, int b) { ? ?? ??? ?if (b + 1 > 10) { ? ?? ??? ??? ?return; ? ?? ??? ?} ?? ??? ?if (arr[a][b + 1] == 1 && b + 1 <= 10) { ? ?? ??? ??? ?summm++; ?? ??? ??? ?if (summm == 5) { ?? ??? ??? ??? ?for (int i = 0; i < 11; i++) { ?? ??? ??? ??? ??? ?for (int k = 0; k < 12; k++) { ?? ??? ??? ??? ??? ??? ?arr[i][k] = 0; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ?} ?? ??? ??? ??? ?System.out.println("勝利"); ?? ??? ??? ??? ?JOptionPane.showMessageDialog(sc, "紅色方勝利,點擊確定重新開始", "結果", JOptionPane.WARNING_MESSAGE); ?? ??? ??? ?} ? ?? ??? ??? ?souyou(a, b + 1); ? ?? ??? ?} ?? ?} ? ?? ?static void soushangzuo(int a, int b) { ? ?? ??? ?if (a - 1 < 1 || b - 1 < 1) { ? ?? ??? ??? ?return; ? ?? ??? ?} ?? ??? ?if (arr[a - 1][b - 1] == 1 && (a - 1 > 0) && (b - 1) > 0) { ? ?? ??? ??? ?summm++; ? ?? ??? ??? ?if (summm == 5) { ?? ??? ??? ??? ?for (int i = 0; i < 11; i++) { ?? ??? ??? ??? ??? ?for (int k = 0; k < 12; k++) { ?? ??? ??? ??? ??? ??? ?arr[i][k] = 0; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ?} ?? ??? ??? ??? ?System.out.println("勝利"); ?? ??? ??? ??? ?JOptionPane.showMessageDialog(sc, "紅色方勝利,點擊確定重新開始", "結果", JOptionPane.WARNING_MESSAGE); ?? ??? ??? ?} ? ?? ??? ??? ?soushangzuo(a - 1, b - 1); ?? ??? ?} ? ?? ?} ? ?? ?static void souxiazuo(int a, int b) { ? ?? ??? ?if (a + 1 > 10 || b - 1 < 1) { ? ?? ??? ??? ?return; ? ?? ??? ?} ?? ??? ?if (arr[a + 1][b - 1] == 1 && (a + 1 <= 10) && (b - 1) >= 1) { ? ?? ??? ??? ?summm++; ?? ??? ??? ?if (summm == 5) { ?? ??? ??? ??? ?for (int i = 0; i < 11; i++) { ?? ??? ??? ??? ??? ?for (int k = 0; k < 12; k++) { ?? ??? ??? ??? ??? ??? ?arr[i][k] = 0; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ?} ?? ??? ??? ??? ?System.out.println("勝利"); ?? ??? ??? ??? ?JOptionPane.showMessageDialog(sc, "紅色方勝利,點擊確定重新開始", "結果", JOptionPane.WARNING_MESSAGE); ?? ??? ??? ?} ? ?? ??? ??? ?souxiazuo(a + 1, b - 1); ?? ??? ?} ? ?? ?} ? ?? ?static void souyoushang(int a, int b) { ? ?? ??? ?if (a - 1 < 1 && b + 1 > 10) { ? ?? ??? ??? ?return; ? ?? ??? ?} ?? ??? ?if (arr[a - 1][b + 1] == 1 && a - 1 >= 1 && b + 1 <= 10) { ? ?? ??? ??? ?summm++; ?? ??? ??? ?if (summm == 5) { ?? ??? ??? ??? ?for (int i = 0; i < 11; i++) { ?? ??? ??? ??? ??? ?for (int k = 0; k < 12; k++) { ?? ??? ??? ??? ??? ??? ?arr[i][k] = 0; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ?} ?? ??? ??? ??? ?System.out.println("勝利"); ?? ??? ??? ??? ?JOptionPane.showMessageDialog(sc, "紅色方勝利,點擊確定重新開始", "結果", JOptionPane.WARNING_MESSAGE); ?? ??? ??? ?} ? ?? ??? ??? ?souyoushang(a - 1, b + 1); ?? ??? ?} ? ?? ?} ? ?? ?static void souyouxia(int a, int b) { ? ?? ??? ?if (b + 1 > 10 && a + 1 > 10) { ? ?? ??? ??? ?return; ? ?? ??? ?} ?? ??? ?if (arr[a + 1][b + 1] == 1 && b + 1 <= 10 && a + 1 <= 10) { ? ?? ??? ??? ?summm++; ?? ??? ??? ?if (summm == 5) { ?? ??? ??? ??? ?for (int i = 0; i < 11; i++) { ?? ??? ??? ??? ??? ?for (int k = 0; k < 12; k++) { ?? ??? ??? ??? ??? ??? ?arr[i][k] = 0; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ?} ?? ??? ??? ??? ?System.out.println("勝利"); ?? ??? ??? ??? ?JOptionPane.showMessageDialog(sc, "紅色方勝利,點擊確定重新開始", "結果", JOptionPane.WARNING_MESSAGE); ?? ??? ??? ?} ? ?? ??? ??? ?souyouxia(a + 1, b + 1); ?? ??? ?} ?? ?} ? ?? ?static void soushang2(int a, int b) { ? ?? ??? ?if (a - 1 < 1) { ? ?? ??? ??? ?return; ? ?? ??? ?} ?? ??? ?if (arr[a - 1][b] == 2 && a - 1 > 0) { ? ?? ??? ??? ?summm2++; ?? ??? ??? ?if (summm2 == 5) { ?? ??? ??? ??? ?for (int i = 0; i < 11; i++) { ?? ??? ??? ??? ??? ?for (int k = 0; k < 12; k++) { ?? ??? ??? ??? ??? ??? ?arr[i][k] = 0; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ?} ?? ??? ??? ??? ?System.out.println("勝利"); ?? ??? ??? ??? ?JOptionPane.showMessageDialog(sc, "綠色方勝利,點擊確定重新開始", "結果", JOptionPane.WARNING_MESSAGE); ?? ??? ??? ?} ? ?? ??? ??? ?soushang2(a - 1, b); ? ?? ??? ?} ? ?? ?} ? ?? ?static void souxia2(int a, int b) { ? ?? ??? ?if (a + 1 > 10) { ? ?? ??? ??? ?return; ? ?? ??? ?} ?? ??? ?if (arr[a + 1][b] == 2 && a + 1 <= 10) { ? ?? ??? ??? ?summm2++; ?? ??? ??? ?if (summm2 == 5) { ?? ??? ??? ??? ?for (int i = 0; i < 11; i++) { ?? ??? ??? ??? ??? ?for (int k = 0; k < 12; k++) { ?? ??? ??? ??? ??? ??? ?arr[i][k] = 0; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ?} ?? ??? ??? ??? ?System.out.println("勝利"); ?? ??? ??? ??? ?JOptionPane.showMessageDialog(sc, "綠色方勝利,點擊確定重新開始", "結果", JOptionPane.WARNING_MESSAGE); ?? ??? ??? ?} ? ?? ??? ??? ?souxia2(a + 1, b); ? ?? ??? ?} ? ?? ?} ? ?? ?static void souzuo2(int a, int b) { ? ?? ??? ?if (b - 1 > 10) { ? ?? ??? ??? ?return; ? ?? ??? ?} ?? ??? ?if (arr[a][b - 1] == 2 && b - 1 >= 1) { ? ?? ??? ??? ?summm2++; ?? ??? ??? ?if (summm2 == 5) { ?? ??? ??? ??? ?for (int i = 0; i < 11; i++) { ?? ??? ??? ??? ??? ?for (int k = 0; k < 12; k++) { ?? ??? ??? ??? ??? ??? ?arr[i][k] = 0; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ?} ?? ??? ??? ??? ?System.out.println("勝利"); ?? ??? ??? ??? ?JOptionPane.showMessageDialog(sc, "綠色方勝利,點擊確定重新開始", "結果", JOptionPane.WARNING_MESSAGE); ?? ??? ??? ?} ? ?? ??? ??? ?souzuo2(a, b - 1); ? ?? ??? ?} ? ?? ?} ? ?? ?static void souyou2(int a, int b) { ? ?? ??? ?if (b + 1 > 10) { ? ?? ??? ??? ?return; ? ?? ??? ?} ?? ??? ?if (arr[a][b + 1] == 2 && b + 1 <= 10) { ? ?? ??? ??? ?summm2++; ?? ??? ??? ?if (summm2 == 5) { ?? ??? ??? ??? ?for (int i = 0; i < 11; i++) { ?? ??? ??? ??? ??? ?for (int k = 0; k < 12; k++) { ?? ??? ??? ??? ??? ??? ?arr[i][k] = 0; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ?} ?? ??? ??? ??? ?System.out.println("勝利"); ?? ??? ??? ??? ?JOptionPane.showMessageDialog(sc, "綠色方勝利,點擊確定重新開始", "結果", JOptionPane.WARNING_MESSAGE); ?? ??? ??? ?} ? ?? ??? ??? ?souyou2(a, b + 1); ? ?? ??? ?} ? ?? ?} ? ?? ?static void soushangzuo2(int a, int b) { ? ?? ??? ?if (a - 1 < 1 || b - 1 < 1) { ? ?? ??? ??? ?return; ? ?? ??? ?} ?? ??? ?if (arr[a - 1][b - 1] == 2 && (a - 1 >= 1) && (b - 1) >= 1) { ? ?? ??? ??? ?summm2++; ? ?? ??? ??? ?if (summm2 == 5) { ?? ??? ??? ??? ?for (int i = 0; i < 11; i++) { ?? ??? ??? ??? ??? ?for (int k = 0; k < 12; k++) { ?? ??? ??? ??? ??? ??? ?arr[i][k] = 0; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ?} ?? ??? ??? ??? ?System.out.println("勝利"); ?? ??? ??? ??? ?JOptionPane.showMessageDialog(sc, "綠色方勝利,點擊確定重新開始", "結果", JOptionPane.WARNING_MESSAGE); ?? ??? ??? ?} ? ?? ??? ??? ?soushangzuo2(a - 1, b - 1); ?? ??? ?} ? ?? ?} ? ?? ?static void souxiazuo2(int a, int b) { ? ?? ??? ?if (a + 1 > 10 || b - 1 < 1) { ? ?? ??? ??? ?return; ? ?? ??? ?} ?? ??? ?if (arr[a + 1][b - 1] == 2 && (a + 1 <= 10) && (b - 1) >= 1) { ? ?? ??? ??? ?summm2++; ?? ??? ??? ?if (summm2 == 5) { ?? ??? ??? ??? ?for (int i = 0; i < 11; i++) { ?? ??? ??? ??? ??? ?for (int k = 0; k < 12; k++) { ?? ??? ??? ??? ??? ??? ?arr[i][k] = 0; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ?} ?? ??? ??? ??? ?System.out.println("勝利"); ?? ??? ??? ??? ?JOptionPane.showMessageDialog(sc, "綠色方勝利,點擊確定重新開始", "結果", JOptionPane.WARNING_MESSAGE); ?? ??? ??? ?} ? ?? ??? ??? ?souxiazuo2(a + 1, b - 1); ?? ??? ?} ? ?? ?} ? ?? ?static void souyoushang2(int a, int b) { ? ?? ??? ?if (a - 1 < 1 && b + 1 > 10) { ? ?? ??? ??? ?return; ? ?? ??? ?} ?? ??? ?if (arr[a - 1][b + 1] == 2 && a - 1 >= 1 && b + 1 <= 10) { ? ?? ??? ??? ?summm2++; ?? ??? ??? ?if (summm2 == 5) { ?? ??? ??? ??? ?for (int i = 0; i < 11; i++) { ?? ??? ??? ??? ??? ?for (int k = 0; k < 12; k++) { ?? ??? ??? ??? ??? ??? ?arr[i][k] = 0; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ?} ?? ??? ??? ??? ?System.out.println("勝利"); ?? ??? ??? ??? ?JOptionPane.showMessageDialog(sc, "綠色方勝利,點擊確定重新開始", "結果", JOptionPane.WARNING_MESSAGE); ?? ??? ??? ?} ? ?? ??? ??? ?souyoushang2(a - 1, b + 1); ?? ??? ?} ? ?? ?} ? ?? ?static void souyouxia2(int a, int b) { ? ?? ??? ?if (b + 1 > 10 && a + 1 > 10) { ? ?? ??? ??? ?return; ? ?? ??? ?} ?? ??? ?if (arr[a + 1][b + 1] == 2 && b + 1 <= 10 && a + 1 <= 10) { ? ?? ??? ??? ?summm2++; ?? ??? ??? ?if (summm2 == 5) { ?? ??? ??? ??? ?for (int i = 0; i < 11; i++) { ?? ??? ??? ??? ??? ?for (int k = 0; k < 12; k++) { ?? ??? ??? ??? ??? ??? ?arr[i][k] = 0; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ?} ?? ??? ??? ??? ?System.out.println("勝利"); ?? ??? ??? ??? ?JOptionPane.showMessageDialog(sc, "綠色方勝利,點擊確定重新開始", "結果", JOptionPane.WARNING_MESSAGE); ?? ??? ??? ?} ? ?? ??? ??? ?souyouxia2(a + 1, b + 1); ?? ??? ?} ?? ?} ? ?? ?public void paint(Graphics g) { ?? ??? ?if (jishu % 2 == 1) { ?? ??? ??? ?String aaa = "紅方開始下棋"; ?? ??? ??? ?txw.add(aaa); ? ?? ??? ?} else { ?? ??? ??? ?String aaa = "綠方開始下棋"; ?? ??? ??? ?txw.add(aaa); ? ?? ??? ?} ? ?? ??? ?txw3.add(txw3.shu(x, y)); ?? ??? ?super.paint(g); ?? ??? ?for (int i = 1; i <= 10; i++) { ?? ??? ??? ?for (int k = 1; k <= 10; k++) { ?? ??? ??? ??? ?g.fillOval((i - 1) * 50, (k - 1) * 50, 50, 50); ?? ??? ??? ?} ?? ??? ?} ?? ??? ?Color c = g.getColor(); ? ?? ??? ?g.fillOval(x * 50, y * 50, 50, 50); ?? ??? ?Node now = seq.head; ?? ??? ?Node tou = kai.head; ?? ??? ?Color u = g.getColor(); ?? ??? ?if (jishu % 2 == 1) { ?? ??? ??? ?g.setColor(Color.red); ?? ??? ??? ?g.fillOval((tou.a - 1) * 50, (tou.b - 1) * 50, 50, 50); ?? ??? ??? ?g.setColor(u); ?? ??? ?} else { ?? ??? ??? ?g.setColor(Color.green); ?? ??? ??? ?g.fillOval((tou.a - 1) * 50, (tou.b - 1) * 50, 50, 50); ?? ??? ??? ?g.setColor(u); ? ?? ??? ?} ? ?? ??? ?while (now != null) { ?? ??? ??? ?System.out.print("(" + now.a + " " + now.b + ")"); ?? ??? ??? ?Color r = g.getColor(); ?? ??? ??? ?g.setColor(Color.red); ?? ??? ??? ?g.fillOval((now.a - 1) * 50, (now.b - 1) * 50, 50, 50); ?? ??? ??? ?g.setColor(r); ?? ??? ??? ?now = now.next; ? ?? ??? ?} ?? ??? ?Node now2 = seq2.head; ?? ??? ?while (now2 != null) { ?? ??? ??? ?System.out.print("(" + now2.a + " " + now2.b + ")"); ?? ??? ??? ?Color r = g.getColor(); ?? ??? ??? ?g.setColor(Color.green); ?? ??? ??? ?g.fillOval((now2.a - 1) * 50, (now2.b - 1) * 50, 50, 50); ?? ??? ??? ?g.setColor(r); ?? ??? ??? ?now2 = now2.next; ? ?? ??? ?} ?? ??? ?System.out.println(); ?? ?} ? ?? ?// 鍵的一個值被輸出 ?? ?@Override ?? ?public void keyTyped(KeyEvent e) { ? ?? ?} ? ?? ?// 鍵被按下 ?? ?@Override ? ?? ?public void keyPressed(KeyEvent e) { ? ?? ??? ?System.out.print("線性表為"); ? ?? ??? ?System.out.println(); ?? ??? ?// System.out.println("鍵被按下"+e.getKeyCode()); ?? ??? ?if (e.getKeyCode() == KeyEvent.VK_DOWN) { ? ?? ??? ??? ?// System.out.println("12"); ? ?? ??? ??? ?y = y + 1; ?? ??? ??? ?if (y >= 11) { ?? ??? ??? ??? ?y = y % 11 + 1; ?? ??? ??? ?} ? ?? ??? ?} else if (e.getKeyCode() == KeyEvent.VK_UP) { ?? ??? ??? ?y = y - 1; ?? ??? ??? ?if (y < 1) { ?? ??? ??? ??? ?y = y + 10; ?? ??? ??? ?} ? ?? ??? ?} else if (e.getKeyCode() == KeyEvent.VK_LEFT) { ?? ??? ??? ?x = x - 1; ?? ??? ??? ?if (x < 1) { ?? ??? ??? ??? ?x = x + 10; ?? ??? ??? ?} ?? ??? ?} else if (e.getKeyCode() == KeyEvent.VK_RIGHT) { ? ?? ??? ??? ?x = x + 1; ?? ??? ??? ?if (x >= 11) { ?? ??? ??? ??? ?x = x % 11 + 1; ?? ??? ??? ?} ? ?? ??? ?} else if (e.getKeyCode() == KeyEvent.VK_SPACE) { ?? ??? ??? ?int luo1 = x; ?? ??? ??? ?int luo2 = y; ? ?? ??? ??? ?Node n2 = new Node(luo1, luo2); ?? ??? ??? ?if (jishu % 2 != 0) { ?? ??? ??? ??? ?Node now3 = seq2.head; ?? ??? ??? ??? ?Node now2 = seq.head; ?? ??? ??? ??? ?int aaa = 1; ? ?? ??? ??? ??? ?if (arr[x][y] == 1 || arr[x][y] == 2) { ?? ??? ??? ??? ??? ?JOptionPane.showMessageDialog(sc, "此處已有棋子,請下別處", "錯誤", JOptionPane.WARNING_MESSAGE); ?? ??? ??? ??? ??? ?aaa = 2; ? ?? ??? ??? ??? ?} ? ?? ??? ??? ??? ?if (aaa == 1) { ? ?? ??? ??? ??? ??? ?jishu++; ?? ??? ??? ??? ??? ?seq.add(n2); ?? ??? ??? ??? ??? ?arr[luo1][luo2] = 1; ?? ??? ??? ??? ??? ?seq.tostring(); ?? ??? ??? ??? ??? ?System.out.println("摁下空格"); ?? ??? ??? ??? ??? ?soushang(x, y); ? ?? ??? ??? ??? ??? ?System.out.println("sum1" + " ?" + summm); ?? ??? ??? ??? ??? ?if (summm == 5) { ?? ??? ??? ??? ??? ??? ?seq.head = null; ?? ??? ??? ??? ??? ??? ?seq2.head = null; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ??? ?souxia(x, y); ?? ??? ??? ??? ??? ?System.out.println("sum2" + " ?" + summm); ?? ??? ??? ??? ??? ?if (summm == 5) { ?? ??? ??? ??? ??? ??? ?seq.head = null; ?? ??? ??? ??? ??? ??? ?seq2.head = null; ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?summm = 1; ?? ??? ??? ??? ??? ?souzuo(x, y); ?? ??? ??? ??? ??? ?System.out.println("sum3" + " ?" + summm); ?? ??? ??? ??? ??? ?if (summm == 5) { ?? ??? ??? ??? ??? ??? ?seq.head = null; ?? ??? ??? ??? ??? ??? ?seq2.head = null; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ??? ?souyou(x, y); ?? ??? ??? ??? ??? ?System.out.println("sum4" + " ?" + summm); ?? ??? ??? ??? ??? ?if (summm == 5) { ?? ??? ??? ??? ??? ??? ?seq.head = null; ?? ??? ??? ??? ??? ??? ?seq2.head = null; ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?summm = 1; ? ?? ??? ??? ??? ??? ?soushangzuo(x, y); ?? ??? ??? ??? ??? ?System.out.println("sum5" + " ?" + summm); ?? ??? ??? ??? ??? ?if (summm == 5) { ?? ??? ??? ??? ??? ??? ?seq.head = null; ?? ??? ??? ??? ??? ??? ?seq2.head = null; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ??? ?souyouxia(x, y); ?? ??? ??? ??? ??? ?System.out.println("sum6" + " ?" + summm); ?? ??? ??? ??? ??? ?if (summm == 5) { ?? ??? ??? ??? ??? ??? ?seq.head = null; ?? ??? ??? ??? ??? ??? ?seq2.head = null; ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?summm = 1; ?? ??? ??? ??? ??? ?souyoushang(x, y); ?? ??? ??? ??? ??? ?System.out.println("sum7" + " ?" + summm); ?? ??? ??? ??? ??? ?if (summm == 5) { ?? ??? ??? ??? ??? ??? ?seq.head = null; ?? ??? ??? ??? ??? ??? ?seq2.head = null; ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?souxiazuo(x, y); ?? ??? ??? ??? ??? ?if (summm == 5) { ?? ??? ??? ??? ??? ??? ?seq.head = null; ?? ??? ??? ??? ??? ??? ?seq2.head = null; ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?summm = 1; ?? ??? ??? ??? ?} ? ?? ??? ??? ?} else { ?? ??? ??? ??? ?int aaa = 1; ? ?? ??? ??? ??? ?if (arr[x][y] == 1 || arr[x][y] == 2) { ?? ??? ??? ??? ??? ?JOptionPane.showMessageDialog(sc, "此處已有棋子,請下別處", "錯誤", JOptionPane.WARNING_MESSAGE); ?? ??? ??? ??? ??? ?aaa = 2; ? ?? ??? ??? ??? ?} ?? ??? ??? ??? ?if (aaa == 1) { ? ?? ??? ??? ??? ??? ?jishu++; ?? ??? ??? ??? ??? ?seq2.add(n2); ?? ??? ??? ??? ??? ?arr[luo1][luo2] = 2; ?? ??? ??? ??? ??? ?seq2.tostring(); ?? ??? ??? ??? ??? ?System.out.println("摁下空格"); ?? ??? ??? ??? ??? ?soushang2(x, y); ? ?? ??? ??? ??? ??? ?System.out.println("sum1" + " ?" + summm); ?? ??? ??? ??? ??? ?if (summm2 == 5) { ?? ??? ??? ??? ??? ??? ?seq.head = null; ?? ??? ??? ??? ??? ??? ?seq2.head = null; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ??? ?souxia2(x, y); ?? ??? ??? ??? ??? ?System.out.println("sum2" + " ?" + summm); ?? ??? ??? ??? ??? ?if (summm2 == 5) { ?? ??? ??? ??? ??? ??? ?seq.head = null; ?? ??? ??? ??? ??? ??? ?seq2.head = null; ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?summm2 = 1; ?? ??? ??? ??? ??? ?souzuo2(x, y); ?? ??? ??? ??? ??? ?System.out.println("sum3" + " ?" + summm); ?? ??? ??? ??? ??? ?if (summm2 == 5) { ?? ??? ??? ??? ??? ??? ?seq.head = null; ?? ??? ??? ??? ??? ??? ?seq2.head = null; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ??? ?souyou2(x, y); ?? ??? ??? ??? ??? ?System.out.println("sum4" + " ?" + summm); ?? ??? ??? ??? ??? ?if (summm2 == 5) { ?? ??? ??? ??? ??? ??? ?seq.head = null; ?? ??? ??? ??? ??? ??? ?seq2.head = null; ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?summm2 = 1; ? ?? ??? ??? ??? ??? ?soushangzuo2(x, y); ?? ??? ??? ??? ??? ?System.out.println("sum5" + " ?" + summm); ?? ??? ??? ??? ??? ?if (summm2 == 5) { ?? ??? ??? ??? ??? ??? ?seq.head = null; ?? ??? ??? ??? ??? ??? ?seq2.head = null; ?? ??? ??? ??? ??? ?} ? ?? ??? ??? ??? ??? ?souyouxia2(x, y); ?? ??? ??? ??? ??? ?System.out.println("sum6" + " ?" + summm); ?? ??? ??? ??? ??? ?if (summm2 == 5) { ?? ??? ??? ??? ??? ??? ?seq.head = null; ?? ??? ??? ??? ??? ??? ?seq2.head = null; ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?summm2 = 1; ?? ??? ??? ??? ??? ?souyoushang2(x, y); ?? ??? ??? ??? ??? ?System.out.println("sum7" + " ?" + summm); ?? ??? ??? ??? ??? ?if (summm2 == 5) { ?? ??? ??? ??? ??? ??? ?seq.head = null; ?? ??? ??? ??? ??? ??? ?seq2.head = null; ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?souxiazuo2(x, y); ?? ??? ??? ??? ??? ?if (summm2 == 5) { ?? ??? ??? ??? ??? ??? ?seq.head = null; ?? ??? ??? ??? ??? ??? ?seq2.head = null; ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?summm2 = 1; ? ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ??? ?for (int i = 1; i <= 10; i++) { ?? ??? ??? ??? ?for (int k = 1; k <= 10; k++) { ?? ??? ??? ??? ??? ?System.out.print(arr[i][k] + " "); ? ?? ??? ??? ??? ?} ?? ??? ??? ??? ?System.out.println(); ? ?? ??? ??? ?} ? ?? ??? ?} ?? ??? ?kai.huan(x, y); ? ?? ??? ?// 調用repaint()函數(shù),來重繪界面 ?? ??? ?this.repaint(); ?? ?} ? ?? ?class Node {// 設置 節(jié)點類 ?? ??? ?int a; ?? ??? ?int b; ?? ??? ?Node next; ? ?? ??? ?Node(int a, int b) { ?? ??? ??? ?this.a = a; ?? ??? ??? ?this.b = b; ?? ??? ??? ?this.next = null; ?? ??? ?} ? ?? ?} ? ?? ?class seqlist {// 設置鏈表類 ?? ??? ?Node head; ?? ??? ?Node tail; ? ?? ??? ?int n = 0; ? ?? ??? ?public seqlist(Node head) { ?? ??? ??? ?// TODO Auto-generated constructor stub ?? ??? ??? ?this.head = head; ?? ??? ??? ?this.tail = head; ?? ??? ??? ?n++; ?? ??? ?} ? ?? ??? ?void add(Node p) { ?? ??? ??? ?Node now = head; ?? ??? ??? ?p.next = now; ?? ??? ??? ?head = p; ?? ??? ??? ?n++; ? ?? ??? ?} ? ?? ??? ?void tostring() { ?? ??? ??? ?Node now = head; ?? ??? ??? ?System.out.print("線性表為"); ?? ??? ??? ?while (now != null) { ?? ??? ??? ??? ?System.out.print(now.a + ","); ?? ??? ??? ??? ?now = now.next; ?? ??? ??? ?} ?? ??? ??? ?System.out.println(); ? ?? ??? ?} ? ?? ??? ?int length() { ?? ??? ??? ?return n; ? ?? ??? ?} ? ?? ??? ?void insert(int a, Node b) { ?? ??? ??? ?Node now1 = head; ?? ??? ??? ?for (int i = 0; i < a - 1; i++) { ?? ??? ??? ??? ?now1 = now1.next; ?? ??? ??? ?} ?? ??? ??? ?b.next = now1.next; ?? ??? ??? ?now1.next = b; ?? ??? ??? ?n++; ?? ??? ?} ? ?? ??? ?void delete(int a) { ?? ??? ??? ?Node now1 = head; ?? ??? ??? ?for (int i = 0; i < a - 1; i++) { ?? ??? ??? ??? ?now1 = now1.next; ?? ??? ??? ?} ?? ??? ??? ?now1.next = now1.next.next; ?? ??? ??? ?n--; ? ?? ??? ?} ? ?? ??? ?int geta(int n) { ?? ??? ??? ?Node now1 = head; ?? ??? ??? ?for (int i = 0; i < n - 1; i++) { ?? ??? ??? ??? ?now1 = now1.next; ? ?? ??? ??? ?} ?? ??? ??? ?return now1.a; ? ?? ??? ?} ? ?? ??? ?void huan(int a, int b) { ?? ??? ??? ?head.a = a; ?? ??? ??? ?head.b = b; ? ?? ??? ?} ? ?? ??? ?int getb(int n) { ?? ??? ??? ?Node now1 = head; ?? ??? ??? ?for (int i = 0; i < n - 1; i++) { ?? ??? ??? ??? ?now1 = now1.next; ? ?? ??? ??? ?} ?? ??? ??? ?return now1.b; ? ?? ??? ?} ? ?? ?} ? ?? ?// 鍵被釋放 ?? ?@Override ?? ?public void keyReleased(KeyEvent e) { ?? ?} }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Spring boot 整合 Okhttp3 并封裝請求工具實例 詳解
OkHttp作為一款成熟、穩(wěn)定、易用的HTTP客戶端庫,擁有較高的性能和多樣化的功能,已被廣泛應用于移動應用開發(fā)、Web服務端開發(fā)等領域,這篇文章主要介紹了Spring boot 整合 Okhttp3 并封裝請求工具,需要的朋友可以參考下2023-08-08Spring項目中swagger用法與swagger-ui使用
這篇文章主要介紹了Spring項目中swagger用法與swagger-ui使用,通過圖文并茂的形式給大家介紹了編寫springboot項目的方法及導入spring-fox依賴的代碼詳解,需要的朋友可以參考下2021-05-05Java應用層協(xié)議WebSocket實現(xiàn)消息推送
后端向前端推送消息就需要長連接,首先想到的就是websocket,下面這篇文章主要給大家介紹了關于java后端+前端使用WebSocket實現(xiàn)消息推送的詳細流程,需要的朋友可以參考下2023-02-02SpringBoot2整合Redis實現(xiàn)讀寫操作
Redis,對于大家來說應該不陌生,是經(jīng)常使用的開發(fā)技術之一。本文將結合實例代碼,介紹SpringBoot2整合Redis實現(xiàn)讀寫操作,感興趣的小伙伴們可以參考一下2021-07-07Springboot繼承Keycloak實現(xiàn)單點登錄與退出功能
這篇文章主要介紹了Springboot繼承Keycloak實現(xiàn)單點登陸與退出,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08徹底解決java.lang.ClassNotFoundException: com.mysql.jdbc.Dr
這篇文章給大家介紹了如如何徹底解決java.lang.ClassNotFoundException: com.mysql.jdbc.Driver問題,文中有詳細的解決思路以及解決方法,需要的朋友可以參考下2023-11-11