黑马程序员技术交流社区
标题:
扑克_钩丁钓鱼小游戏
[打印本页]
作者:
王际涛
时间:
2015-11-10 18:54
标题:
扑克_钩丁钓鱼小游戏
第一个学会的扑克游戏,你一张我一张,玩到天黑…
import java.util.*;
class puketest {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
LinkedList<String> a1=new LinkedList<String>();
LinkedList<String> a2=new LinkedList<String>();
fapai(a1,a2);
fishing(a1,a2);
}
public static void fapai(LinkedList<String> a1,LinkedList<String> a2){ //洗牌_发牌
List<String> a=new LinkedList<String>();
a.add("A");a.add("2");a.add("3");a.add("4");a.add("5");a.add("6");a.add("7");
a.add("8");a.add("9");a.add("10");a.add("J");a.add("Q");a.add("K");
a.addAll(a);a.add("王");
a.addAll(a);
Collections.shuffle(a);//随机排序
sop("<<<<<<<<<<<<<<<<<钩丁钓鱼>>>>>>>>>>>>>>>>>>");
for(int i=0;i<a.size();i++){
if(i%2==0) a1.add(a.get(i));
else a2.add(a.get(i));
}
sop("你的牌:");
printList(a1);
}
public static void fishing(LinkedList<String> a1,LinkedList<String> a2){// 游戏规则
LinkedList<String> a3=new LinkedList<String>();
int[] flag={1};
buwanle:while(true){
while (check(a1,a3,flag)) {
if(flag[0]==0) break buwanle; // 退出游戏
if(flag[0]==2){ // 自动出牌
while(true){
while (check(a1,a3)) continue;
while (check(a2,a3)) continue;
if(a1.size()==0){
System.out.println("你失败了~");
break buwanle;
}else if(a2.size()==0){
System.out.println("恭喜你,又赢了~");
break buwanle;
}
}
}
continue;
}
while (check(a2,a3)) continue;
if(a1.size()==0){
System.out.println("你失败了~");
break;
}else if(a2.size()==0){
System.out.println("恭喜你,又赢了~");
break;
}
}
}
//a2出一个元素,看a3中是否有同样元素(电脑出牌)
public static boolean check(LinkedList<String> a2,LinkedList<String> a3){
String r =a2.remove();
if(a3.indexOf(r)!=-1){//如果有r元素,a1增加,a3减少
for(int i=a3.indexOf(r);i<a3.size();i++)
a2.add(a3.remove(i));
a2.add(r);
return true;
}
else{
a3.add(r);
return false;
}
}
//a2出一个元素,看a3中是否有同样元素(人出牌)
public static boolean check(LinkedList<String> a1,LinkedList<String> a3,int[] flag){
Scanner in=new Scanner(System.in);
while(true){
sop("1 出一张 2 全部自动出牌 3 不玩了");
int aa=in.nextInt();
switch (aa) {
case 1:
String r =a1.remove();
if(a3.indexOf(r)!=-1){//如果有r元素,a1增加,a3减少
for(int i=a3.indexOf(r);i<a3.size();i++){
a1.add(a3.remove(i));
}
a1.add(r);
sop("你的牌:");
printList(a1);
return true;
}
else{
sop("你的牌:");
printList(a1);
a3.add(r);
return false;
}
case 2:
flag[0]=2;
return true;
case 3:
flag[0]=0;
return true;
default :
sop("你输错啦,重新输吧");
continue;
}
}
}
public static void sop(Object a){
System.out.println(a);
}
public static void printList(LinkedList a){ //每行五个元素的方式打印一个集合
for(int i=0;i<a.size();i++){
if(i!=0&&i%5==0){sop("\n");}
System.out.print(a.get(i)+" ");
}
sop("\n");
}
}
作者:
迷茫不堪的年纪
时间:
2015-11-10 19:24
加油!~~~~~~~~~~~~~
作者:
JYcainiao
时间:
2015-11-10 19:35
确实很厉害 不过没看懂怎么玩的……
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2