Java随机播放卡座

编程入门 行业动态 更新时间:2024-10-28 06:25:27
本文介绍了Java随机播放卡座的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我在获取我的代码来洗牌时遇到了问题。我认为我具有collections.shuffle的语法错误。我目前拥有的代码没有改组。请在下面找到卡片组和卡组。卡座类包含collections.shuffle方法。

I am having problem getting my code to shuffle the deck. I think i have the syntax for collections.shuffle wrong. The code I currently have is not shuffling the deck. Below please find the deck class and the card class. The deck class holds the collections.shuffle method.

甲板等级

public class Deck { private Card[] deck = new Card[52]; private int topCard; Deck() { topCard = 0; for (int i = 0; i < deck.length; i++) deck[i] = new Card(i); } public void shuffle() { topCard = 0; Collections.shuffle(Arrays.asList(deck)); } public Card dealCard() { Card theCard; if (topCard < deck.length) { theCard = deck[topCard]; topCard++; } else theCard = null; return theCard; } }

卡级别

public class Card { private int cardNum; final static String[] suits = {"Spades", "Hearts", "Diamonds", "Clubs"}; final static String[] ranks = {"Ace", "2", "3","4","5","6","7","8", "9","10", "Jack", "Queen", "King"}; Card (int theCard) { setCardNum (theCard); } public void setCardNum (int theCard) { cardNum = (theCard >= 0 && theCard <= 52)? theCard: 0; } public int getCardNum() { return cardNum; } public String toString() { return ranks[cardNum%13] + " of " + suits[cardNum/13]; } public String getSuit() { return suits[cardNum/13]; } public String getRank() { return ranks[cardNum%13]; } public int getValue() { return cardNum%13; } }

推荐答案

此处是一个类似问题的示例代码,在该示例中,我们被要求不要使用任何内置函数来洗牌,而被允许使用Math.random()。

Here is a sample code for a similar question where we were asked not to use any built-in function to shuffle the deck but was allowed to use Math.random().

import java.util.*; class Card { private String rank; private String suit; public Card(String r,String s) { rank=r; suit=s; } public String getRank() { return rank; } public String getSuit() { return suit; } public String toString() { return rank+" of "+suit; } } class Deck { private ArrayList<Card> deck; private String[] ranks ={"ACE","2","3","4","5","6","7","8","9","10","JACK","QUEEN","KING"}; private String[] suits ={"SPADE","HEART","CLUB","DIAMOND"}; public Deck() { deck = new ArrayList<Card>(); for(int i=0;i<suits.length;i++) { for(int j=0;j<ranks.length;j++) { deck.add(new Card(ranks[j],suits[i])); } } } public void showCards() { System.out.println("\n\n Showing Cards !!!"); int i=1; for(Card c:deck) { System.out.println("Card "+(i++)+" : "+c); } } public void shuffle() { ArrayList<Card> temp = new ArrayList<Card>(); while(!deck.isEmpty()) { int loc=(int)(Math.random()*deck.size()); temp.add(deck.get(loc)); deck.remove(loc); } deck=temp; } } public class Game { public static void main(String[] args) { Deck myDeck = new Deck(); myDeck.showCards(); myDeck.shuffle(); myDeck.showCards(); } }

更多推荐

Java随机播放卡座

本文发布于:2023-10-28 08:12:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1536052.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:卡座   Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!