⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 deckofcards.java~5~

📁 用Java编写的扑克牌游戏(含代码)
💻 JAVA~5~
📖 第 1 页 / 共 2 页
字号:
              output.writeInt(3);
              result_label.setText("正在换牌......");
            }
            catch (IOException E) {}
          }
          else {
            result_label.setText("你的分数不够!不能再换牌了!");
          }
        }
      }
    }
    );
//玩家的第五张牌被点击触发的换牌事件
    card_image[4][PLAYER].addActionListener(
        new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        if (GameIsStart == true) {
          if (player_score >= 200) {
            try {
              output.writeInt(ChangeCard);
              output.writeInt(4);
              result_label.setText("正在换牌......");
            }
            catch (IOException E) {}
          }
          else {
            result_label.setText("你的分数不够!不能再换牌了!");
          }
        }
      }
    }
    );
//对手的第一张牌被点击触发的偷看事件
    card_image[0][EMULANT].addActionListener(
        new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        if (GameIsStart == true) {
          if (player_score >= 200) {
            try {
              output.writeInt(PeekCard);
              output.writeInt(0);
              result_label.setText("偷看中......");
            }
            catch (IOException E) {}
          }
          else {
            result_label.setText("你的分数不够!不能再偷看别人的牌了!");
          }
        }
      }
    }
    );
//对手的第二张牌被点击触发的偷看事件
    card_image[1][EMULANT].addActionListener(
        new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        if (GameIsStart == true) {
          if (player_score >= 200) {
            try {
              output.writeInt(PeekCard);
              output.writeInt(1);
              result_label.setText("偷看中......");
            }
            catch (IOException E) {}
          }
          else {
            result_label.setText("你的分数不够!不能再偷看别人的牌了!");
          }
        }
      }
    }
    );
//对手的第三张牌被点击触发的偷看事件
    card_image[2][EMULANT].addActionListener(
        new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        if (GameIsStart == true) {
          if (player_score >= 200) {
            try {
              output.writeInt(PeekCard);
              output.writeInt(2);
              result_label.setText("偷看中......");
            }
            catch (IOException E) {}
          }
          else {
            result_label.setText("你的分数不够!不能再偷看别人的牌了!");
          }
        }
      }
    }
    );
//对手的第四张牌被点击触发的偷看事件
    card_image[3][EMULANT].addActionListener(
        new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        if (GameIsStart == true) {
          if (player_score >= 200) {
            try {
              output.writeInt(PeekCard);
              output.writeInt(3);
              result_label.setText("偷看中......");
            }
            catch (IOException E) {}
          }
          else {
            result_label.setText("你的分数不够!不能再偷看别人的牌了!");
          }
        }
      }
    }
    );
//对手的第五张牌被点击触发的偷看事件
    card_image[4][EMULANT].addActionListener(
        new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        if (GameIsStart == true) {
          if (player_score >= 200) {
            try {
              output.writeInt(PeekCard);
              output.writeInt(4);
              result_label.setText("偷看中......");
            }
            catch (IOException E) {}
          }
          else {
            result_label.setText("你的分数不够!不能再偷看别人的牌了!");
          }
        }
      }
    }
    );
//点击连接服务器按钮的触发事件
    button_client.addActionListener(
        new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        if (address_textf.getText().compareTo("") == 0) {
          result_label.setText("请输入服务器<地址>后再点击连接按钮");
        }
        else if (port_textf.getText().compareTo("") == 0) {
          result_label.setText("请输入服务器<端口>后再点击连接按钮");
        }
        else {
          client = new Client();
          client.start();
        }
      }
    }
    );
//点击断开连接按钮的触发事件
    button_break.addActionListener(
        new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BreakConnect = true;
        result_label.setText("服务器已经断开,请重新连接");
        button_begin.setEnabled(false);
        button_begin.setBackground(Color.lightGray);
        button_break.setEnabled(false);
        button_break.setBackground(Color.lightGray);
        button_client.setEnabled(true);
        button_client.setBackground(Color.white);
        button_100.setEnabled(false);
        button_100.setBackground(Color.lightGray);
        button_200.setEnabled(false);
        button_200.setBackground(Color.lightGray);
        button_300.setEnabled(false);
        button_300.setBackground(Color.lightGray);
        button_400.setEnabled(false);
        button_400.setBackground(Color.lightGray);
        button_500.setEnabled(false);
        button_500.setBackground(Color.lightGray);
        button_begin.setEnabled(false);
        button_begin.setBackground(Color.lightGray);
        button_break.setEnabled(false);
        button_break.setBackground(Color.lightGray);

      }
    }
    );

  }

//添加控件函数addComponent()
  public void addComponent(Component c, GridBagLayout g, GridBagConstraints gc,
                           JPanel p, int row, int column, int width, int height) {
    gc.gridx = column;
    gc.gridy = row;
    gc.gridwidth = width;
    gc.gridheight = height;
    g.setConstraints(c, gc);
    p.add(c);
  }

//检查分数并决定各赌注按钮可不可用的函数checkscore()
  public void checkscore() {
    image = new ImageIcon("money.gif");
    if (player_score >= 100) {
      button_100.setEnabled(true);
      button_100.setBackground(Color.white);
      button_100.setIcon(image);
    }
    if (player_score >= 200) {
      button_200.setEnabled(true);
      button_200.setBackground(Color.white);
      button_200.setIcon(image);
    }
    if (player_score >= 300) {
      button_300.setEnabled(true);
      button_300.setBackground(Color.white);
      button_300.setIcon(image);
    }
    if (player_score >= 400) {
      button_400.setEnabled(true);
      button_400.setBackground(Color.white);
      button_400.setIcon(image);
    }
    if (player_score >= 500) {
      button_500.setEnabled(true);
      button_500.setBackground(Color.white);
      button_500.setIcon(image);
    }
    if (player_score < 200) {
      button_200.setEnabled(false);
      button_200.setBackground(Color.lightGray);
      button_200.setIcon(null);
    }
    if (player_score < 300) {
      button_300.setEnabled(false);
      button_300.setBackground(Color.lightGray);
      button_300.setIcon(null);
    }
    if (player_score < 400) {
      button_400.setEnabled(false);
      button_400.setBackground(Color.lightGray);
      button_400.setIcon(null);
    }
    if (player_score < 500) {
      button_500.setEnabled(false);
      button_500.setBackground(Color.lightGray);
      button_500.setIcon(null);
    }
  }

