新学JAVA,求大哥们帮写一下发牌程序。。。 本帖最后由 richarlin1987 于 2010-06-18 23:37:26 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.util.Random;public class Poker {public static void main(String args[]) throws Exception { Random random = new Random();int[] poker = getPoker();int j = 0;int temp =0;for (int i = 0; i < 52; i++) { temp = poker[i]; j = random.nextInt(52); poker[i] = poker[j]; poker[j] = temp;} String A = "A:"; String B = "B:"; String C = "C:"; String D = "D:";for(int i = 0;i<52 ;i++){if(i%4==0){ A+=getColor(poker[i])+format(poker[i]%13)+"\t";}if(i%4==1){ B+=getColor(poker[i])+format(poker[i]%13)+"\t";}if(i%4==2){ C+=getColor(poker[i])+format(poker[i]%13)+"\t";}if(i%4==3){ D+=getColor(poker[i])+format(poker[i]%13)+"\t";}} System.out.println(A); System.out.println(B); System.out.println(C); System.out.println(D); } public static String getColor(int i ){if((i-1)/13==0){return "红桃:";}else if((i-1)/13==1){return "黑桃:";}else if((i-1)/13==2){return "方块:";}else{return "梅花:";}} public static String format(int i ){if(i==11){return "J";}else if(i==12){return "Q";}else if (i == 0){return "K";}else{return String.valueOf(i);}}public static int[] getPoker() {int[] poker = new int[52];for (int i = 0; i < 52; i++) { poker[i] = i + 1;}return poker;}} http://www.java3z.com/cwbwebhome/article/article5/5579.html?id=885这个好 不知道可以不/* * file: PlayPoker.java * class: PlayPoker * * description: * * @author: leisore * @version: V1.0.0 */package cn.leisore.daily._2010_06_21;import java.lang.reflect.Array;import java.util.Random;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import javax.swing.JTextArea;public class PlayPoker { private Thread master = null; private Thread[] players = null; public PlayPoker(JTextArea[] text) { BlockingQueue<Integer>[] pokerQueues = (BlockingQueue<Integer>[]) Array .newInstance(BlockingQueue.class, 4); for (int i = 0; i < 4; i++) { pokerQueues[i] = new ArrayBlockingQueue<Integer>(13); } master = new Thread(new Master(pokerQueues)); players = new Thread[4]; for (int i = 0; i < 4; i++) { players[i] = new Thread(new Player(pokerQueues[i], text[i])); } } public void start() { master.start(); for (Thread t : players) { t.start(); } } public void stop() { master.interrupt(); for (Thread t : players) { t.interrupt(); } } public static void main(String[] args) { /* * PlayPoker p = new PlayPoker(); p.start(); */ } public static class Master implements Runnable { final int[] pokers = new int[52]; final Random rand = new Random(); final BlockingQueue<Integer>[] pokerQueues; Master(BlockingQueue<Integer>[] pokerQueue) { this.pokerQueues = pokerQueue; initPokers(); } private void initPokers() { for (int i = 1; i < 53; i++) { pokers[i - 1] = i; } } private void swap(int i, int j) { int temp = pokers[i]; pokers[i] = pokers[j]; pokers[j] = temp; } private void washPoker() { for (int t = 0; t < 52; t++) { int i = Math.abs(rand.nextInt(52)); int j = Math.abs(rand.nextInt(52)); swap(i, j); } } private void sendPoker() { for (int t = 0; t < 52; t++) { try { pokerQueues[t % 4].put(pokers[t]); Thread.sleep(1 * 1000); } catch (InterruptedException e) { e.printStackTrace(); } } } public void run() { while (true) { washPoker(); sendPoker(); } } } public static class Player implements Runnable { static int idCounter = 0; int id = idCounter++; int pokerCount = 0; final int[] pokers = new int[13]; final BlockingQueue<Integer> pokerQueue; final private JTextArea textarea; Player(BlockingQueue<Integer> pokerQueue, JTextArea textarea) { this.pokerQueue = pokerQueue; this.textarea = textarea; } public void run() { try { while (true) { int poker = pokerQueue.take(); Thread.sleep(1000); pokers[pokerCount++ % 13] = poker; textarea.append(poker + " "); if (pokerCount % 8 == 0 || pokerCount % 13 == 0) { textarea.append("\n"); } } } catch (InterruptedException e) { e.printStackTrace(); } } public void replay() { textarea.setText(""); } }} ui:package cn.leisore.daily._2010_06_21;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.GroupLayout;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.LayoutStyle;import javax.swing.SwingUtilities;import javax.swing.WindowConstants;public class PlayPokerUI extends JFrame { PlayPoker p = null; public PlayPokerUI() { initComponents(); } private void initComponents() { jScrollPane1 = new JScrollPane(); poker1 = new JTextArea(); jScrollPane2 = new JScrollPane(); poker2 = new JTextArea(); jScrollPane3 = new JScrollPane(); poker3 = new JTextArea(); jScrollPane4 = new JScrollPane(); poker4 = new JTextArea(); start = new JButton(); stop = new JButton(); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setName("Poker"); setResizable(false); jScrollPane1.setName("jScrollPane1"); poker1.setColumns(16); poker1.setRows(5); poker1.setName("poker1"); jScrollPane1.setViewportView(poker1); jScrollPane2.setName("jScrollPane2"); poker2.setColumns(16); poker2.setRows(5); poker2.setName("poker2"); jScrollPane2.setViewportView(poker2); jScrollPane3.setName("jScrollPane3"); poker3.setColumns(16); poker3.setRows(5); poker3.setName("poker3"); jScrollPane3.setViewportView(poker3); jScrollPane4.setName("jScrollPane4"); poker4.setColumns(16); poker4.setRows(5); poker4.setName("poker4"); jScrollPane4.setViewportView(poker4); start.setText("start"); start.setName("start"); start.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (p == null) { p = new PlayPoker(new JTextArea[] { poker1, poker2, poker3, poker4 }); p.start(); } } }); stop.setText("stop"); stop.setName("stop"); stop.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (p != null) { p.stop(); p = null; } } }); GroupLayout layout = new GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout .setHorizontalGroup(layout .createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup( layout .createSequentialGroup() .addGroup( layout .createParallelGroup( GroupLayout.Alignment.LEADING) .addGroup( layout .createSequentialGroup() .addContainerGap() .addGroup( layout .createParallelGroup( GroupLayout.Alignment.LEADING) .addComponent( jScrollPane1, GroupLayout.PREFERRED_SIZE, 193, GroupLayout.PREFERRED_SIZE) .addComponent( jScrollPane3, GroupLayout.PREFERRED_SIZE, 193, GroupLayout.PREFERRED_SIZE)) .addGap( 10, 10, 10) .addGroup( layout .createParallelGroup( GroupLayout.Alignment.LEADING) .addComponent( ui: jScrollPane2, GroupLayout.PREFERRED_SIZE, 201, GroupLayout.PREFERRED_SIZE) .addComponent( jScrollPane4, GroupLayout.PREFERRED_SIZE, 201, GroupLayout.PREFERRED_SIZE))) .addGroup( layout .createSequentialGroup() .addGap( 79, 79, 79) .addComponent( start) .addGap( 106, 106, 106) .addComponent( stop))) .addContainerGap( GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); layout.setVerticalGroup(layout.createParallelGroup( GroupLayout.Alignment.LEADING).addGroup( layout.createSequentialGroup().addContainerGap().addGroup( layout.createParallelGroup( GroupLayout.Alignment.LEADING).addComponent( jScrollPane1, GroupLayout.PREFERRED_SIZE, 137, GroupLayout.PREFERRED_SIZE).addComponent( jScrollPane4, GroupLayout.DEFAULT_SIZE, 137, Short.MAX_VALUE)).addPreferredGap( LayoutStyle.ComponentPlacement.RELATED).addGroup( layout.createParallelGroup( GroupLayout.Alignment.LEADING, false) .addComponent(jScrollPane2, GroupLayout.Alignment.TRAILING) .addComponent(jScrollPane3, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 137, Short.MAX_VALUE)).addPreferredGap( LayoutStyle.ComponentPlacement.RELATED, 21, Short.MAX_VALUE).addGroup( layout.createParallelGroup( GroupLayout.Alignment.BASELINE).addComponent( start).addComponent(stop)).addContainerGap())); pack(); } public static void main(String args[]) { SwingUtilities.invokeLater(new Runnable() { public void run() { new PlayPokerUI().setVisible(true); } }); } private JScrollPane jScrollPane1; private JScrollPane jScrollPane2; private JScrollPane jScrollPane3; private JScrollPane jScrollPane4; private JTextArea poker1; private JTextArea poker2; private JTextArea poker3; private JTextArea poker4; private JButton start; private JButton stop;} 先洗牌,利用随机数就行了import java.util.*;public class TestCard { /** * 随机发牌程序 */ public static void main(String[] args) { String[] shape={"红桃","黑桃","梅花","方片"}; String[] nums={"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; String[] hands={"玩家一:","玩家二:","玩家三:","玩家四:"}; String[] cards=new String[52]; int k=0; //下面循环用于产生一副牌 for(int i=0;i<shape.length;i++){ for(int j=0;j<nums.length;j++){ cards[k++]=shape[i]+nums[j]; } } Random r=new Random(); int next=r.nextInt(51)+1; //将牌的顺序打乱 for(int i=0;i<52;i++){ String temp=""; //用于和数组的第一个元素进行交换 temp=cards[0]; cards[0]=cards[next]; cards[next]=temp; next=r.nextInt(51)+1; } //下面的循环用于发牌hands int j=0; for(int i=0;i<cards.length;i++){ if(i%13==0){ System.out.print(hands[j]); } System.out.print(cards[i]+" "); if((i+1)%13==0){ System.out.println(); j++; } } }} import java.util.ArrayList;import java.util.Collections;import java.util.List;public class CardShuffle { public static void main(String[] args) { List list=new ArrayList(); String[] players={"小王","小张","小赵","小白"}; String[] f={"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; String[] s={"♥","♣","♦","♠"}; for(int i=0;i<s.length;i++) { for(int j=0;j<f.length;j++) { list.add(s[i]+f[j]); } } Collections.shuffle(list); for(int i=0;i<players.length;i++) { System.out.print(players[i]+"的手牌是"); System.out.println(dealHand(list, 13)); } } public static List dealHand(List Ls,int n){ int sizePai = Ls.size(); List handView = Ls.subList(sizePai - n, sizePai); List hand = new ArrayList(handView); handView.clear(); return hand; }} 小弟刚学java过来看看,学习一下。 不就是发牌嘛,不用那么复杂。。System.out.println("开始发牌!!");for(int i=0;i<18;i++){System.out.println("你的");System.out.println("他的");System.out.println("我的");}System.out.println("发完了!!"); 求教一个关于jmf的DataSource类的问题 发布简历一些问题 多线程连接MySQL数据库,报 Communications link failure 本人日语2级 一年java开发经验 能在大连找到多少钱的工作 初学swing有问题? 如何让新生成的窗口,显示于最前端? 关于jar包的运行 在JAVA中如何打开帮助文档? Applet的问题?到家门了就进来看看吧,发言者有分~~~~ 请回答我的问题。谢谢 类加载 eclipse上运行正常,导出后图像不显示是怎么回事?
public static void main(String args[]) throws Exception {
Random random = new Random();
int[] poker = getPoker();
int j = 0;
int temp =0;
for (int i = 0; i < 52; i++) {
temp = poker[i];
j = random.nextInt(52);
poker[i] = poker[j];
poker[j] = temp;
}
String A = "A:";
String B = "B:";
String C = "C:";
String D = "D:";
for(int i = 0;i<52 ;i++){
if(i%4==0){
A+=getColor(poker[i])+format(poker[i]%13)+"\t";
}
if(i%4==1){
B+=getColor(poker[i])+format(poker[i]%13)+"\t";
}
if(i%4==2){
C+=getColor(poker[i])+format(poker[i]%13)+"\t";
}
if(i%4==3){
D+=getColor(poker[i])+format(poker[i]%13)+"\t";
}
}
System.out.println(A);
System.out.println(B);
System.out.println(C);
System.out.println(D);
}
public static String getColor(int i ){
if((i-1)/13==0){
return "红桃:";
}else if((i-1)/13==1){
return "黑桃:";
}else if((i-1)/13==2){
return "方块:";
}else{
return "梅花:";
}
}
public static String format(int i ){
if(i==11){
return "J";
}else if(i==12){
return "Q";
}else if (i == 0){
return "K";
}else{
return String.valueOf(i);
}
}public static int[] getPoker() {
int[] poker = new int[52];
for (int i = 0; i < 52; i++) {
poker[i] = i + 1;
}
return poker;
}
}
* file: PlayPoker.java
* class: PlayPoker
*
* description:
*
* @author: leisore
* @version: V1.0.0
*/
package cn.leisore.daily._2010_06_21;import java.lang.reflect.Array;
import java.util.Random;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;import javax.swing.JTextArea;public class PlayPoker { private Thread master = null;
private Thread[] players = null; public PlayPoker(JTextArea[] text) {
BlockingQueue<Integer>[] pokerQueues = (BlockingQueue<Integer>[]) Array
.newInstance(BlockingQueue.class, 4);
for (int i = 0; i < 4; i++) {
pokerQueues[i] = new ArrayBlockingQueue<Integer>(13);
} master = new Thread(new Master(pokerQueues));
players = new Thread[4];
for (int i = 0; i < 4; i++) {
players[i] = new Thread(new Player(pokerQueues[i], text[i]));
}
} public void start() {
master.start();
for (Thread t : players) {
t.start();
}
} public void stop() {
master.interrupt();
for (Thread t : players) {
t.interrupt();
}
} public static void main(String[] args) {
/*
* PlayPoker p = new PlayPoker(); p.start();
*/
} public static class Master implements Runnable { final int[] pokers = new int[52];
final Random rand = new Random();
final BlockingQueue<Integer>[] pokerQueues; Master(BlockingQueue<Integer>[] pokerQueue) {
this.pokerQueues = pokerQueue;
initPokers();
} private void initPokers() {
for (int i = 1; i < 53; i++) {
pokers[i - 1] = i;
}
} private void swap(int i, int j) {
int temp = pokers[i];
pokers[i] = pokers[j];
pokers[j] = temp;
} private void washPoker() {
for (int t = 0; t < 52; t++) {
int i = Math.abs(rand.nextInt(52));
int j = Math.abs(rand.nextInt(52));
swap(i, j);
}
} private void sendPoker() {
for (int t = 0; t < 52; t++) {
try {
pokerQueues[t % 4].put(pokers[t]);
Thread.sleep(1 * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
} public void run() {
while (true) {
washPoker();
sendPoker();
}
}
} public static class Player implements Runnable { static int idCounter = 0;
int id = idCounter++;
int pokerCount = 0;
final int[] pokers = new int[13];
final BlockingQueue<Integer> pokerQueue;
final private JTextArea textarea; Player(BlockingQueue<Integer> pokerQueue, JTextArea textarea) {
this.pokerQueue = pokerQueue;
this.textarea = textarea;
} public void run() {
try {
while (true) {
int poker = pokerQueue.take();
Thread.sleep(1000);
pokers[pokerCount++ % 13] = poker;
textarea.append(poker + " ");
if (pokerCount % 8 == 0 || pokerCount % 13 == 0) {
textarea.append("\n");
}
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public void replay() {
textarea.setText("");
}
}
}
import java.awt.event.ActionListener;import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.LayoutStyle;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;public class PlayPokerUI extends JFrame {
PlayPoker p = null; public PlayPokerUI() {
initComponents();
} private void initComponents() { jScrollPane1 = new JScrollPane();
poker1 = new JTextArea();
jScrollPane2 = new JScrollPane();
poker2 = new JTextArea();
jScrollPane3 = new JScrollPane();
poker3 = new JTextArea();
jScrollPane4 = new JScrollPane();
poker4 = new JTextArea();
start = new JButton();
stop = new JButton(); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setName("Poker");
setResizable(false); jScrollPane1.setName("jScrollPane1"); poker1.setColumns(16);
poker1.setRows(5);
poker1.setName("poker1");
jScrollPane1.setViewportView(poker1); jScrollPane2.setName("jScrollPane2"); poker2.setColumns(16);
poker2.setRows(5);
poker2.setName("poker2");
jScrollPane2.setViewportView(poker2); jScrollPane3.setName("jScrollPane3"); poker3.setColumns(16);
poker3.setRows(5);
poker3.setName("poker3");
jScrollPane3.setViewportView(poker3); jScrollPane4.setName("jScrollPane4"); poker4.setColumns(16);
poker4.setRows(5);
poker4.setName("poker4");
jScrollPane4.setViewportView(poker4); start.setText("start");
start.setName("start");
start.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (p == null) {
p = new PlayPoker(new JTextArea[] { poker1, poker2, poker3,
poker4 });
p.start();
}
}
}); stop.setText("stop");
stop.setName("stop");
stop.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
if (p != null) {
p.stop();
p = null;
}
}
}); GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout
.setHorizontalGroup(layout
.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(
layout
.createSequentialGroup()
.addGroup(
layout
.createParallelGroup(
GroupLayout.Alignment.LEADING)
.addGroup(
layout
.createSequentialGroup()
.addContainerGap()
.addGroup(
layout
.createParallelGroup(
GroupLayout.Alignment.LEADING)
.addComponent(
jScrollPane1,
GroupLayout.PREFERRED_SIZE,
193,
GroupLayout.PREFERRED_SIZE)
.addComponent(
jScrollPane3,
GroupLayout.PREFERRED_SIZE,
193,
GroupLayout.PREFERRED_SIZE))
.addGap(
10,
10,
10)
.addGroup(
layout
.createParallelGroup(
GroupLayout.Alignment.LEADING)
.addComponent(
GroupLayout.PREFERRED_SIZE,
201,
GroupLayout.PREFERRED_SIZE)
.addComponent(
jScrollPane4,
GroupLayout.PREFERRED_SIZE,
201,
GroupLayout.PREFERRED_SIZE)))
.addGroup(
layout
.createSequentialGroup()
.addGap(
79,
79,
79)
.addComponent(
start)
.addGap(
106,
106,
106)
.addComponent(
stop)))
.addContainerGap(
GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)));
layout.setVerticalGroup(layout.createParallelGroup(
GroupLayout.Alignment.LEADING).addGroup(
layout.createSequentialGroup().addContainerGap().addGroup(
layout.createParallelGroup(
GroupLayout.Alignment.LEADING).addComponent(
jScrollPane1, GroupLayout.PREFERRED_SIZE, 137,
GroupLayout.PREFERRED_SIZE).addComponent(
jScrollPane4, GroupLayout.DEFAULT_SIZE, 137,
Short.MAX_VALUE)).addPreferredGap(
LayoutStyle.ComponentPlacement.RELATED).addGroup(
layout.createParallelGroup(
GroupLayout.Alignment.LEADING, false)
.addComponent(jScrollPane2,
GroupLayout.Alignment.TRAILING)
.addComponent(jScrollPane3,
GroupLayout.Alignment.TRAILING,
GroupLayout.DEFAULT_SIZE, 137,
Short.MAX_VALUE)).addPreferredGap(
LayoutStyle.ComponentPlacement.RELATED, 21,
Short.MAX_VALUE).addGroup(
layout.createParallelGroup(
GroupLayout.Alignment.BASELINE).addComponent(
start).addComponent(stop)).addContainerGap())); pack();
} public static void main(String args[]) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new PlayPokerUI().setVisible(true);
}
});
} private JScrollPane jScrollPane1;
private JScrollPane jScrollPane2;
private JScrollPane jScrollPane3;
private JScrollPane jScrollPane4;
private JTextArea poker1;
private JTextArea poker2;
private JTextArea poker3;
private JTextArea poker4;
private JButton start;
private JButton stop;
}
import java.util.*;
public class TestCard { /**
* 随机发牌程序
*/
public static void main(String[] args) {
String[] shape={"红桃","黑桃","梅花","方片"};
String[] nums={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
String[] hands={"玩家一:","玩家二:","玩家三:","玩家四:"};
String[] cards=new String[52];
int k=0;
//下面循环用于产生一副牌
for(int i=0;i<shape.length;i++){
for(int j=0;j<nums.length;j++){
cards[k++]=shape[i]+nums[j];
}
}
Random r=new Random();
int next=r.nextInt(51)+1;
//将牌的顺序打乱
for(int i=0;i<52;i++){
String temp="";
//用于和数组的第一个元素进行交换
temp=cards[0];
cards[0]=cards[next];
cards[next]=temp;
next=r.nextInt(51)+1;
}
//下面的循环用于发牌hands
int j=0;
for(int i=0;i<cards.length;i++){
if(i%13==0){
System.out.print(hands[j]);
}
System.out.print(cards[i]+" ");
if((i+1)%13==0){
System.out.println();
j++;
}
}
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;public class CardShuffle {
public static void main(String[] args) {
List list=new ArrayList();
String[] players={"小王","小张","小赵","小白"};
String[] f={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
String[] s={"♥","♣","♦","♠"};
for(int i=0;i<s.length;i++)
{
for(int j=0;j<f.length;j++)
{
list.add(s[i]+f[j]);
}
}
Collections.shuffle(list);
for(int i=0;i<players.length;i++)
{
System.out.print(players[i]+"的手牌是");
System.out.println(dealHand(list, 13));
}
}
public static List dealHand(List Ls,int n){
int sizePai = Ls.size();
List handView = Ls.subList(sizePai - n, sizePai);
List hand = new ArrayList(handView);
handView.clear();
return hand;
}
}
for(int i=0;i<18;i++){
System.out.println("你的");
System.out.println("他的");
System.out.println("我的");
}
System.out.println("发完了!!");