21点源代码

更新时间:2023-11-18 04:43:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

package trys;

public class Card { /**

*

目标:获取和设置牌得类型和面值 *

@param type,value *

@author Lee */

private int value=0; //代表纸牌的面值 private int type=0; //代表纸牌的花色 public Card(int type,int value){ //构造方法,给面值和花色赋值 this.value=value; this.type=type; }

//定义方法获取类型

public int getType(){ return type; }

//定义方法获取面值

public int getValue(){ return value; }

//定义方法设置纸牌的类型

public void setType(int type){ this.type=type; }

//定义方法设置纸牌的面值

public void setValue(int value){ this.value=value; } }

package trys;

import java.awt.Container;

import javax.swing.ImageIcon; import javax.swing.JLabel; public class CardManager {

/**

*

目的:初始化牌,生成,和发牌 *

@version Lee */

public Card[] cards=new Card[52]; //定义数组存放纸牌

/*初始化纸牌*/

public void initCards(){

for(int i=1;i<=4;i++){ //纸牌类型

for(int j=1;j<=13;j++){ //纸牌面值

cards[(i-1)*13+j-1]=new Card(i,j); } } }

/*随机生成牌号*/

public void randomCards(){

Card temp=null; //从新定义纸牌的类型 for(int i=0;i<52;i++){

int a=(int)(Math.random()*52); int b=(int)(Math.random()*52); temp=cards[a];

cards[a]=cards[b]; cards[b]=temp; } }

/*定义方法,发牌*/

public void gameStart(JLabel game[],Container c){ //在容器中删除标签组件 if(game[0]!=null){

for(int i=0;i<52;i++){ c.remove(game[i]); }

c.repaint(); }

/*在容器中放置52个组件,用于盛放图片*/ for(int i=0;i<52;i++){ game[i]=new JLabel();

game[i].setBorder(javax.swing.BorderFactory.crea

teEtchedBorder(

javax.swing.border.EtchedBorder.RAISED)); }

//设置标签组件的图片为rear.gif,即牌得背面 for(int i=0;i<52;i++){ game[i].setIcon(new

ImageIcon(\ } } }

package trys;

import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Toolkit;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Vector;

import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane;

public class GameFrame extends JFrame implements ActionListener{

JButton clear_btn=new JButton(); //洗牌按钮

JButton compute_btn=new JButton(); //游戏开始按钮 JButton game_btn=new JButton();//玩家按钮

JButton gameover_btn=new JButton(); //游戏结束按钮

JLabel game[]=new JLabel[52]; //放置52张牌得标签框 CardManager cm=new CardManager(); //定义指派管理类

的对象

int i=0; //记录抓牌数

int computer_dot=0; //记录电脑点数 int game_dot=0; //记录玩家点数

Vector v=new Vector(); //存储电脑抓的纸牌 JLabel jLabel1=new JLabel(); JLabel jLabel2=new JLabel(); public GameFrame(){

getContentPane().setLayout(null); this.setTitle(\二十一点游戏\ this.setSize(800,500); //获得当前屏幕的宽和高 Dimension

screenSize=Toolkit.getDefaultToolkit().getScreenSize();

Dimension frameSize=this.getSize(); //获得当前窗体的宽和高

//设置窗体剧中

if(frameSize.height>screenSize.height) frameSize.height=screenSize.height;

if(frameSize.width>screenSize.width) frameSize.width=screenSize.width;

this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);

clear_btn.setBounds(new

Rectangle(78,388,86,31)); //设置位置

clear_btn.setText(\洗牌\设置标签内容

clear_btn.addActionListener(this); //注册监听器

compute_btn.setBounds(new Rectangle(233,388,86,31));

compute_btn.setEnabled(false);//不能更改 compute_btn.setText(\开始游戏\

compute_btn.addActionListener(this);

game_btn.setBounds(new

Rectangle(413,389,91,32));

game_btn.setEnabled(false); game_btn.setText(\玩家抓牌\

game_btn.addActionListener(this);

gameover_btn.setBounds(new Rectangle(625,390,91,32));

gameover_btn.setEnabled(false); gameover_btn.setText(\本轮结果\

gameover_btn.addActionListener(this);

JMenuBar mb=new JMenuBar(); //定义菜单条 JMenu mnuFile=new JMenu(\文件\定义菜单 JMenu mnuHelp=new JMenu(\帮助\

JMenuItem mnuFileExit=new JMenuItem(\退出\定义菜单项

JMenuItem mnuHelpAbout=new JMenuItem(\关于...\ this.setJMenuBar(mb); //把菜单条添加到窗体上

jLabel1.setText(\电脑显示牌区\ jLabel1.setBounds(new Rectangle(104,330,95,38));

jLabel2.setText(\用户显示牌区\ jLabel2.setBounds(new Rectangle(499,343,92,33));

mb.add(mnuFile); //将菜单加到菜单条中 mb.add(mnuHelp);

mnuFile.add(mnuFileExit); //将菜单项添加到菜单中 mnuHelp.add(mnuHelpAbout); //对菜单产生的事件进行注册

mnuFileExit.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){ System.exit(0); } });

本文来源:https://www.bwwdw.com/article/qpvv.html

Top