//下注函数wager()
  public void wager() {
    button_100.setEnabled(false);
    button_100.setBackground(Color.lightGray);
    button_100.setIcon(null);
    button_200.setEnabled(false);
    button_200.setBackground(Color.lightGray);
    button_200.setIcon(null);
    button_300.setEnabled(false);
    button_300.setBackground(Color.lightGray);
    button_300.setIcon(null);
    button_400.setEnabled(false);
    button_400.setBackground(Color.lightGray);
    button_400.setIcon(null);
    button_500.setEnabled(false);
    button_500.setBackground(Color.lightGray);
    button_500.setIcon(null);
    player_score = player_score - wager;
    score_label.setText("你的分数 :" + player_score);
  }

//显示手上的牌的函数showCard()
  public void showCard(int name, int order) {
    image = new ImageIcon(card_name[order][name] + ".gif");
    card_image[order][name].setIcon(image);
  }


  public static void main(String args[]) {
    DeckOfCards app = new DeckOfCards();
    app.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.exit(0);
      }
    });
  }

  private void jbInit() throws Exception {
    this.setFont(new java.awt.Font("新宋体", 0, 12));
    this.setResizable(false);
  }

//客户端通信和处理程序
  class Client
      extends Thread {
    public Client() {
      try {
        socket = new Socket(address_textf.getText(),
                            Integer.parseInt(port_textf.getText()));
        input = new DataInputStream(socket.getInputStream());
        output = new DataOutputStream(socket.getOutputStream());
        button_break.setEnabled(true);
        button_break.setBackground(Color.white);
        button_client.setEnabled(false);
        button_client.setBackground(Color.lightGray);
        result_label.setText("服务器已经连接,请开始游戏");
      }
      catch (IOException E) {
        E.printStackTrace();
        result_label.setText("连接服务器失败!请重新连接");
        button_client.setEnabled(true);
        button_client.setBackground(Color.white);
      }
    }

    public void run() {
      while (true) {
        try {
          int operate=input.readInt();
          if ( operate==UpdateStatus ) {
            result_label.setText("更新状态中......");
            Player_number=input.readInt();
            level_label.setText("你的等级:" + input.readUTF());
            emulant_level_label.setText("对手等级 : " + input.readUTF());
            player_score = input.readInt();
            score_label.setText("你的分数 : " + player_score);
            emulant_score_label.setText("对手分数 : " + input.readInt());
            result_label.setText("更新状态完毕");
            button_begin.setEnabled(true);
            button_begin.setBackground(Color.white);
          }
          else if ( operate==GetCard ) {
            result_label.setText("正在取牌......");
            for (int i = 0; i < 5; i++) {
              card_name[i][PLAYER] = input.readInt();
              showCard(PLAYER, i);
            }
            level_label.setText("你的等级:" + input.readUTF());
            player_score = input.readInt();
            score_label.setText("你的分数 :" + player_score);
            player_status.setText("你的牌 : " + input.readUTF());
            winchance_label.setText("获胜几率:" + input.readFloat() + "%");
            result_label.setText("取牌完毕");
            emulant_status.setText("对手的牌 : 你下注了我就让你看");
            result_label.setText("请看牌然后下注");
            checkscore();
            GameIsStart = true;
          }
          else if ( operate==ChangeCard ) {
            int index = input.readInt();
            card_name[index][1] = input.readInt();
            showCard(PLAYER, index);
            player_score = input.readInt();
            score_label.setText("你的分数 :" + player_score);
            player_status.setText("玩家的牌 : " + input.readUTF());
            winchance_label.setText("获胜几率:" + input.readFloat() + "%");
            checkscore();
            result_label.setText("啊,你偷偷地换了一张牌,你要付出扣除100分的代价!");
          }
          else if ( operate==PeekCard ) {
            int index = input.readInt();
            card_name[index][0] = input.readInt();
            showCard(EMULANT, index);
            result_label.setText("偷看完毕");
            player_score = input.readInt();
            score_label.setText("你的分数 :" + player_score);
            checkscore();
            result_label.setText("啊,你偷看了对手一张牌,你要付出扣除100分的代价!");
          }
          else if ( operate==Wager ) {
            for (int i = 0; i < 5; i++) {
              card_name[i][EMULANT] = input.readInt();
              showCard(EMULANT, i);
            }
            emulant_status.setText("对手的牌 : "+input.readUTF());
            result_label.setText(input.readUTF());
            level_label.setText("你的等级:" + input.readUTF());
            emulant_level_label.setText("对手等级:" + input.readUTF());
            player_score = input.readInt();
            score_label.setText("你的分数 :" + player_score);
            emulant_score_label.setText("对手分数 :" + input.readInt());
            if (player_score >= 100) {
              button_begin.setText("点这里再来一次");
              button_begin.setBackground(Color.white);
              button_begin.setEnabled(true);
            }
            else {
              result_label.setText("很遗憾!你的分数为零!游戏结束了!");
              button_begin.setText("游戏已结束");
            }
          }
        }
        catch (IOException ec) {}
      }
    } //end of run
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -