java斗地主发牌编写

package Day4;

import java.util.*;

public class Test5 {
    public static void main(String[] args) {
        Map<String,Integer> map = new HashMap<>();
        List<String> list = new ArrayList<>();
        Collections.addAll(list,"乌拉圭","俄罗斯","西班牙","葡萄牙","法国","丹麦","克罗地亚","阿根廷","巴西","瑞士","瑞典","墨西哥","比利时","英格兰","哥伦比亚","中国");
        System.out.println(list);
        for(int i=1;i<17;i++)
        {
            System.out.print(list.get(i-1));
            if(i%4==0)
             System.out.println();
        }
        List<Integer> list1 =new ArrayList<>();
        Collections.shuffle(list1);//工具类shuffle用来打乱扑克牌!
        List<Integer> class1=new ArrayList<>();
        List<Integer> class2=new ArrayList<>();
        List<Integer> class3=new ArrayList<>();
        List<Integer> class4=new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            if (i % 4 == 0) {
                class1.add(list1.get(i));
            } else if (i % 4 == 1) {
                class2.add(list1.get(i));
            } else if (i % 4 == 2) {
                class3.add(list1.get(i));
            } else if (i % 4 == 3) {
                class4.add(list1.get(i));
            }
        }
        System.out.println("甲组"+class1);
        System.out.println("乙组"+class2);
        System.out.println("丙组"+class3);
        System.out.println("丁组"+class4);

        ArrayList<String> dipai1 = new ArrayList<>();
        ArrayList<String> player1 = new ArrayList<>();
        ArrayList<String> player2 = new ArrayList<>();
        ArrayList<String> player3 = new ArrayList<>();

        for (Integer integer: class1) {
            dipai1.add(list.get(integer));
        }
        System.out.println(dipai1);

        for (Integer integer:class2) {
            player1.add(list.get(integer));
        }
        System.out.println(player1);

        for (Integer integer: class3) {
            player2.add(list.get(integer));
        }
        System.out.println(player2);

        for (Integer integer:class4) {
            player3.add(list.get(integer));
        }
        System.out.println(player3);

    }
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
斗地主是一款非常经典的扑克牌游戏,下面是一个简单的 Java 实现斗地主的示例代码: ```java import java.util.ArrayList; import java.util.Collections; import java.util.Random; import java.util.Scanner; public class DouDiZhu { private static final int NUM_CARDS = 54; private static final int NUM_PLAYERS = 3; private static final int NUM_CARDS_EACH = 17; private static final int CARD_WIDTH = 5; private static final int CARD_HEIGHT = 7; private static final int CARD_BLANK = 3; private static final String[] CARD_VALUES = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2", "小王", "大王"}; private static final String[] CARD_SUITS = {"♠", "♥", "♣", "♦"}; private ArrayList<Integer> cards; private ArrayList<Integer>[] players; private int landlord; private Scanner scanner; public DouDiZhu() { cards = new ArrayList<>(); players = new ArrayList[NUM_PLAYERS]; for (int i = 0; i < NUM_PLAYERS; i++) { players[i] = new ArrayList<>(); } scanner = new Scanner(System.in); } public void start() { initCards(); shuffleCards(); dealCards(); chooseLandlord(); playCards(); } private void initCards() { for (int i = 0; i < NUM_CARDS; i++) { cards.add(i); } } private void shuffleCards() { Collections.shuffle(cards, new Random()); } private void dealCards() { for (int i = 0; i < NUM_PLAYERS; i++) { for (int j = 0; j < NUM_CARDS_EACH; j++) { players[i].add(cards.remove(0)); } } } private void chooseLandlord() { System.out.println("请选择地主:"); System.out.println("1.玩家1"); System.out.println("2.玩家2"); System.out.println("3.玩家3"); int choice = scanner.nextInt(); while (choice < 1 || choice > 3) { System.out.println("选择无效,请重新选择:"); choice = scanner.nextInt(); } landlord = choice - 1; System.out.println("玩家" + (landlord + 1) + "成为了地主,手牌为:"); printCards(players[landlord]); } private void playCards() { int currentPlayer = landlord; boolean gameOver = false; while (!gameOver) { if (players[currentPlayer].isEmpty()) { System.out.println("玩家" + (currentPlayer + 1) + "获胜!"); gameOver = true; break; } System.out.println("轮到玩家" + (currentPlayer + 1) + "出牌,手牌为:"); printCards(players[currentPlayer]); System.out.print("请输入要出的牌(用逗号分隔,如 1,2,3):"); String input = scanner.next(); String[] cardStrings = input.split(","); ArrayList<Integer> cards = new ArrayList<>(); for (String cardString : cardStrings) { try { int card = Integer.parseInt(cardString) - 1; if (card >= 0 && card < players[currentPlayer].size()) { cards.add(players[currentPlayer].get(card)); players[currentPlayer].remove(card); } } catch (NumberFormatException e) { // ignore } } if (cards.isEmpty()) { System.out.println("出牌无效,请重新输入!"); continue; } System.out.println("玩家" + (currentPlayer + 1) + "出的牌为:"); printCards(cards); currentPlayer = (currentPlayer + 1) % NUM_PLAYERS; } } private void printCards(ArrayList<Integer> cards) { for (int i = 0; i < cards.size(); i++) { int card = cards.get(i); System.out.print(getCardString(card)); if (i < cards.size() - 1) { System.out.print(","); } } System.out.println(); } private void printCards(int[] cards) { for (int i = 0; i < cards.length; i++) { System.out.print(getCardString(cards[i])); if (i < cards.length - 1) { System.out.print(","); } } System.out.println(); } private String getCardString(int card) { int value = card / 4; int suit = card % 4; String result = CARD_VALUES[value] + CARD_SUITS[suit]; if (value == 13) { result = CARD_VALUES[value + suit] + CARD_SUITS[suit]; } return result; } public static void main(String[] args) { DouDiZhu game = new DouDiZhu(); game.start(); } } ``` 这个程序实现了斗地主的基本逻辑,包括初始化牌组、洗牌、发牌、选择地主和出牌等操作。游戏中每个玩家的手牌由一个整数列表表示,每张牌用一个整数表示,整数的值为 0 到 53,分别表示扑克牌的 54 种可能。程序还提供了简单的命令行界面,使玩家可以选择出牌,从而体验斗地主的乐趣。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值