老师上课教的一个简单斗地主的框架,没事可以看看
package 斗5的地主;
import java.util.*;
public class PokerGame {
public static void main(String [] args) {
//菜单窗口
while(true) {
System.out.println("输入菜单:0.生成牌1.洗牌2.发牌3.抢地主4.退出游戏");
//定义一个 int类型的数用来接收菜单选项
int cloice;
cloice=getInt();
if(check(cloice)==1) {
continue;
};
if(cloice==4) {
System.out.println("下次再见@w@");
break;
}
pro(cloice);
}
}
//用于从键盘上取到整数的方法
public static int getInt(){
Scanner in=new Scanner(System.in);
return in.nextInt();
}
public static int check(int a){
if(a<0||a>4){
System.out.println("不是这样输入的,用你的小手在键盘上敲下1 2 3 4进行选择!");
return 1;
}
else
return 0;
}
static String[] poker;
static String[] play1=new String[0];
static String[] play2=new String[0];
static String[] play3=new String[0];
public static void pro(int c){
switch (c) {
case 0 :{
System.out.println("开始生成牌组");
poker=create();
Bian(poker);
break;
}
case 1 :{
System.out.println("开始洗牌");
poker=Random(poker);
Bian(poker);
break;
}
case 2 :{
int i;
System.out.println("开始发牌");
SetPlay(poker);
System.out.println("玩家1:");
Bian(play1);
System.out.println("玩家2:");
Bian(play2);
System.out.println("玩家3:");
Bian(play3);
System.out.println("地主");
for(i=poker.length-3;i<poker.length;i++)
System.out.println(poker[i]);
break;
}
case 3 :{
System.out.println("抢地主!");
break;
}
}
}
//创建牌组
public static String[] create() {
int i,j;
//1.创建一个花色数组
String[] colors = {"红桃","黑桃","梅花","方块"};
//2.创建一个数字数组
String[] numbers = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
//3.创建一个王的数组
String[] kings = {"大王","小王"};
//4.创建一个目标数组
String[] a=new String[0];//这样做可以之后将数组自由扩大
for(i=0;i<colors.length;i++)
for(j=0;j<numbers.length;j++) {
a=Arrays.copyOf(a, a.length+1);
a[a.length-1]=colors[i]+numbers[j];
}
a=Arrays.copyOf(a,a.length+kings.length);
System.arraycopy(kings,0,a,a.length-kings.length,kings.length);
return a;
}
//打乱牌排序
public static String[] Random(String[] a) {
boolean [] f=new boolean[a.length];
String[] play=new String[0];
int RandomInt,i;
for(i=0;play.length!=a.length;) {
Random ran=new Random();
RandomInt=ran.nextInt(a.length);
if(!f[RandomInt]) {
play=Arrays.copyOf(play,play.length+1);
play[i]=a[RandomInt];
f[RandomInt]=true;
i++;
}
}
return play;
}
//遍历String类型数组的方法
public static void Bian(String[] a) {
int i;
for(i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
//发牌
public static void SetPlay(String[] a) {
String[] play=new String[0];
int i;
for(i=0;i<a.length-3;i++) {
if(i%3==0) {
play1=Arrays.copyOf(play1, play1.length+1);
play1[play1.length-1]=a[i];
}
if(i%3==1) {
play2=Arrays.copyOf(play2, play2.length+1);
play2[play2.length-1]=a[i];
}
if(i%3==2) {
play3=Arrays.copyOf(play3, play3.length+1);
play3[play3.length-1]=a[i];
}
}
}
}
哈哈哈,没有抢地主。