「java编写发牌」用java编写一个扑克牌的程序
今天给各位分享java编写发牌的知识,其中也会对用java编写一个扑克牌的程序进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java斗地主发牌程序
- 2、急急急!高分请求Java编程 做一个发牌的程序
- 3、JAVA 编写一个发牌小程序 如何避免同一花色统一大小的牌出现
- 4、java如何写斗地主,只有发牌,出牌动作即可
- 5、用java程序编写一个发牌的程序。。。跪求了。。。。
- 6、用java ArrayList集合编写扑克牌洗牌与发牌
java斗地主发牌程序
DeckOfCards()构造函数里面,注释掉的
//deck[count]=new Card(faces[count%13],suits[count/13]);
是对的,下面那行除17是错的
另外,没有把大小王赋值到数组里
最后main函数里,打印方法错了。应该为,原本少了一个%-20s
System.out.printf("%-20s%-20s%-20s\n", myDeckOfCards.dealCard(), myDeckOfCards.dealCard(), myDeckOfCards.dealCard());
发牌完成以后剩下的3张牌就是保留的底牌
急急急!高分请求Java编程 做一个发牌的程序
哈哈哈,又是一个不想写作业的,先占个位置,我去看看先
密歇根科大,这个学校的cs怎么样啊,在芝加哥吗
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class CardShuffler {
class CardArray{
ListCard cards;
Iterator itCard;
public CardArray() {
super();
}
public CardArray(ListCard cards) {
super();
this.cards = Collections.synchronizedList(new ArrayListCard());
this.cards.addAll(cards);
itCard = this.cards.iterator();
}
public CardArray initialCards(int numberOfDeck){
int xNumberOfDeck = numberOfDeck%6+1;
cards = new ArrayListCard();
for(int i=0;ixNumberOfDeck;i++){
cards.addAll(createOneDeck());
}
itCard = cards.iterator();
return this;
}
public ArrayListCard createOneDeck(){
ArrayListCard result= new ArrayListCard();
for(int j=2;j15;j++){ result.add(new Card('S',j)); }
for(int j=2;j15;j++){ result.add(new Card('H',j)); }
for(int j=2;j15;j++){ result.add(new Card('D',j)); }
for(int j=2;j15;j++){ result.add(new Card('C',j)); }
return result;
}
public CardArray CardcargetFirstHalf(){
return new CardArray(cards.subList(0, cards.size()/2));
}
public CardArray CardcargetSecondHalf(){
return new CardArray(cards.subList(cards.size()/2+1, cards.size()));
}
public synchronized ListCard getThefollowingXCards(int numberOfCard){
ListCard result = Collections.synchronizedList(new ArrayListCard());
while(getItCard().hasNext()numberOfCard0){
Card x = (Card)getItCard().next();
result.add(x);
numberOfCard--;
}
return result;
}
public String toString(){
StringBuffer sb = new StringBuffer();
for(int i = 0 ; i getCards().size() ; i++){
sb.append(getCards().get(i));
}
return sb.toString();
}
public boolean isEmpty(){
return getCards().isEmpty();
}
public void addCards(ListCard cards){
getCards().addAll(cards);
}
public void addCards(CardArray cardArray){
getCards().addAll(cardArray.getCards());
}
//getters and setters
public Iterator getItCard() {
return itCard;
}
public void setItCard(Iterator itCard) {
this.itCard = itCard;
}
public ListCard getCards() {
return cards;
}
public void setCards(ListCard cards) {
this.cards = cards;
}
}
class Card{
char type='S';//Spade,Dimond,Heart,C...
int rank=2;//A=14,K=13,Q=12,....2=2
public int getRank() {
return rank;
}
public void setRank(int rank) {
this.rank = rank;
}
public char getType() {
return type;
}
public void setType(char type) {
this.type = type;
}
public Card(char type, int rank) {
super();
this.type = type;
this.rank = rank;
}
public String toString(){
return String.valueOf(getType())+String.valueOf(getRank());
}
}
public static int calculateNextX(int lastX){
return (5*lastX)%16 + 1;
}
public void testCreateAllCards(int numberOfDeck){
CardArray tmp = new CardArray();
tmp.initialCards(numberOfDeck);
System.out.println(tmp);
}
public void halfCards(){
int numberOfDeck = 1;
CardArray tmp = new CardArray();
tmp.initialCards(numberOfDeck);
System.out.println("the first half:\n"+tmp.CardcargetFirstHalf());
System.out.println("the second half:\n"+tmp.CardcargetSecondHalf());
}
public static CardArray shuffle(CardArray cardArray,int seed){
CardArray first = cardArray.CardcargetFirstHalf();
CardArray second = cardArray.CardcargetSecondHalf();
CardArray total = null;
int numberOfCard = calculateNextX(seed);
if(first!=null!first.isEmpty()second!=null!second.isEmpty()){
total = new CardShuffler().new CardArray(first.getThefollowingXCards(numberOfCard));
total.addCards(second.getThefollowingXCards(numberOfCard));
}
while(first.getItCard().hasNext()second.getItCard().hasNext()){
numberOfCard = calculateNextX(numberOfCard);
total.addCards(first.getThefollowingXCards(numberOfCard));
total.addCards(second.getThefollowingXCards(numberOfCard));
}
/*while(first.getItCard().hasNext()){
numberOfCard = calculateNextX(numberOfCard);
total.addCards(first.getThefollowingXCards(numberOfCard));
}
while(second.getItCard().hasNext()){
numberOfCard = calculateNextX(numberOfCard);
total.addCards(first.getThefollowingXCards(numberOfCard));
}//it is not quite possible to occur the situation that one deck is more or less than the other one*/
System.out.println("shuffled cards:\n"+total.toString());
return total;
}
public static void main(String arg[]){
System.out.println(shuffle(new CardShuffler().new CardArray().initialCards(1), 23));
}
}
JAVA 编写一个发牌小程序 如何避免同一花色统一大小的牌出现
给你说说算法思路吧。(C#,不会java,不过他俩有区别么)
首先,按顺序把一副牌放入一个数组里pai[] a = new pai[54]。
然后用循环随机交换牌:
random rm = new random();
for(int i=0;i27;i++)
{
int r = rm.next(27,55);
pai tmp = a[i];
a[i] = a[r];
a[r] = a[i];
}
然后在顺次分发出去,应该可以看成分发给1个2维数组
int n;//玩家数
pai[,] wanjia = new pai[n,54/n+1];
int k=0;
for(int i=0;i54/n;i++)
{
for(int j=0;jn;j++)
{
wanjia[j,i]=a[k++];
}
}
这样就分发完成了
java如何写斗地主,只有发牌,出牌动作即可
可以采用JLabel控件,然后把控件显示为相应的图片,设一个结构体,保存各个图片控件的坐标,鼠标点击后,改变相应的图片控件的坐标,然后弄一个结构体数组储存整个牌组的的纸牌信息,调用一个封装好的显示函数,来更新一整个牌组。不知道能不能对单个牌进行鼠标响应,不过我没有想出来要怎么实现,只好每次改变都把整个牌组重绘一下。
用java程序编写一个发牌的程序。。。跪求了。。。。
1、设计二维数组a[13][4],13代表2,3,4,5,...,K,A , 4代表红黑方梅 13*4=52
2、这样a[0][0]就是红桃2,a[12][3]就是梅花A
按照这么来随机发牌就很简单了,直接随机个一个a[i][j]就可以了。i和j都分别在13和4以内
思路明确了,代码还是自己写比较好
用java ArrayList集合编写扑克牌洗牌与发牌
import java.util.ArrayList;
import java.util.Random;
public class PokerDemo {
ArrayListCard poker = new ArrayListCard();
Player[] players;
int n = 4;
String[] name = {"Wang", "Zhang", "Li", "Yuan"};
public PokerDemo() {
players = new Player[n];
for(int i = 0; i players.length; i++)
players[i] = new Player(name[i]);
for(int i = 0; i 4; i++)
for(int j = 0; j 13; j++)
poker.add(new Card(i, j));
System.out.println("洗牌前: " + poker);
xipai();
System.out.println("洗牌后: " + poker);
fapai();
System.out.println("发牌后: ");
for(int i = 0; i players.length; i++)
System.out.println(players[i]);
}
public void xipai() {
Random r = new Random();
ArrayListCard tmp = new ArrayListCard();
while(!poker.isEmpty()) {
int index = r.nextInt(poker.size());
Card card = poker.get(index);
tmp.add(card);
poker.remove(index);
}
poker = new ArrayListCard(tmp);
}
public void fapai() {
int p = 0;
while(!poker.isEmpty()) {
Card card = poker.get(0);
players[p].add(card);
p = (p + 1) % n;
poker.remove(0);
}
}
public static void main(String[] args) {
new PokerDemo();
}
}
class Card {
int val, sty;
final String[] value = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};
final String[] style = {"黑桃", "红心", "梅花", "方块"};
public Card(int s, int v) {
sty = s;
val = v;
}
public String toString() {
return style[sty]+ " " + value[val];
}
}
class Player {
ArrayListCard cards = new ArrayListCard();
String name;
public Player(String n) {
name = n;
}
public void add(Card card) {
cards.add(card);
}
public String toString() {
return name + ":\t" + cards;
}
}
关于java编写发牌和用java编写一个扑克牌的程序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。