📄 player.java
字号:
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 + -