java设计简单的21点游戏

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

学号11710115

天津城建大学

Java 语言程序设计C

实验报告

实验1:21点游戏

学生姓名路江飞

班级11卓越七班

一、实验内容

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

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

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

二、实验要求

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

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

三、实验结果

package 游戏;

import java.util.Random;

import java.util.Scanner;

public class Youxi {

/**

* @param args

*/

// TODO Auto-generated method stub

public static void show(){//具有菜单形式的界面

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

System.out.println("* 欢迎使用21点游戏*");

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

}

public static void shuffle(int a[] ){// 洗牌模块

int temp,j,k=1;

for(int i=0;i<=51;i++){

a[i]=k;

if((i+1)%4==0 )k++;

}

a[52]=14;

a[53]=15;

Random r=new Random();

for(j=0;j<=10000;j++){

int n=r.nextInt(54);

int m=r.nextInt(54);

temp=a[n];

a[n]=a[m];

a[m]=temp;

}

}

public static int person(int a[] ){//计算玩家的点数和

int p=1,j,t=1,sum=0;

System.out.print("可以开始了吗?(1号键开始游戏):");

while(p==1){

Scanner r=new Scanner(System.in);

int q=r.nextInt();

if(q!=1)

System.out.print("输入有误,请重新输入:");

else p=0;

}

for(j=0;t==1;j=j+2){

if(a[j]==14)

System.out.print("您拿到小王,");

if(a[j]==15)

System.out.print("您拿到大王,");

if(a[j]<14)

System.out.print("本次发的牌是"+a[j]+"点,");

sum+=a[j];

if(a[j]==14||a[j]==15){

sum-=a[j];

System.out.print("请输入您想要的点数(1点到13点):");

Scanner input=new Scanner(System.in);

int h=input.nextInt();

System.out.print("本次发的牌是"+h+"点,");

sum+=h;

}

if(sum>21){

System.out.print("现在是"+sum+"点,");

break;

}

System.out.print("现在是"+sum+"点,");

System.out.print("还要继续吗(继续请按1,退出请按2):");

Scanner input1=new Scanner(System.in);

int c=input1.nextInt();

if(c==1)

t=1;

else t=0;

}

return sum;

}

public static int computer(int a[] ){ //计算电脑的点数和int t1=1,j,sum=0;

for(j=1;t1==1;j=j+2){

sum+=a[j];

if(a[j]==14||a[j]==15){

sum-=a[j];

Random y=new Random();

int b=y.nextInt(13);

sum+=b;

}

if(sum>15)break;

}

return sum;

}

public static void Judge(int a[],int sum,int sum1 ){ //判定输赢

if(sum>sum1&&sum<=21&&sum1<=21)

System.out.println("恭喜您,胜利了!");

else if(sum

System.out.println("很遗憾,您失败了!");

else if (sum==sum1&&sum<=21&&sum1<=21)

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

else if(sum<=21&&sum1>21)

System.out.println("恭喜您,胜利了!");

else if(sum>21&&sum1<=21)

System.out.println("很遗憾,您失败了!");

else if (sum>21&&sum1>21)

System.out.println("您和电脑都爆了,平局!");

}

public static void main(String[] args) {

int i,t=1,sum1,sum,a[]=new int[54];

show(); //具有菜单形式的界面

for(i=0;t==1;i++){

shuffle(a); //洗牌

sum1=computer(a); //电脑的点数和

sum=person(a); //玩家的点数和

System.out.print("您的点数为:"+sum+" ");

if(sum1>21)

System.out.println("电脑的点数为"+sum1+" ");

else

System.out.println("电脑的点数为:"+sum1);

Judge(a,sum,sum1); //判断输赢

System.out.print("还要继续玩游戏吗(继续请按1,退出请按2):");

Scanner input=new Scanner(System.in);

int k=input.nextInt();

if(k==1)t=1;

else t=0;

}

}

}

相关文档
最新文档