早教吧作业答案频道 -->其他-->
用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分。
真心感谢!
关于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人简单版没大小王。坐等高手解答
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...的网友还看了以下:
为了提高测试的效率,应该A.随机地选取测试数据;B.取一切可能的输入数据作为测试数据;C.在完成编 2020-05-23 …
为了提高测试的效率,应该()。A.随机地选取测试数据B.取一切可能的输入数据作为测试数据C.在完成编 2020-05-23 …
为了提高测试的效率,应该()。A.随机地选取测试数据B.取一切可能的输入数据作为测试数据C.完成编码 2020-05-24 …
● 为了提高测试的效率,应该(24) 。 (24)A.随机地选取测试数据 B.取一切可能的输入数据作 2020-05-25 …
●以下关于软件测试原则的叙述中,不正确的是(56)。 A.测试用例不仅选用合理的输入数据,还要选择不 2020-05-26 …
A.随机地选取测试数据B.取一切可能的输入数据作为测试数据C.在完成编码以后制定软件的测试计 2020-05-26 …
请从下面关于摘要函数的说法中选出所有正确的描述。 [a]很容易使不同的输入数据生成相同的输出数 2020-05-26 …
以下关于软件测试原则的叙述中,正确的是(55) 。A.测试用例只需选用合理的输入数据,不需要选择不合 2020-05-26 …
如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称为______模块。A. 2020-05-26 …
测试用例中,不仅要选择合理的输入数据,还要选择()的输入数据。 2020-05-31 …