JAVA编程~~21点游戏源代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学号********

天津城建大学

Java 语言程序设计C

实验报告

实验1:21点游戏

学生姓名杨弘毅

班级卓越七班

实验一21点游戏

一、实验目的

1.掌握使用Java语言进行结构化程序设计;

2.熟悉Java基本语法,基本数据类型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用Java的选择语句,循环语句。

3.熟悉Eclipse开发环境,编写简单的Application程序,并编译和执行。

二、实验要求

1.调试程序、编译,运行后得到正确的结果;

2.写出实验报告,要求记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。

三、实验环境

1.计算机一台;

2.JDK、MyEclipse工具软件。

四、实验内容

编写并运行21点游戏。

具有菜单形式的界面

掌握Random类基本用法

设计胜负判定算法

五、实验步骤

1.了解21点游戏的基本规则

2.用0到53代表52张扑克牌

3.完成洗牌发牌模块

4.设计胜负判定算法

源程序:

package a;

import java.util.Scanner;

import java.util.Arrays;

public class Play21 {

int[] cards,computer,human;//定义一副54张牌,电脑5张,玩家5张

Scanner sr=new Scanner(System.in);

public Play21(){//构造方法

cards=new int[54];//定义54个大小的数组表示扑克牌

Arrays.fill(cards,0);//54张牌全赋值零,一旦某一张牌被用了就赋1 computer=new int[5];//电脑5张牌

Arrays.fill(computer,0);

human=new int[5];//人5张牌

Arrays.fill(human,0);

}

public void clear(){//使数组内所有数据赋值0没有用过,用过的赋值1 Arrays.fill(cards,0);

Arrays.fill(computer,0);

Arrays.fill(human,0);

}

public void start(){//开始游戏

System.out.println("-------------------------------------");

System.out.println("开始游戏!");

int n=1;

for(int i=0;i<1;i++){//电脑和玩家先各抽1张

computer[i]=nextOne();

human[i]=nextOne();

}

while(n<5){//牌数小于5时询问是否再要牌

show(human,n,1);//显示现在玩家的牌面

if(ask(human,n)){

computer[n]=nextOne();

human[n]=nextOne();

n++;

}

else break;

}

show(human,n,1);

show(computer,n,0);

if(judge(human,computer,n)==1)

System.out.println("\n你赢了!");

else if(judge(human,computer,n)==0)

System.out.println("\n平局!");

else if(judge(human,computer,n)==-1)

System.out.println("\n你输了!");

System.out.println("------------------------------------");

}

void show(int[] a,int num,int c){//显示牌面,如果c是1显示的是玩家的牌面,c是0显示的是电脑的牌面,num就是第几轮

if(c==1)System.out.println("\n"+(num-2)+":你现在的牌是:");

else System.out.println("\n"+(num-2)+":电脑现在的牌是:");

for(int i=0;i

if(a[i]==1){System.out.print("A ");continue;}

if(a[i]==11){System.out.print("J ");continue;}

if(a[i]==12){System.out.print("Q ");continue;}

if(a[i]==13){System.out.print("K ");continue;}

if(a[i]==14){System.out.print("小鬼");continue;}

if(a[i]==15){System.out.print("大鬼");continue;}

System.out.print(a[i]+" ");//以空格为分割以次打印

}

}

boolean ask(int[] a,int num){

System.out.println("\n还抽一张?Y/N");

String ch=sr.nextLine();

if(!ch.equals("n")&&!ch.equals("N"))

return true;

else return false;

}

int nextOne(){//用递归确保返回的牌没有重复

int n=(int)(Math.random()*54);//通过随机的方法产生数

if(cards[n]==0){//如果产生的那个数字曾经没有用过那么就用,否则重新产生cards[n]=1;//用过的赋值为1

if(n==52)

return 14;

else if(n==53)

相关文档
最新文档