import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.net.URL;
import java.util.ArrayList;
import javax.swing.*;
public class PokerPanel extends JPanel {
Poker p = new Poker();
int n = 1;
ArrayList Mycards = new ArrayList(); // 电脑得到的牌
ArrayList Computercards = new ArrayList();//玩家得到的牌
int Myscore = 0; // 电脑得分
int Computerscore = 0;// 玩家得分
public boolean ComputerContinue = true;
public boolean Computerlose = false; // 电脑输了标志
public boolean Mylose = false; // 玩家输了标志
/**
* @param args
*/
public PokerPanel() {
p.xipai();
p.Show();
setBackground(Color.RED);
this.setVisible(true);
//repaint();
}
public void faCard() {
Mycards.add(p.getCard(n));
calcMyScore();
n++;
repaint();
if (Myscore > 21) {
Mylose = true;
/* 显示提示信息对话框 */
JOptionPane.showMessageDialog(null, "你输了,超过21点", "提示",
JOptionPane.ERROR_MESSAGE);
}
}
public void faCardToComputer() {
calcComputerScore();
if (Computerscore > 21) {
JOptionPane.showMessageDialog(null, "超过21点,电脑输了", "提示",
JOptionPane.ERROR_MESSAGE);
ComputerContinue = false;
Computerlose = true;// 电脑输了
} else if (Computerscore < 17) {
Computercards.add(p.getCard(n));
n++;
repaint();
} else {
/* 显示提示信息对话框 */
JOptionPane.showMessageDialog(null, "电脑不再要牌了", "提示",
JOptionPane.ERROR_MESSAGE);
ComputerContinue = false;
}
}
public void calcComputerScore() {
Computerscore = 0;
for (int i = 0; i < Computercards.size(); i++) {
Card c = (Card) Computercards.get(i);
Computerscore += c.count;
}
}
public void calcMyScore() {
Myscore = 0;
for (int i = 0; i < Mycards.size(); i++) {
Card c = (Card) Mycards.get(i);
Myscore += c.count;
}
}
public void shuying() {
calcComputerScore();
calcMyScore();
if (Computerlose == false)
JOptionPane.showMessageDialog(null, "电脑输了", "提示",
JOptionPane.ERROR_MESSAGE);
else if (Mylose == false)
JOptionPane.showMessageDialog(null, "玩家输了", "提示",
JOptionPane.ERROR_MESSAGE);
else if (Myscore > Computerscore)
JOptionPane.showMessageDialog(null, "玩家赢了", "提示",
JOptionPane.ERROR_MESSAGE);
else
JOptionPane.showMessageDialog(null, "电脑赢了", "提示",
JOptionPane.ERROR_MESSAGE);
}
/**
* 游戏绘图
*/
public void paint(Graphics g) {
g.clearRect(0, 0, this.getWidth(), this.getHeight());
g.drawString("玩家牌", 400, 250);
// 玩家牌在下方
for (int i = 0; i < Mycards.size(); i++) {
Card c = (Card) Mycards.get(i);
c.setPosition(50 * i, 200);
c.print();
c.paint(g,this);
}
System.out.println();
calcMyScore();
g.drawString("玩家牌得分"+Myscore, 400, 300);
g.drawString("电脑牌", 400, 100);
// 电脑牌在上方
for (int i = 0; i < Computercards.size(); i++) {
Card c = (Card) Computercards.get(i);
c.setPosition(50 * i, 50);
c.print();
c.paint(g,this);
}
System.out.println();
calcComputerScore();
g.drawString("电脑牌得分"+Computerscore, 400, 150);
}
public void newGame() {
// TODO Auto-generated method stub
Mycards.clear();
Computercards.clear();
Myscore = 0;
Computerscore = 0;
ComputerContinue = true;
Computerlose = false; // 电脑输了标志
Mylose = false; // 玩家输了标志
//给两家各发两张张牌
for(int i=1;i<=2;i++){
faCard();
faCardToComputer();
repaint();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
java的21点牌类游戏-自带洗牌算法与机器AI---【课程设计】 https://blog.csdn.net/dearmite/article/details/132301832#comments_28170675 本系列校训 用免费公开视频,卷飞培训班哈人!打死不报班,赚钱靠狠干! 只要自己有电脑,前后项目都能搞!N年苦学无人问,一朝成名天下知! 互相伤害互相卷,玩命学习要你管,天生我才必有用,我命由我不由天! 喜欢的朋友还可以自己查到本站的N多毕业设计与课程设计, 如果错误或其它需要请留言!或发邮件至8195819@qq.com
资源推荐
资源详情
资源评论
收起资源包目录
java的21点牌类游戏-自带洗牌算法与机器AI-课程设计 (194个子文件)
PokerPanel.class 4KB
Poker.class 2KB
Pai2.class 2KB
Pai.class 2KB
Shuffle.class 2KB
Card.class 2KB
ShowImage.class 2KB
Pai$3.class 760B
Pai$2.class 733B
Pai$1.class 728B
Pai2$1.class 563B
.classpath 232B
Thumbs.db 325KB
rear.gif 4KB
rear.gif 4KB
rear.gif 4KB
s2.GIF 4KB
s2.GIF 4KB
s2.GIF 4KB
s1.gif 3KB
s1.gif 3KB
s1.gif 3KB
2-12.gif 1KB
2-12.gif 1KB
2-12.gif 1KB
4-12.gif 1KB
4-12.gif 1KB
4-12.gif 1KB
3-12.gif 1KB
3-12.gif 1KB
3-12.gif 1KB
2-13.gif 1KB
2-13.gif 1KB
2-13.gif 1KB
2-11.gif 1KB
2-11.gif 1KB
2-11.gif 1KB
4-11.gif 1KB
1-12.gif 1KB
4-11.gif 1KB
1-12.gif 1KB
4-11.gif 1KB
1-12.gif 1KB
3-11.gif 1KB
3-11.gif 1KB
3-11.gif 1KB
4-13.gif 1KB
4-13.gif 1KB
4-13.gif 1KB
3-13.gif 1KB
3-13.gif 1KB
3-13.gif 1KB
1-11.gif 1KB
1-11.gif 1KB
1-11.gif 1KB
1-13.gif 1KB
1-13.gif 1KB
1-13.gif 1KB
2-10.gif 661B
2-10.gif 661B
2-10.gif 661B
2-9.gif 623B
3-10.gif 623B
2-9.gif 623B
3-10.gif 623B
2-9.gif 623B
3-10.gif 623B
4-10.gif 621B
4-10.gif 621B
4-10.gif 621B
1-10.gif 618B
1-10.gif 618B
1-10.gif 618B
2-8.gif 606B
2-8.gif 606B
2-8.gif 606B
3-9.gif 587B
3-9.gif 587B
3-9.gif 587B
4-9.gif 582B
4-9.gif 582B
4-9.gif 582B
1-9.gif 581B
1-9.gif 581B
1-9.gif 581B
3-8.gif 572B
3-8.gif 572B
3-8.gif 572B
2-7.gif 570B
2-7.gif 570B
2-7.gif 570B
4-8.gif 565B
4-8.gif 565B
4-8.gif 565B
1-8.gif 562B
1-8.gif 562B
1-8.gif 562B
2-6.gif 544B
2-6.gif 544B
2-6.gif 544B
共 194 条
- 1
- 2
资源评论
项目花园范德彪
- 粉丝: 5355
- 资源: 219
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 物模块模型代码,前往设计物模块所属
- Java面试手册,助力大家面试过五关斩六将,面试成功
- HITK0303MP-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- mybatis动态sql之xml增删改查批量操作示例EmpMapper.xml
- C/C++内存检测工具Sanitizers
- HITK0302MP-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 宝塔批量建站工具,很优秀的宝塔管理工具,基于宝塔api
- HITK0204MP-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- azeryhgtfxhj
- 操作系统实验页面置换算法
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功