永发信息网

写一个“BlackJack ”Java应用程序 该计划将测试你的逻辑思维。

答案:1  悬赏:0  手机版
解决时间 2021-02-09 08:23
写一个“BlackJack ”Java应用程序 该计划将测试你的逻辑思维。
最佳答案
我写了一个有图片版的21点。嘿嘿。。效果还不错。。开始走了好多弯路其实很容易。。你可以定义一个牌的类。。里面存放花色和牌面还有计分方法我还在这个类里面添加了判断是不是Ace的方法还有取牌的图片位置的方法。。然后用一个ArrayList去装52张牌的类进去。然后你再用Collections.shuffle()去洗牌。想发牌的话直接从第一个开始发就是了。。因为里面的顺序已经乱了。相当于一副洗好的牌了。
这是我的牌的类:
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.*;
public class Cards {
private static Toolkit tkc = Toolkit.getDefaultToolkit();
int suit,face,point;

Cards(int suit,int face){
this.suit=suit;
this.face=face;
}

public int getSuit(){
return suit;
}

public int getFace(){
return face;
}

public int getPoint(){
if(is10S()){
point=10;
}
else{
point=face;
}
return point;
}

public boolean isAce(){
if(face==1){
return true;
}
else{
return false;
}

}

public boolean is10S(){
if(face>=10){
return true;
}
else{
return false;
}

}

public Image getImage(){
Image cardp = tkc.getImage(Cards.class.getClassLoader().getResource(""+suit+"/"+face+".jpg"));
return cardp;
}

public void draw(Graphics g,int x,int y){

g.drawImage(getImage(), x, y,100,142, null);

}

}
创建三个ArrayList 类型是牌
一个是存放整幅牌的

这是创建新牌的方法:
for(int n=1;n<=4;n++){
for(int m=1;m<=13;m++){
newCard.add(new Cards(n,m));
}
}
两外两个是玩家和电脑的
发牌用
player.add(newCard.remove(0));
就是说加入你牌组的第一张牌然后出去这张牌

至于输赢判断很简单自己想去
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
视频格式转换器怎么用
新裕洗车王国地址在什么地方,想过去办事
逸农居在什么地方啊,我要过去处理事情
2006年12月22日,中国培育出的首例绿色荧光的
两个字的可爱的女生网名
胃不好晚上睡觉前可以喝牛奶吗
比亚迪f0车牌灯盖坏了会不会漏水进去
手机上没有下载软件怎么办
cad三维练习题目
万源奶站这个地址在什么地方,我要处理点事
新华洗车会所地址有知道的么?有点事想过去
平洋水库这个地址在什么地方,我要处理点事
当ι=1.5m时,一层挑梁根部基本组合的最大倾
翼虎1.5l舒适型与风尚型有何区别
思想抛锚和精神出轨有什么区别
推荐资讯
分手了,然后昨天我做梦梦见我走在下雨天里。
从未在一起和最终没有在一起,哪个更遗憾
【编算】芦花荡中编算和挂花是什么意思
一个男的女的僵尸找儿子的电影叫什么
为什么兔子总是很饿
谁有保保网的保险课件资料?
好的组词浩浩荡荡的
中国黄河少儿艺术团(侯马分团)地址有知道的么
石龙到广州高铁最晚班几点钟
江淮瑞风七座商务车报价及图片
玩美造型地址好找么,我有些事要过去
有一首歌词是,我已经睡了,请别在吵醒我,只
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?