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); } });
正在阅读:
21点源代码11-18
分与合的教学设计11-22
发挥班子整体功能是学校发展的关键04-27
运筹学1至6章习题参考答案10-24
西安城墙灯会及新春氛围项目标准施工方案04-15
模拟商务谈判剧本双语版06-10
江阴市教师专项课题申报、评审书 - 图文10-10
江南名镇:江苏省无锡市江阴市青阳镇;盛景青阳 - 醉美天堂 - 图文10-26
xml编写XSL样式表10-09
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 点源
- 代码
- 最新人教版高中化学必修2《生活中两种常见的有机物》互动课堂(1)
- EKP表单自定义宝典 - 图文
- 测树学实验 树干解析 报告
- 领导干部安全大检查自查反思材料
- 肺功能检查
- 四川教育出版社-重庆出版社--四年级下册综合实践教案全
- 项目三 实验3 IP访问控制列表的配置
- 去除核酸方法总结
- 金属材料学考试重点
- 邮轮乘务专业人才培养方案
- 期权一级题库
- 《唐雎不辱使命》中考题
- 比和比例3
- 如何提高学生学习计算机积极性
- 2015年注册会计师《会计》考试真题及答案解析(文字版)
- 安徽公务员考试行测资料分析模拟试题14
- PROFIBUS现场总线安装指导1 - 图文
- 吸烟合并慢性牙周炎患者龈沟液NO含量检测
- 钟山风景名胜区风景资源评价报告 - 图文
- 会计继续教育测试题及正确答案山东省4