
正文
java纸牌程序代码 java扑克牌图形界面
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java题目 小明左右手分别拿两张纸牌 黑桃10和红心8, 现在交换手中的牌 用程序模拟这一过程
交换牌java纸牌程序代码的话只需java纸牌程序代码:1.设一个中间变量赋值为左手中java纸牌程序代码的纸牌10 2.把右手中的纸牌8赋值给左手中的纸牌10 3.把中间变量中的10赋值给右手中的纸牌8 就可以了
int j=10;左手中的纸牌
int k=8;右手中的纸牌
开始交换:
int i=j;
j=k;
k=i;
相关问答
Q1: JAVA中随机生成各有13张扑克牌(每张牌从“A”到“K”)的两组,比较两组数对应位置上牌点数大小的程序?
package card;
import java.util.Hashtable;
public class Card {
/**
* 0:方块 3:黑桃 4:王
*/
public static final int DIAMODE=0;
/**1:梅花*/
public static final int CLUB=1;
/**2:红桃*/
public static final int HEART=2;
/**3:黑桃*/
public static final int SPADE=3;
/**4:王*/
static final int WANG=4;
/**0:方块 3:黑桃 4:王*/
private static String[] SUIT_NAMES=new String[]{"方块","梅花","红桃","黑桃","王"};
public static final int THREE=0;
public static final int FOUR=1;
public static final int FIVE=2;
public static final int SIX=3;
public static final int SEVEN=4;
public static final int EIGHT=5;
public static final int NINE=6;
public static final int TEN=7;
public static final int JACK=8;
public static final int QUEEN=9;
public static final int KING=10;
public static final int ACE=11;
public static final int DUCK=12;
public static final int BALCK=13;
public static final int COLOR=14;
public static String[] RANK_NAMES=new String[]{"3","4","5","6","7"
,"8","9","10","J","Q","K","A","2","小","大"};
private int suit,rank;
// private static class Entry{
// private String name;
// private int value;
// public Entry(String name,int value) {
// this.name=name;
// this.value=value;
// }
// public int getValue() {
// return value;
// }
// public void setValue(int value) {
// this.value = value;
// }
// @SuppressWarnings("unused")
// public String getName() {
// return name;
// }
// @SuppressWarnings("unused")
// public void setName(String name) {
// this.name = name;
// }
// }
//public static Entry[] table = new Entry[120];
static HashtableString, Integer table = new HashtableString,Integer();
static{
for (int i = 0; i SUIT_NAMES.length; i++) {
// Entry entry = new Entry(SUIT_NAMES[i],i);
// table[SUIT_NAMES[i].hashCode()%120]=entry;
table.put(SUIT_NAMES[i], i);
}
for (int i = 0; i RANK_NAMES.length; i++) {
//Entry entry = new Entry(RANK_NAMES[i],i);
//table[RANK_NAMES[i].hashCode()%120]=entry;
table.put(RANK_NAMES[i], i);
}
}
public int getSuit() {
return suit;
}
public void setSuit(int suit) {
this.suit = suit;
}
public int getRank() {
return rank;
}
public void setRank(int rank) {
this.rank = rank;
}
public Card(int suit,int rank) {
setSuit(suit);
setRank(rank);
}
public Card(String strName){
String suitName;
String rankName;
if(strName.endsWith("王")){
suitName=strName.substring(1);
rankName=strName.substring(0,1);
}else{
suitName=strName.substring(0,2);
rankName=strName.substring(2);
}
setSuit(findSuit(suitName));
setRank(findRank(rankName));
}
private int findSuit(String suitName) {
//return table[suitName.hashCode()%120].getValue();
return table.get(suitName);
}
private int findRank(String rankName) {
return table.get(rankName);
}
@Override
public String toString() {
if(suit==Card.WANG)
return RANK_NAMES[rank]+SUIT_NAMES[suit];
return SUIT_NAMES[suit]+RANK_NAMES[rank];
}
@Override
public boolean equals(Object obj) {
if(obj==null)
return false;
if(obj==this)
return true;
if(obj instanceof Card){
Card other=(Card)obj;
return other.rank==rank other.suit==suit;
}
return false;
}
@Override
public int hashCode() {
return rank*10+suit;
}
}
/*************************************************************************************/
package card;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class CardDemo {
/**
* @param args
*/
public static void main(String[] args) {
// Card c=new Card(Card.HEART,Card.THREE);
// System.out.println(c.toString());
// c=new Card("黑桃A");
// System.out.println(c.toString());
ListCard cards = new ArrayListCard();
for (int i = 0; i = Card.DUCK; i++) {
for (int j = 0; j = Card.SPADE; j++) {
cards.add(new Card(j, i));
}
}
cards.add(new Card("小王"));
cards.add(new Card("大王"));
// Random r = new Random();
// for (int i =1; i cards.size(); i++) {
// int j=r.nextInt(i);
// Card temp=cards.get(i);
// cards.set(i, cards.get(j));
// cards.set(j, temp);
// }
Collections.shuffle(cards);
System.out.println(cards.toString());
Player[] players = new Player[3];
players[0] = new Player(0, "萧炎");
players[1] = new Player(1, "罗峰");
players[2] = new Player(2, "小胖");
// for (int i = 0; i cards.size();i++) {
// players[i%players.length].add(cards.get(i));
// }
// for (int i = 0; i players.length; i++) {
// System.out.println(players[i].toString());
// }
IteratorCard ite = cards.iterator();
int c=0;
while(ite.hasNext()){
players[(c++)%players.length].add(ite.next());
ite.remove();
}
for (int i = 0; i players.length; i++) {
System.out.println(players[i]);
}
}
}
Q2: 用Java写一个扑克牌类,扑克牌有花色和大小,并且有一个tostring方法,返回扑克牌的信息?
Card[] cards = new Card[54]; // 这是一个数组,是一个普通对象。
Player[] players = new Player[3]; // 这是一个数组,是一个普通对象。
第一行,调用了数组 cards 上索引为 0 的元素的 toString 方法,对应于 Card 类的 toString 方法。
第二行,调用了数组 cards 的 toString 方法,对应于 Card[] 类的 toString 方法,继承自 Object 类。
第三行,调用了 Arrays 类的 toString 方法,传入参数是数组 cards ,具体可查找该方法的源码。
第四行,调用了数组 players 上索引为 0 的元素的 toString 方法,对应于 Player 类的 toString 方法。
第五行,调用了数组 players 的 toString 方法,对应于 Player[] 类的 toString 方法,继承自 Object 类。
第六行,调用了 Arrays 类的 toString 方法,传入参数是数组 players ,具体可查找该方法的源码。
简单说一下 Arrays.toString() ,它返回是由数组内所有元素的字符串化(toString)合并而成的字符串对象。
因此:
1. 不是同一个 toString 方法,任何对象都可调用自身的 toString 方法。
2. 因为 Player 类的 toString 方法内曾调用了“ Arrays.toString(cards) ”。
4. 任何对象都可调用自身的 toString 方法,数组是对象。
5. 数组是对象,一样有对应的类型,其类型一样继承自 Object 类,继承了 toString 方法。
最后,有任何疑问请追问。
Q3: Java四人扑克发牌,请教高手将代码进行更好的缩进,在简洁点,最主要性能。
扑克牌还是自己写个对象比较好吧 属性就是花色跟牌值
至于发牌什么java纸牌程序代码的 还是用集合来吧 数组操作起来比较麻烦
代码实在是懒得写java纸牌程序代码了 就提点建议
用集合的好处比如说洗牌直接就可以用 collections的静态方法 还有就是 回复初始状态排序 也可以也可以自定义比较器来比较
Q4: JAVA编程创建一个List集合cards,再54张扑克牌存放到其中,请按下列要求编写程序:
public class PlayCard {
private ListInteger list;
/**
* JAVA编程创建一个List集合cards,再54张扑克牌存放到其中
* (1)用3种不同方法输出54张牌;
* (2)调用Collections方法随机分派54张牌
*/
public PlayCard() {
list = new ArrayListInteger();
for(int i=1;i55;i++){
list.add(i);
}
}
public void showPlayCard(){
System.out.println("方式一");
for(Integer i : list){
System.out.print(i+"\t");
}
System.out.println("方式二");
for(int i=0;ilist.size();i++){
System.out.print(list.get(i)+"\t");
}
System.out.println("方式三");
Iterator Integer it = list.iterator();
while(it.hasNext()){
System.out.print(it.next()+"\t");
}
}
// TODO调用Collections方法随机分派54张牌
public void randomPlayCards(){
// 把牌打乱
Collections.shuffle(list);
}
public static void main(String[] args) {
PlayCard p = new PlayCard();
p.randomPlayCards();
p.showPlayCard();
}
}
Q5: java的问题(扑克牌)
代码仅供参考,如有疑问,欢迎追问:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 随机扑克牌
* @author STONE
* @version 2015-10-28
*/
public class Poker {
//用于记录丢失的手牌数
private static Integer lostTotal = 0;
//用于存放已下发的扑克
private static Integer[] its1 = new Integer[54];
//用于存放当前的扑克
private static Integer[] its2 = new Integer[54];
private static ListInteger lostList = new ArrayListInteger();
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
for(int i=0;i54;i++){
its1[i] = 0;
its2[i] = 0;
}
System.out.println("系统开始发牌...");
givePoker(5);
System.out.println("发牌完毕,当前手牌为:");
printPoker(its2);
Integer gameTotal = 0;
while(gameTotal10){//循环跑10次,请注意此处发牌没做限制,如果循环次数过大,会导致死循环
System.out.println("请输入需要丢弃的手牌(多张牌格式如下:黑桃1,黑桃2,黑桃3):");
String lost = scn.nextLine();
checkLost(lost);
System.out.println("丢失手牌完毕,当前手牌:");
printPoker(its2);
System.out.println("系统开始重发手牌...");
givePoker(lostTotal);
System.out.println("重发发牌完毕,当前手牌为:");
printPoker(its2);
gameTotal++;
}
scn.close();
}
public static void givePoker(Integer num){//随机分发手牌
int total = 0;
while(totalnum){
int poke = (int)(Math.random()*54);
if(its1[poke] == 0){
its1[poke] = 1;
its2[poke] = 1;
total++;
}
}
lostTotal = 0;
}
public static Boolean checkLost(String lost){//检查需要丢失的手牌
if(lost==null || lost.equals("")){
System.out.println("输入手牌错误,系统无法处理...");
return false;
}
if(lost.indexOf("黑桃")0 lost.indexOf("红心")0 lost.indexOf("梅花")0 lost.indexOf("方块")0){
System.out.println("输入手牌错误,系统无法处理...");
return false;
}
String[] strs = lost.split(",");
Boolean bol = false;
for(String str : strs){
str = str.trim();
if(str==null || str.equals("")) continue;//去掉,防止空格
bol = getPokerNum(str);
}
if(bol){
losePoker();
}
return false;
}
public static void losePoker(){//丢掉手牌
lostTotal = lostList.size();
for(Integer itr : lostList){//丢掉手牌
its2[itr-1] = 0;
}
lostList = new ArrayListInteger();
}
public static Boolean getPokerNum(String str){//获取手牌点数并去掉
try{
Integer itr = 0;
if(str.indexOf("黑桃")==0){
str = str.replace("黑桃", "");
itr = Integer.parseInt(str);
if(itr13){
System.out.println("输入手牌不存在:黑桃"+str);
return false;
}
if(its2[itr-1]==1){
lostList.add(itr);
}
} else if(str.indexOf("红心")==0){
str = str.replace("红心", "");
itr = Integer.parseInt(str);
if(itr13){
System.out.println("输入手牌不存在:红心"+str);
return false;
}
if(its2[itr+12]==1){
lostList.add(itr+13);
}
} else if(str.indexOf("梅花")==0){
str = str.replace("梅花", "");
itr = Integer.parseInt(str);
if(itr13){
System.out.println("输入手牌不存在:梅花"+str);
return false;
}
if(its2[itr+25]==1){
lostList.add(itr+26);
}
} else if(str.indexOf("方块")==0){
str = str.replace("方块", "");
itr = Integer.parseInt(str);
if(itr13){
System.out.println("输入手牌不存在:方块"+str);
return false;
}
if(its2[itr+38]==1){
lostList.add(itr+39);
}
} else if(str.indexOf("小王")==0){
if(its2[52]==1){
lostList.add(53);
}
} else if(str.indexOf("大王")==0){
if(its2[53]==1){
lostList.add(54);
}
}
return true;
} catch( Exception e ){
System.out.println("输入手牌有误...");
return false;
}
}
public static void printPoker(Integer[] its){//打印当前手牌
String result = "";
for(int i=0;iits.length;i++){
if(its[i]==1){//等于1表示当前手牌存在
result+=pukerCheck(i+1)+",";
}
}
System.out.println(result);
}
public static String pukerCheck(Integer itr){//判断扑克类型
/**
* 1~13黑桃花色、14~26红心花色、27~39梅花花色
* 40~52方块花色、53小王、54大王
*/
if(1=itr itr=13){
return "黑桃"+itr;
} else if(14=itr itr=26){
return "红心"+(itr-13);
} else if(27=itr itr=39){
return "梅花"+(itr-26);
} else if(40=itr itr=52){
return "方块"+(itr-39);
} else if(itr==53){
return "小王";
} else if(itr==54){
return "大王";
}
return "";
}
}
测试运行结果:
java纸牌程序代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java扑克牌图形界面、java纸牌程序代码的信息别忘了在本站进行查找喔。







