⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 player.java

📁 扑克牌的发牌:按一定的规则四人玩牌;谁赢了先给谁发牌 (默认先给主人公控制的人发牌)2.扑克牌的出牌:谁拿了红桃4,谁先出;出牌规则
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
    else    if(listen)    {        //sh.addMsg("Msg: " + otherplayermsg);//------------------------------------msg from server            int commandlength = 0;        //decode message and perform function required        for(int n = 0; n < otherplayermsg.length(); n++){            char extract = otherplayermsg.charAt(n);            if(extract == (':')){                commandlength = n;                break;            }        }        String command = otherplayermsg.substring(0, commandlength);            if(command.equals("deal"))            deal(otherplayermsg, commandlength);          if(command.equals("otherdetails"))            otherdetails(otherplayermsg, commandlength);        if(command.equals("yourturn"))            yourturn();        if(command.equals("getcard"))            getcard(otherplayermsg, commandlength);        if(command.equals("othersturn"))            othersturn(otherplayermsg, commandlength);        if(command.equals("msg"))            sh.addMsg(otherplayermsg.substring(commandlength, otherplayermsg.length()));        if(command.equals("out"))            out(otherplayermsg, commandlength);        if(command.equals("otherout"))            otherout(otherplayermsg, commandlength);        if(command.equals("lost"))            lost(otherplayermsg, commandlength);        if(command.equals("reset"))            reset();    }    }while(listen);    }    private void reset()    {    swapdone = false;    for(int n = 0; n < 4; n++){        //setting scoreboard if game finishes early        if( n < 3){            if(outofgame[n] == false)                score.addScore(othernames[n], position);        }else{            if(outofgame[n] == false)                score.addScore(playersName, position);        }        outofgame[n] = false;    }    position = 1;    for(int n = 0; n < 3; n++)        if(othernames[n].equals(servername))            whosturn = n;    hand.removeAll();    for(int n = 0; n < 3; n++){        for(int i = 0; i < 3; i++)            faceup[n][i] = null;        carddowncount[n] = 3;        cardcount[n] = 3;        deck = 16;    }    for(int n = 0; n < 52; n++)        pile[n] = null;    }    //msg telling player they are out of the game and what posititon they came    private void out(String otherplayermsg, int commandlength){        //decode variable that came with message        int varlength = 0;        for(int n = commandlength + 1; n < otherplayermsg.length(); n++){            char extract = otherplayermsg.charAt(n);            if(extract == (':')){                varlength = n;                break;            }        }        String positionString = otherplayermsg.substring(commandlength + 1, varlength);        int playerPosition = 0;        try{        playerPosition = Integer.parseInt(positionString);        }catch(NumberFormatException b){ sh.addMsg("Otherplayer - out -  variable to Int error: " + b); }        boolean gameover = false;        if(playerPosition == 0)            sh.addMsg("Position Error");        if(playerPosition == 1)            sh.addMsg("Well done you have won the game your the first out !!");        else if(playerPosition == 2)            sh.addMsg("You've done alright you the second out of the game");        else if(playerPosition == 3)            sh.addMsg("Just made it, congrats your not a ShitHead !");        else if(playerPosition == 4){            sh.addMsg("You Lost ShitHead !!!");            gameover = true;        }        outofgame[3] = true;                score.addScore(playersName, position);                if(playerPosition == 4)            score.display();        else            position++;                if(whosturn == 3 && !gameover){            nextTurn();            displayTable();        }        }    //msg stating another player is out of the game    private void otherout(String otherplayermsg, int commandlength){        //decode variable that came with message        int varlength = 0;        for(int n = commandlength + 1; n < otherplayermsg.length(); n++){            char extract = otherplayermsg.charAt(n);            if(extract == (':')){                varlength = n;                break;            }        }        String name = otherplayermsg.substring(commandlength + 1, varlength);        sh.addMsg( name + " is out of the game");                score.addScore(name, position);        position++;        for(int n = 0; n < 3; n++)            if(othernames[n].equals(name)){                outofgame[n] = true;            if(whosturn == n){                nextTurn();                displayTable();            }            }    }    //telling player who lost.    private void lost(String otherplayermsg, int commandlength){        //decode variable that came with message        int varlength = 0;        for(int n = commandlength + 1; n < otherplayermsg.length(); n++){            char extract = otherplayermsg.charAt(n);            if(extract == (':')){                varlength = n;                break;            }        }        String name = otherplayermsg.substring(commandlength + 1, varlength);        sh.addMsg( name + " is the ShitHead");        sh.addMsg("Game Over");                score.addScore(name, 4);                for(int n = 0; n < 3; n++)            if(othernames[n].equals(name))                outofgame[n] = true;                        score.display();    }    /*--------------------------------    *   Othersturn msg format    *   command: - 'otherplayer'    *   name: players name    *   cardno:(move) - 'pickup'    *                 - 'burn'    *                 - 'faceup'   - cardno2:  - a card number    *                                          - 'multi' - numberplayed - up to 3 card numbers    *                 - 'facedown' - cardno2:  - 'pickup'    *                                          - a card number    *                 -  'multi' - numberplayed - up to 4 card numbers    *                 - a card number    *-------------------------------*/    private void othersturn(String otherplayermsg, int commandlength)    {        boolean burn = false;        //decode variable that came with message        int varlength = 0;        for(int n = commandlength + 1; n < otherplayermsg.length(); n++){            char extract = otherplayermsg.charAt(n);            if(extract == (':')){                varlength = n;                break;            }        }        String name = otherplayermsg.substring(commandlength + 1, varlength);        int varlength2 = 0;        for(int n = varlength + 1; n < otherplayermsg.length(); n++){            char extract = otherplayermsg.charAt(n);            if(extract == (':')){                varlength2 = n;                break;            }        }        String cardno = otherplayermsg.substring(varlength + 1, varlength2);        //determining which player just had a turn        int playernumber = 0;        for(int n = 0; n < 3; n++)            if(name.equals(othernames[n])){                playernumber = n;                break;            }        if(cardno.equals("pickup")){//other players picks up pile            cardcount[playernumber] = cardcount[playernumber] + pilelength();            for(int n = 0; n < 52; n++)                pile[n] = null;            sh.addMsg( othernames[playernumber] + " picked up the pile");        }else if (cardno.equals("burn")){//other player burns the pile            burnt = true;            burn = true;            //removing cards from pile            sh.addMsg(name + " burnt the pile.");            for(int n = 0; n < 51; n++)                pile[n] = null;            if(deck == 0 || cardcount[playernumber] > 3){                if(cardcount[playernumber] > 0)                    cardcount[playernumber]--;            }else                deck--;        }else if (cardno.equals("faceup")){//otherplayer plays a faceup card            int varlength3 = 0;            for(int n = varlength2 + 1; n < otherplayermsg.length(); n++){                char extract = otherplayermsg.charAt(n);                if(extract == (':')){                    varlength3 = n;                    break;                }            }            String cardno2 = otherplayermsg.substring(varlength2 + 1, varlength3);            if(cardno2.equals("multi")){            burn = faceupmulti(otherplayermsg, varlength3, playernumber);            }else{                try{                    Card card = new Card(Integer.parseInt(cardno2), cardspic, sh, g);                    //adding card to pile                    for(int n = 51; n > 0; n--)                        pile[n] = pile[n - 1];                    pile[0] = card;                    //burning pile if a 10 is played                    if(pile[0].getValue() == 10 || fourOfAKind(pile[3]) == true)                    {                        burnt = true;                        burn = true;                        //removing cards from pile                        sh.addMsg(name + " burnt the pile.");                        for(int n = 0; n < 51; n++)                            pile[n] = null;                    }                    //removing card from table                    for(int n = 0; n < 3; n++)                        if(faceup[playernumber][n] != null)                            if(faceup[playernumber][n].getNumber() == card.getNumber()){                                faceup[playernumber][n] = null;                                break;                            }                }catch(NumberFormatException b){ sh.addMsg("Otherplayer - variable to Int error: " + b); }            }        }else if (cardno.equals("facedown")){//if player plays one of there face down cards            int varlength3 = 0;            for(int n = varlength2 + 1; n < otherplayermsg.length(); n++){                char extract = otherplayermsg.charAt(n);                if(extract == (':')){                    varlength3 = n;                    break;                }            }            String cardno2 = otherplayermsg.substring(varlength2 + 1, varlength3);            if(cardno2.equals("pickup")){                    for(int n = varlength3 + 1; n < otherplayermsg.length(); n++){                        char extract = otherplayermsg.charAt(n);                        if(extract == (':')){                            varlength2 = n;                            break;                        }                    }                String cardplayed = otherplayermsg.substring(varlength3 + 1, varlength2);                int numPlayed = 0;                try{                    numPlayed = Integer.parseInt(cardplayed);                }catch(NumberFormatException b){ sh.addMsg("processTurn - facedown pickup - variable to Int error: " + b); }                cardcount[playernumber] = cardcount[playernumber] + pilelength() + 1;                for(int n = 0; n < 52; n++)                    pile[n] = null;                sh.addMsg( othernames[playernumber] + " played a " + Card.getCardStringValue(numPlayed) + " and had to picked up the pile");            }else{                try{                    Card card = new Card(Integer.parseInt(cardno2), cardspic, sh, g);                    for(int n = 51; n > 0; n--)                        pile[n] = pile[n - 1];                    pile[0] = card;                    //burning pile if a 10 is played                    if(pile[0].getValue() == 10 || fourOfAKind(pile[3]) == true)                    {                        burnt = true;                        burn = true;                        //removing cards from pile                        sh.addMsg(name + " burnt the pile.");                        for(int n = 0; n < 51; n++)                            pile[n] = null;                    }                }catch(NumberFormatException b){ sh.addMsg("Otherplayer - variable to Int error: " + b); }            }            carddowncount[playernumber]--;        }else if(cardno.equals("multi")){//if more than 1 card is played at a time            //determining how many card where played            int varlength3 = 0;            for(int n = varlength2 + 1; n < otherplayermsg.length(); n++){                char extract = otherplayermsg.charAt(n);                if(extract == (':')){                    varlength3 = n;                    break;                }            }            String numPlayedString = otherplayermsg.substring(varlength2 + 1, varlength3);            //converting string to int for processing            int numPlayed = 0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -