天天看點

java小程式撲克牌_java實作撲克牌牌面小程式

本文執行個體為大家分享了java實作撲克牌牌面小程式的具體代碼,供大家參考,具體内容如下

本周分享一個撲克牌牌面小程式如下:

package com.softeem.lmg.one2.work1;

import java.util.Objects;

public class Card {

private String name;

private String flower;

private int num;

public Card() {

}

public Card(String name, String flower, int num) {

super();

this.name = name;

this.flower = flower;

this.num = num;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getFlower() {

return flower;

}

public void setFlower(String flower) {

this.flower = flower;

}

public int getNum() {

return num;

}

public void setNum(int num) {

this.num = num;

}

public String toString() {

if(Objects.nonNull(flower)){

return name+"-"+num+"-"+flower;

}

return name+"-"+num;

}

}

package com.softeem.lmg.one2.work1;

import java.util.ArrayList;

public class Player {

private int pid;

private String pname;

private boolean boss;

private ArrayList cards =new ArrayList<>();

public Player() {

}

public Player(int pid, String pname, boolean boss, ArrayList cards) {

super();

this.pid = pid;

this.pname = pname;

this.boss = boss;

this.cards = cards;

}

public int getPid() {

return pid;

}

public void setPid(int pid) {

this.pid = pid;

}

public String getPname() {

return pname;

}

public void setPname(String pname) {

this.pname = pname;

}

public boolean isBoss() {

return boss;

}

public void setBoss(boolean boss) {

this.boss = boss;

}

public ArrayList getCards() {

return cards;

}

public void setCards(ArrayList cards) {

this.cards = cards;

}

public String toString() {

return pname+(boss ? "(地主)" : "")+":"+cards;

}

}

package com.softeem.lmg.one2.work1;

import java.util.ArrayList;

import java.util.Random;

import java.util.Scanner;

public class GameManager {

private static ArrayList all=new ArrayList<>();

private static String[] names={"3","4","5","6","7","8","9","10","J","Q","K","A","2","Queen","King",};

private static String[] flowers={"紅桃","方塊","梅花","黑桃"};

private ArrayList players=new ArrayList<>();

private static Random randomGen=new Random();

static{

int i = 0;

for (; i < names.length-2; i++) {

for (int j = 0; j < flowers.length; j++) {

Card c=new Card(names[i], flowers[j], i);

all.add(c);

}

}

all.add(new Card(names[names.length-2],null,i++));

all.add(new Card(names[names.length-1],null,i++));

}

public void addPlayer(){

Scanner sc=new Scanner(System.in);

System.out.println("請輸入玩家1名稱");

String name1=sc.nextLine();

System.out.println("請輸入玩家2名稱");

String name2=sc.nextLine();

System.out.println("請輸入玩家3名稱");

String name3=sc.nextLine();

Player p1=new Player();

p1.setPid(1);

p1.setPname(name1);

Player p2=new Player();

p2.setPid(2);

p2.setPname(name2);

Player p3=new Player();

p3.setPid(3);

p3.setPname(name3);

players.add(p1);

players.add(p2);

players.add(p3);

}

public void randomBoss(){

addPlayer();

int i=randomGen.nextInt(players.size());

players.get(i).setBoss(true);

}

public ArrayList sendCard(){

randomBoss();

for (Player p : players) {

for (int i = 0; i < 17; i++) {

int cardIndex=randomGen.nextInt(all.size());

Card card=all.get(cardIndex);

p.getCards().add(card);

all.remove(card);

}

}

for (Player p : players) {

if(p.isBoss()){

p.getCards().addAll(all);

}

}

return players;

}

public static void main(String[] args) {

ArrayList players=new GameManager().sendCard();

for (Player pl : players) {

System.out.println(pl);

}

}

}

最後控制台結果:

java小程式撲克牌_java實作撲克牌牌面小程式

更多有趣的經典小遊戲實作專題,分享給大家:

以上就是本文的全部内容,希望對大家的學習有所幫助,也希望大家多多支援腳本之家。