早教吧 育儿知识 作业答案 考试题库 百科 知识分享

用JAVA写个程序。关于21点的游戏。游戏规则:1、参加游戏者以庄家所发牌给的点数和与21比较a)超过21点的自然判输b)小于21点,与下家或计算机庄家,比较点数,所有点数不同,谁与21点数

题目详情
用JAVA写个程序。
关于21点的游戏。
游戏规则:
1、 参加游戏者以庄家所发牌给的点数和与21比较
a) 超过21点的自然判输
b) 小于21点,与下家或计算机庄家,比较点数,所有点数不同,谁与21点数差值小,为赢家
c) 若相同,发一张牌,比较与21点差的绝对值,谁小谁赢
2、 庄家发给下家牌,下家可要可不要
3、 计算机与下家游戏,计算机可采用,与下家相同牌数随机发牌,然后计算比较输赢
4、 所发牌要求:
a) 2-10为一种类型,以实际数值计算点数。
b) A\J\Q\K为一种类型,点数为1点
c) 大鬼小鬼为一种类型,点数为2点
5、 发牌时拍的花色(4种)、大鬼小鬼等不能出现重复牌现象。
6、 可多人游戏(至多4人),依次发牌,相互比较输赢。
7、 可以重复游戏,并记录得分,每赢一局得5分。
真心感谢!
▼优质解答
答案和解析
import java.io.*;
import java.util.*;
public class Dian {
static int h=1; static int g=1;static int f=0; static int fenshu=0; int m1=0;int n=0; static int e=0;static int d=0;//d表示完家点数总和
static String pai[]={"红桃","黑桃","红心","草花"};
static int shu[]={1,2,3,4,5,6,7,8,9,10,11,12,13};
public static int quzhi()
{
int m1 = (int) (13*Math.random()+1);
return m1;
}
public static int quzhi2()
{
int n = (int) (4*Math.random()+1);
return n;
}
public static void choupai()//玩家抽牌
{
int m=shu[quzhi()];
System.out.println(pai[quzhi2()]+m);
if(m>10) m=1;
System.out.println("点数"+m);
d=m+d;
System.out.println("玩家总点"+d);
if(d>21) {System.out.println("你输了");g=0;}
}
public static void choupai1()//庄家抽牌
{
int m=shu[quzhi()];
System.out.println(pai[quzhi2()]+m);
if(m>10) m=1;
System.out.println("点数"+m);
e=m+e;
System.out.println("庄家总点数"+e);
if(d>21) {System.out.println("你赢了");f=1;h=0;}

}

public static void main(String[] args) throws IOException {

choupai();
choupai1();
choupai();
choupai1();
Scanner in = new Scanner(System.in);
System.out.println("玩家再来一张牌请按1");
int b=in.nextInt(); //接收整形数据
if(b==1){choupai();}
if(g==1){
Scanner in2 = new Scanner(System.in);
System.out.println("庄家再来一张牌请按1");
int b1=in2.nextInt(); //接收整形数据
if(b1==1) {choupai1();}else h=0;}

if(g==1){
Scanner in1 = new Scanner(System.in);
System.out.println("玩家再来一张牌请按2");
int c=in1.nextInt(); //接收整形数据
if(c==2) choupai();
else if(d>e&&d<21){ System.out.println("玩家赢了");f=1;}
else System.out.println("你输了");}


if(h==1&&g==1){
Scanner in3 = new Scanner(System.in);
System.out.println("庄家再来一张牌请按2");
int c1=in3.nextInt(); //接收整形数据
if(c1==2) choupai1();
if(e>d) {System.out.println("你输了");}
else {System.out.println("你羸了");f=1;}}
if(f==1) fenshu=fenshu+5;
System.out.println("你的分数是"+fenshu);
f=0;g=1;
}
}
2人简单版没大小王。坐等高手解答
看了 用JAVA写个程序。关于21...的网友还看了以下:

古时某地南庄有一位画家,技艺高超,远近名气很大.北庄也有一位画家,对南庄的画家有一点不服气,总想找  2020-06-07 …

赵家庄和陈家庄一共有23头牛,陈家庄比赵家庄少5头,赵家庄和陈家庄各有多少头  2020-06-23 …

求高人一道数学题,清壤感谢甲已丙三人一起玩牌,比如,假如甲有10元,嬴了,丙输了,丙要输给与他身上  2020-07-16 …

热在家乡.生在石家庄、热爱石家庄、了解石家庄、发展石家庄.读图1,回答下列问题.(1)石家庄的纬度位  2020-11-12 …

1984年,石家庄造纸厂公告:谁一年给厂子上交17万,就把厂子包给谁。销售科长马胜利说:倒过来吧,我  2020-11-12 …

国庆假期小强一家要从天津到石家庄旅游.左下图是沈阳到石家庄沿线各大站的火车里程表,(1)你知道从天津  2020-11-12 …

国庆假期小强一家要从天津到石家庄旅游.如图是沈阳到石家庄沿线各大站的火车里程表,里程/千米沈阳-天津  2020-11-12 …

“石家庄市明天降水概率是10%”,对此消息的下列说法正确的是()A.石家庄市明天将有10%的地区降水  2020-11-12 …

我国古代田庄经济的特点有①佃客与庄主有较强的人身依附关系②佃客要承担军事义务,成为“部曲”③田庄经济  2020-12-09 …

阅读材料,回答问题。材料一十月革命后,布尔什维克非常重视教育问题。苏维埃开办的学校教育面向大众;学校  2020-12-15 …