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

用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...的网友还看了以下: