为了账号安全,请及时绑定邮箱和手机立即绑定

出现异常后如何跳转到最初的try开始行继续执行!

出现异常后如何跳转到最初的try开始行继续执行!

active437153 2015-09-15 15:52:12
  try{            System.out.println("输入玩家1 id");        int i1=sc.nextInt();            id1.setId(i1);}        catch(InputMismatchException ie){            System.out.println("请输入数字!");                    }package imoocLx.easypk;import java.util.ArrayList;import java.util.Collections;import java.util.InputMismatchException;import java.util.List;import java.util.Random;import java.util.Scanner;/*1.创建一副扑克牌,不考虑大小王2.创建两名玩家,玩家至少要有ID、姓名、手牌等属性,手牌为扑克牌的集合3.洗牌,将之前创建的扑克牌顺序打乱4.发牌,将洗牌之后的扑克牌集合,从第一张开始,发给两名玩家,按照一人一张的方式,每人发两张  (改为每人发三张牌)5.开始游戏,比大小,大小相同比花色*/public class EasyPkp {        List<Pkp> newPkp=new ArrayList<Pkp>();    static int XPPL=50;  // 执行随机对调 的次数    Player id1,id2;  //定义的玩家    //生成扑克牌    public void createPkp(){        System.out.println("--------生成扑克-----------------");        String[] hsArray={"红桃","方块","黑桃","梅花"};                for(String hs:hsArray){                        for(int i=1;i<=13;i++)                newPkp.add(new Pkp(i,hs));        }                    }    //洗 牌,生成随机两对数,将其对调,执行50次    public void xPkp(){        System.out.println("---------------开始洗牌----------------------");        Random rand=new Random();        for(int i=0;i<XPPL;i++){        int a1=rand.nextInt(52);        int a2=rand.nextInt(52);    //    System.out.println("a1"+a1+"/a2"+a2+"pkpsize:"+newPkp.size());        if((newPkp.size()>=52)&&(a1!=a2)){            Pkp pkpp=newPkp.get(a1);  //得到 a1牌            Pkp pkpp1=newPkp.get(a2);  //分别得到防止添加删除位置变化            newPkp.remove(a1);  //删除a1位                        newPkp.add(a1,pkpp1);  //添加a2到a1            newPkp.remove(a2);  //移除a2            newPkp.add(a2,pkpp);   //添加a1        }        }            }        //创建玩家        public void createPlayer(){                System.out.println("---------开始创建玩家-----------");        id1=new Player();        id2=new Player();        //@SuppressWarnings("resource")        Scanner sc=new Scanner(System.in);                try{            System.out.println("输入玩家1 id");        int i1=sc.nextInt();            id1.setId(i1);}        catch(InputMismatchException ie){            System.out.println("请输入数字!");                    }            System.out.println("输入玩家1 name");            String name=sc.next();            id1.setName(name);            System.out.println(id1+"创建完成!");            System.out.println("输入玩家2 id");            int i2=sc.nextInt();            id2.setId(i2);            System.out.println("输入玩家2 name");            String name2=sc.next();            id2.setName(name2);            System.out.println(id2+"创建完成!");                }        //发牌    public void fPkp(Player p1,Player p2){        System.out.println("-------------系统开始发牌------------");        ArrayList<Pkp> par1=new ArrayList<Pkp>();        ArrayList<Pkp> par2=new ArrayList<Pkp>();        for(int i=0;i<6;i=i+2){            par1.add(newPkp.get(i));            par2.add(newPkp.get(i+1));        }        p1.setSp(par1);        p2.setSp(par2);                        showPlayerSp(p1);        showPlayerSp(p2);            }        //显示玩家手牌    public void showPlayerSp(Player p){        ArrayList<Pkp> sp=p.getSp();        System.out.println(p.name+"手牌为:");        for(Pkp pkp:sp)            System.out.println(pkp);                }        //输赢比较    public void getWin(Player p1,Player p2)    {        System.out.println("比对结果------------");                Collections.sort(p1.getSp());        Collections.sort(p2.getSp());                if((p1.getSp().get(2)).compareTo(p2.getSp().get(2))>0){            System.out.println(p1.getName()+"获胜!");        }        else if((p1.getSp().get(2)).compareTo(p2.getSp().get(2))==0){            if((p1.getSp().get(1)).compareTo(p2.getSp().get(1))>0){                System.out.println(p1.getName()+"获胜!");}                else if((p1.getSp().get(1)).compareTo(p2.getSp().get(1))==0)                    {  if((p1.getSp().get(0)).compareTo(p2.getSp().get(0))>0)                        System.out.println(p1.getName()+"羸!");                    else if((p1.getSp().get(0)).compareTo(p2.getSp().get(0))==0)                    System.out.println("平局!");                    else                        System.out.println(p2.getName()+"获胜!");                    }                else System.out.println(p2.getName()+"获胜!");                }else            System.out.println(p2.getName()+"获胜!");        /*        ArrayList<Pkp> win=new ArrayList<Pkp>();        win.add(p1.getSp().get(2));        win.add(p2.getSp().get(2)); //2为第三张牌        Collections.sort(win);        System.out.println("获胜者为:"+win.get(1));*/                            }        //显示生成扑克    public void showPkp(){        System.out.println("------显示当前扑克-----------------");        for(Pkp pkp:newPkp)            System.out.print(pkp);    }    public static void main(String[] args) {        // TODO Auto-generated method stub        EasyPkp easyPkp=new EasyPkp();        easyPkp.createPkp();                easyPkp.createPlayer();        //easyPkp.showPkp();        easyPkp.xPkp();        //easyPkp.showPkp();        easyPkp.fPkp(easyPkp.id1, easyPkp.id2);  //给玩家发牌            /*         * 给两个玩家发同样的牌         *         Player p1=new Player(2,"wge");        Player p2=new Player(3,"xm");        ArrayList<Pkp> sp=new ArrayList<Pkp>();        ArrayList<Pkp> sp2=new ArrayList<Pkp>();        sp.add(new Pkp(12,"黑桃"));        sp.add(new Pkp(11,"黑桃"));        sp.add(new Pkp(10,"黑桃"));                sp2.add(new Pkp(12,"黑桃"));        sp2.add(new Pkp(11,"黑桃"));        sp2.add(new Pkp(10,"红桃"));                p1.setSp(sp);        p2.setSp(sp2);                System.out.println("得到设定的手牌------");        easyPkp.getWin(p1, p2);                        */                easyPkp.getWin(easyPkp.id1,easyPkp.id2);    }}
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 1402 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信