📄 deckofcards.java
字号:
// Fig. 10.21: DeckOfCards.java
// Card shuffling and dealing program
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class DeckOfCards extends JFrame {
private Card deck[];
private int currentCard;
private JButton dealButton, shuffleButton;
private JTextField displayCard;
private JLabel status;
public DeckOfCards()
{
super( "Card Dealing Program" );
String faces[] = { "A-Ace", "2-Deuce", "3-Three", "4-Four",
"5-Five", "6-Six", "7-Seven", "8-Eight",
"9-Nine", "10-Ten", "J-Jack", "Q-Queen",
"K-King" };
String suits[] = { "Hearts红心", "Diamonds方块",
"Clubs梅花", "Spades黑桃" };
deck = new Card[ 52 ];
currentCard = -1;
int i;
for ( i = 0; i < deck.length; i++ )
{ deck[ i ] = new Card( faces[ i % 13 ],
suits[ i / 13 ] );
System.out.println(i+": "+deck[i]); // added by yexj
}
Container c = getContentPane();
c.setLayout( new FlowLayout() );
dealButton = new JButton( "Deal card" );
dealButton.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e )
{
Card dealt = dealCard();
if ( dealt != null ) {
displayCard.setText( dealt.toString() );
status.setText( "Card #: " + currentCard );
}
else {
displayCard.setText(
"NO MORE CARDS TO DEAL" );
status.setText(
"Shuffle cards to continue" );
}
}
}
);
c.add( dealButton );
shuffleButton = new JButton( "Shuffle cards" );
shuffleButton.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e )
{
displayCard.setText( "SHUFFLING ..." );
shuffle();
displayCard.setText( "DECK IS SHUFFLED" );
for ( int i = 0; i < deck.length; i++ )
System.out.println(i+"--"+ deck[i]);
}
}
);
c.add( shuffleButton );
displayCard = new JTextField( 20 );
displayCard.setEditable( false );
c.add( displayCard );
status = new JLabel();
c.add( status );
setSize( 275, 120 ); // set the window size
show(); // show the window
}
public void shuffle()
{
currentCard = -1;
System.out.println("\n");
for ( int i = 0; i < deck.length; i++ )
{
int j = ( int ) ( Math.random() * 52 );
Card temp = deck[ i ]; // swap
deck[ i ] = deck[ j ]; // the
deck[ j ] = temp; // cards
System.out.println(i+": "+j + deck[i]); // added by yexj
}
dealButton.setEnabled( true );
}
public Card dealCard()
{
if ( ++currentCard < deck.length )
return deck[ currentCard ];
else {
dealButton.setEnabled( false );
return null;
}
}
public static void main( String args[] )
{
DeckOfCards app = new DeckOfCards();
app.addWindowListener(
new WindowAdapter() {
public void windowClosing( WindowEvent e )
{
System.exit( 0 );
}
}
);
}
}
class Card {
private String face;
private String suit;
public Card( String f, String s )
{
face = f;
suit = s;
}
public String toString() { return suit + " " + face; }
// public String toString() { return face + " of " + suit; }
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -