import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.*;
import Players.*;
import Cards.*;
public class GamePanel extends JPanel implements ActionListener
{
private Dealer dealer;
private Player player;
private GameTable table;
private JButton newGameButton = new JButton("Deal");
private JButton hitButton = new JButton("Hit");
private JButton doubleButton = new JButton("Double");
private JButton standButton = new JButton("Stand");
private JButton add1Chip = new JButton("1");
private JButton add5Chip = new JButton("5");
private JButton add10Chip = new JButton("10");
private JButton add25Chip = new JButton("25");
private JButton add100Chip = new JButton("100");
private JButton clearBet = new JButton("Clear");
private JLabel currentBet = new JLabel("Please set your bet...");
private JLabel playerWallet = new JLabel("$999.99");
private JLabel cardsLeft = new JLabel("Cards left...");
private JLabel dealerSays = new JLabel("Dealer says...");
public GamePanel()
{
this.setLayout(new BorderLayout());
table = new GameTable();
add(table, BorderLayout.CENTER);
JPanel betPanel = new JPanel();
betPanel.add(currentBet);
betPanel.add(clearBet);
betPanel.add(add1Chip);
betPanel.add(add5Chip);
betPanel.add(add10Chip);
betPanel.add(add25Chip);
betPanel.add(add100Chip);
betPanel.add(playerWallet);
JPanel dealerPanel = new JPanel();
dealerPanel.add(dealerSays);
JPanel optionsPanel = new JPanel();
optionsPanel.add(newGameButton);
optionsPanel.add(hitButton);
optionsPanel.add(doubleButton);
optionsPanel.add(standButton);
optionsPanel.add(cardsLeft);
JPanel bottomItems = new JPanel();
bottomItems.setLayout(new GridLayout(0,1));
bottomItems.add(dealerPanel);
bottomItems.add(betPanel);
bottomItems.add(optionsPanel);
add(bottomItems, BorderLayout.SOUTH);
// opaque stuff
//this.setBackground(new Color(6, 120, 0)); // now done in AppWindow.java
betPanel.setOpaque(false);
dealerPanel.setOpaque(false);
optionsPanel.setOpaque(false);
bottomItems.setOpaque(false);
// add listeners to buttons
newGameButton.addActionListener(this);
hitButton.addActionListener(this);
doubleButton.addActionListener(this);
standButton.addActionListener(this);
clearBet.addActionListener(this);
add1Chip.addActionListener(this);
add5Chip.addActionListener(this);
add10Chip.addActionListener(this);
add25Chip.addActionListener(this);
add100Chip.addActionListener(this);
// tool tips
newGameButton.setToolTipText("Deal a new game.");
hitButton.setToolTipText("Request another card.");
doubleButton.setToolTipText("Double your bet, and receive another card.");
standButton.setToolTipText("Stand with your card-hand.");
clearBet.setToolTipText("Clear your current bet.");
add1Chip.setToolTipText("Add a $1 chip to your current bet.");
add5Chip.setToolTipText("Add a $5 chip to your current bet.");
add10Chip.setToolTipText("Add a $10 chip to your current bet.");
add25Chip.setToolTipText("Add a $25 chip to your current bet.");
add100Chip.setToolTipText("Add a $100 chip to your current bet.");
dealer = new Dealer();
player = new Player("James Bond", 32, "Male");
player.setWallet(100.00);
updateValues();
}
public void actionPerformed(ActionEvent evt)
{
String act = evt.getActionCommand();
if (act.equals("Deal"))
{
newGame();
}
else if (act.equals("Hit"))
{
hit();
}
else if (act.equals("Double"))
{
playDouble();
}
else if (act.equals("Stand"))
{
stand();
}
else if (act.equals("1") || act.equals("5") || act.equals("10") || act.equals("25") || act.equals("100"))
{
increaseBet(Integer.parseInt(act));
}
else if (act.equals("Clear"))
{
System.out.println("clear bet");
clearBet();
}
updateValues();
}
public void newGame()
{
dealer.deal(player);
}
public void hit()
{
dealer.hit(player);
}
public void playDouble()
{
dealer.playDouble(player);
}
public void stand()
{
dealer.stand(player);
}
public void increaseBet(int amount)
{
dealer.acceptBetFrom(player, amount + player.getBet());
}
public void clearBet()
{
player.clearBet();
}
public void updateValues()
{
dealerSays.setText("<html><p align=\"center\"><font face=\"Serif\" color=\"white\" style=\"font-size: 20pt\">" + dealer.says() + "</font></p></html>");
if (dealer.isGameOver())
{
if (player.betPlaced() && !player.isBankrupt())
{
newGameButton.setEnabled(true);
}
else
{
newGameButton.setEnabled(false);
}
hitButton.setEnabled(false);
doubleButton.setEnabled(false);
standButton.setEnabled(false);
if (player.betPlaced())
{
clearBet.setEnabled(true);
}
else
{
clearBet.setEnabled(false);
}
if (player.getWallet() >= 1.0)
{
add1Chip.setEnabled(true);
}
else
{
add1Chip.setEnabled(false);
}
if (player.getWallet() >= 5)
{
add5Chip.setEnabled(true);
}
else
{
add5Chip.setEnabled(false);
}
if (player.getWallet() >= 10)
{
add10Chip.setEnabled(true);
}
else
{
add10Chip.setEnabled(false);
}
if (player.getWallet() >= 25)
{
add25Chip.setEnabled(true);
}
else
{
add25Chip.setEnabled(false);
}
if (player.getWallet() >= 100)
{
add100Chip.setEnabled(true);
}
else
{
add100Chip.setEnabled(false);
}
}
else
{
newGameButton.setEnabled(false);
hitButton.setEnabled(true);
if (dealer.canPlayerDouble(player))
{
doubleButton.setEnabled(true);
}
else
{
doubleButton.setEnabled(false);
}
standButton.setEnabled(true);
clearBet.setEnabled(false);
add1Chip.setEnabled(false);
add5Chip.setEnabled(false);
add10Chip.setEnabled(false);
add25Chip.setEnabled(false);
add100Chip.setEnabled(false);
}
// redraw cards and totals
table.update(dealer.getHand(), player.getHand(), (dealer.areCardsFaceUp()) ? true : false);
table.setNames(dealer.getName(), player.getName());
table.repaint();
cardsLeft.setText("Deck: " + dealer.cardsLeftInPack() + "/" + (dealer.CARD_PACKS * Cards.CardPack.CARDS_IN_PACK));
if (player.isBankrupt())
{
moreFunds();
}
//
没有合适的资源?快使用搜索试试~ 我知道了~
一个简单的Java二十一点游戏_java_代码_下载
共78个文件
png:53个
java:18个
markdown:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 135 浏览量
2022-06-24
21:44:30
上传
评论
收藏 83KB ZIP 举报
温馨提示
编写的 Java Blackjack 游戏。
资源推荐
资源详情
资源评论
收起资源包目录
java-blackjack-master.zip (78个子文件)
java-blackjack-master
tools
clean 143B
Blackjack.mf 22B
build 227B
BUILDING 803B
README.markdown 233B
src
card_images
11.png 3KB
52.png 3KB
40.png 583B
16.png 440B
32.png 510B
29.png 505B
red_back.png 238B
22.png 533B
17.png 435B
24.png 3KB
10.png 630B
19.png 463B
5.png 578B
38.png 3KB
42.png 511B
46.png 609B
9.png 634B
47.png 618B
50.png 3KB
44.png 558B
34.png 612B
35.png 679B
25.png 3KB
21.png 525B
27.png 440B
51.png 3KB
1.png 453B
48.png 608B
39.png 3KB
14.png 388B
33.png 610B
41.png 463B
49.png 596B
28.png 457B
45.png 520B
23.png 554B
18.png 478B
30.png 474B
37.png 3KB
6.png 531B
31.png 553B
2.png 474B
12.png 3KB
7.png 606B
4.png 494B
13.png 3KB
36.png 623B
20.png 513B
43.png 486B
8.png 625B
26.png 3KB
15.png 411B
3.png 508B
GameTable.java 5KB
AppWindow.java 8KB
GamePanel.java 11KB
Players
Dealer.java 7KB
Player.java 3KB
BlackjackPlayer.java 2KB
Cards
CardHand.java 1KB
CardPack.java 824B
Suit.java 759B
Face.java 3KB
Card.java 2KB
PlayerCardHand.java 1KB
Deck.java 2KB
DealerCardHand.java 804B
Blackjack.java 1KB
PlayerDialog.java 4KB
SpringUtilities.java 8KB
SimpleFileFilter.java 1KB
.classpath 173B
.gitignore 13B
共 78 条
- 1
资源评论
快撑死的鱼
- 粉丝: 1w+
- 资源: 9154
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功