java设计简单的21点游戏
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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; } } }