java编写扑克牌比大小游戏_java的Collection工具类编写简单的扑克牌比大小

这个博客展示了如何使用Java实现一个简单的扑克牌游戏。首先,定义了扑克牌的花色和数字,然后创建并洗牌,分配给两个玩家。接着,比较两个玩家的最大牌,输出获胜者和各自的牌面。此代码适用于初级Java编程和游戏逻辑实现的学习。
摘要由CSDN通过智能技术生成

package com.example.poker;

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

import java.util.Random;

import java.util.Scanner;

public class PockerTest {

public String[] colorType = { "梅花", "草花", "方块", "红桃" };

public String[] number = { "A", "2", "3", "4", "5", "6", "7", "8", "9",

"J", "Q", "K" };

public List pockers;

public List pockerName;

public Scanner console;

public List pocke1;

public List pocke2;

public Player player1;

public Player player2;

public List player1Pockers;

public List player2Pockers;

public PockerTest() {

pockers = new ArrayList();

player1Pockers = new ArrayList();

player2Pockers = new ArrayList();

pockerName = new ArrayList();

console = new Scanner(System.in);

pocke1 = new ArrayList();

pocke2 = new ArrayList();

player1 = new Player();

player2 = new Player();

}

public void createPlayer() {

}

public void createPocker() {

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

for (int j = 0; j < 12; j++) {

// pockerName.add(colorType[i] + "" + number[j]);

Pocker pocker = new Pocker(colorType[i], number[j]);

pockers.add(pocker);

}

}

// Collections.shuffle(pockers);

}

public void deal() {

Collections.shuffle(pockers);

System.out.println("请输入Player1的ID:");

String playerID1 = console.next();

System.out.println("玩家" + playerID1 + "登入成功");

System.out.println("请输入Player2的ID:");

String playerID2 = console.next();

System.out.println("玩家" + playerID2 + "登入成功");

System.out.println("-------------游戏开始-----------------");

System.out.println("-------------开始发牌-----------------");

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

if (i == 0) {

System.out.println("玩家" + playerID1 + "拿牌");

Pocker pocker = pockers.get(i);

player1Pockers.add(pocker);

} else if (i == 1) {

System.out.println("玩家" + playerID2 + "拿牌");

Pocker pocker = pockers.get(i);

player2Pockers.add(pocker);

} else if (i == 2) {

System.out.println("玩家" + playerID1 + "拿牌");

Pocker pocker = pockers.get(i);

player1Pockers.add(pocker);

} else if (i == 3) {

System.out.println("玩家" + playerID2 + "拿牌");

Pocker pocker = pockers.get(i);

player2Pockers.add(pocker);

}

System.out.println("---------------发牌结束---------");

}

player1 = new Player(playerID1, player1Pockers);

player2 = new Player(playerID2, player2Pockers);

Pocker pocker1 = getTheLargestPoker(player1);

Pocker pocker2 = getTheLargestPoker(player2);

System.out.println(player1.id+"最大的牌为:"+pocker1.colorType+pocker1.number);

System.out.println(player2.id+"最大的牌为:"+pocker2.colorType+pocker2.number);

if(compare(pocker1,pocker2)){

System.out.println("获胜者:"+player1.id);

}else{

System.out.println("获胜者:"+player2.id);

}

System.out.println("玩家" + playerID1 + "牌为:"

+ player1.pocker.get(0).colorType + ""

+ player1.pocker.get(0).number + ","

+ player1.pocker.get(1).colorType + ""

+ player1.pocker.get(1).number);

System.out.println("玩家" + playerID2 + "牌为:"

+ player2.pocker.get(0).colorType + ""

+ player2.pocker.get(0).number + ","

+ player2.pocker.get(1).colorType + ""

+ player2.pocker.get(1).number);

}

public void createPockerName() {

System.out.println("----------------创建好牌------------");

for (Pocker pocker : pockers) {

// pockerName.add(pocker.colorType + pocker.number);

System.out.print(pocker.colorType + pocker.number+",");

}

System.out.println("");

}

public Boolean compare(Pocker o1, Pocker o2) {

// TODO Auto-generated method stub

String num = "345678910JQKA2";

String suit = "方片梅花红桃黑桃";

int numo1 = num.indexOf(o1.number);

int numo2 = num.indexOf(o2.number);

int colo1 = suit.indexOf(o1.colorType);

int colo2 = suit.indexOf(o2.colorType);

if (numo1 > numo2) {

return true;

} else if (numo1 < numo2) {

return false;

} else {

if (colo1 > colo2)

return true;

else

return false;

}

}

public Pocker getTheLargestPoker(Player one) {

Pocker p1 = one.pocker.get(0);

Pocker p2 = one.pocker.get(1);

if (compare(p1, p2))

return p1;

else

return p2;

}

public static void main(String args[]) {

PockerTest pt = new PockerTest();

pt.createPocker();

pt.createPockerName();

pt.deal();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单扑克牌比大小游戏Java 代码: ```java import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; public class PokerGame { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入玩家数量:"); int playerCount = scanner.nextInt(); scanner.nextLine(); // 读取换行符 List<String> deck = generateDeck(); Collections.shuffle(deck); // 洗牌 List<List<String>> players = new ArrayList<>(); for (int i = 0; i < playerCount; i++) { players.add(new ArrayList<>()); } for (int i = 0; i < 5; i++) { for (int j = 0; j < playerCount; j++) { String card = deck.remove(0); players.get(j).add(card); } } for (int i = 0; i < playerCount; i++) { System.out.printf("玩家%d的牌为:%s\n", i + 1, players.get(i)); } int maxScore = 0; int winner = -1; for (int i = 0; i < playerCount; i++) { int score = calculateScore(players.get(i)); System.out.printf("玩家%d的得分为:%d\n", i + 1, score); if (score > maxScore) { maxScore = score; winner = i; } } System.out.printf("玩家%d获胜!\n", winner + 1); } private static List<String> generateDeck() { List<String> deck = new ArrayList<>(); String[] suits = {"♠️", "♥️", "♣️", "♦️"}; String[] ranks = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"}; for (String suit : suits) { for (String rank : ranks) { deck.add(rank + suit); } } return deck; } private static int calculateScore(List<String> hand) { int score = 0; for (String card : hand) { String rank = card.substring(0, card.length() - 1); switch (rank) { case "J": case "Q": case "K": score += 10; break; case "A": score += 11; break; default: score += Integer.parseInt(rank); } } return score; } } ``` 运行程序后,首先要输入玩家数量,然后程序自动洗牌、发牌、计算得分和比较大小,最后输出获胜玩家。每个玩家的牌和得分也会被输出。 这个简单扑克牌比大小游戏只考虑了单张牌的大小,没有考虑花色和牌型等因素。如果需要更加复杂的游戏规则,可以在此基础上进行扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值