| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 946 人关注过本帖
标题:出道题
取消只看楼主 加入收藏
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
 问题点数:0 回复次数:6 
出道题
要求很简单,

1.随机生成一逼补克牌,每张牌要包含花色和点数,

2.然后二个人从52张牌中一次各抽走1张,对比二张牌,谁的大谁获胜,要提示出获胜一方的牌和玩家的名字,

3.每抽取一次,要从52张牌中减去二张牌,至少没有牌了则不能再抽取牌并提示语句"无牌可抽"

-----------------------------------------------------------------------------------------------

就这些,有兴趣的做下玩玩..难点可能就在于"A","J","Q","K"比较大小的那里....

[此贴子已经被作者于2007-3-3 19:57:44编辑过]

2007-03-03 16:09
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 
以下是引用神vLinux飘飘在2007-3-3 18:18:24的发言:
没有兴趣,不过不知道为什么你说 A、J、Q、K比较大小会难

迷惑人用的


我在说's blog   http://www..cn
2007-03-03 18:49
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 
以下是引用maoguoqing在2007-3-3 19:14:44的发言:
每抽一次为什么不是减去两张牌呢 ??

就是抽一次减2张..我没写清楚...


我在说's blog   http://www..cn
2007-03-03 19:56
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 

我写完了,想看看有没有更好的写法,我觉得自己写的有点多..


我在说's blog   http://www..cn
2007-03-03 19:58
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 

import java.util.Arrays;
import java.util.Collections;
import java.util.Random;

public class CardTest
{
public static void main(String[] args)
{
Cards c = new Cards();
c.shuffle();//洗牌
Player p1 = new Player("张三");
Player p2 = new Player("李四");

for(int i=0;i<10;i++)
{
p1.getOneCard(c);
p2.getOneCard(c);
p1.compare(p2);
c.getCount(); //显示还几张牌
}
}
}

//扑克类
class Cards
{
String [] type = new String[]{"黑桃","红桃","梅花","方片"};
String[] card = new String[52];
int[] overCard = new int[52]; //保存抽出的牌索引
int count = 52; //还剩多少张牌没抽
public Cards()
{
init();
}

void init()
{
int n=0;
for(int i=0;i<type.length;i++)
{
for(int j=1;j<=13;j++)
{
card[n] = type[i] + j;
n++;
}
}
}


void display()
{
for(int k=0;k<card.length;k++)
{
System.out.println(card[k]);
}
}

void shuffle()
{
Collections.shuffle(Arrays.asList(card));
}


public String getCard()
{
if(count <=0 )
{
System.out.println("已经没有牌了");
}
int random = 0;
while(true)
{
random = new Random().nextInt(52);
if(!Arrays.asList(overCard).contains(random))
{
overCard[52-count] = random;
break;
}
}
count--;
return card[random];
}


public void getCount()
{
System.out.println("还剩:" + count + "张牌!");
}
}

//玩家类
class Player
{
String name;
String card; Player(String name)
{
this.name = name;
}

public void getOneCard(Cards c)
{
this.card = c.getCard();
}


public void compare(Player p)
{
String pCard = p.getCard().replace("11", "J").replace("12", "Q")
.replace("13", "K").replace("1", "A");
String myCard = this.getCard().replace("11", "J").replace("12", "Q")
.replace("13", "K").replace("1", "A");

System.out.println(p.getName()+"抓的是:" + pCard);
System.out.println(this.getName()+"抓的是:" + myCard);

int play1 = Integer.parseInt(p.getCard().replaceAll("\\W", ""));
int my = Integer.parseInt(this.getCard().replaceAll("\\W", ""));

if(play1>my)System.out.println(p.getName()+"赢了!");
if(my>play1)System.out.println(this.getName()+"赢了!");
if(play1==my)System.out.println("平手!");
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getCard() {
return card;
}

public void setCard(String card) {
this.card = card;
}
}


我在说's blog   http://www..cn
2007-03-03 19:59
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 
有意思吧? 郁闷...

我在说's blog   http://www..cn
2007-03-04 17:07
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 

www.csdn.net新闻比较多..参考资料也比较多.....
论坛我还是觉得这里好..这里版主们和会员们都很热情~~

斗地主我做不出来


我在说's blog   http://www..cn
2007-03-06 00:36
快速回复:出道题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012756 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved