| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1384 人关注过本帖
标题:[求助]麻烦高手解决一下啊 !
只看楼主 加入收藏
提灯寻影
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2005-4-7
收藏
 问题点数:0 回复次数:10 
[求助]麻烦高手解决一下啊 !
模拟扑克发牌的操作:
设共有52牌,4种花色,要分给4个人,最后显示四个人所拿的13张牌。
搜索更多相关主题的帖子: 麻烦 
2005-04-08 11:12
幻风幻云
Rank: 1
等 级:新手上路
帖 子:762
专家分:0
注 册:2005-1-14
收藏
得分:0 
大概分3个阶段吧
一,创建1个 4X13的2维数组(牌), 4个 一维数,长度13(用户得到的牌)
二,给二维数组赋值,要随机数且不能重复(洗牌)
三,将二维数组的值分别赋与4个一维数(发牌)

[此贴子已经被作者于2005-4-8 11:41:07编辑过]



2005-04-08 11:26
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
问作业的吗?
2005-04-08 20:28
提灯寻影
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2005-4-7
收藏
得分:0 
不是啊,是在一本参考书上看到的,可惜没答案,自己想了很久就是不行 啊,特来此求助。麻烦会的给个答案!谢谢。

2005-04-09 19:23
幻风幻云
Rank: 1
等 级:新手上路
帖 子:762
专家分:0
注 册:2005-1-14
收藏
得分:0 

using System;

namespace ConsoleApplication12 { /// <summary> /// Class1 的摘要说明。 /// </summary> class card { enum huase { 红桃,黑桃,方块,草花 }; //创建牌,创建一个4*13的空矩阵用来以后存储52张牌 //这里用矩阵,而不直接用一维数组,目的是为了初始化方便 string[,] card52 = new string[4,13]; string[] tempC = new string[52]; string[] xiguohou = new string[52]; //创建4个玩家 string[] p1 = new string[13]; string[] p2 = new string[13]; string[] p3 = new string[13]; string[] p4 = new string[13]; //初始化牌,将52张牌依次存入矩阵中 //为了后面随机数只取1个,建立一个临时的长度为52的一维数组 //将矩阵中牌复制到一维数组tempC中 public void creatcard() { for(int i=0;i<=3;i++) { for(int j=0;j<=12;j++) { card52[i,j]=Convert.ToString((huase)i)+Convert.ToString(j+1); int n =i*13+j; tempC[n] = card52[i,j]; //Console.WriteLine("{0}--{1}",n,tempC[n]); } } } //洗牌,利用随机数,将52张牌的顺序随机排列 //重新排列后的牌放在一维数组xiguohou中 public void xipai() { int m=0; int[] y =new int[52]; y[0]=100; while (m<52) { Random rdm = new Random(); int x =rdm.Next(0,52); int z=0; for(int j=0;j<m;j++) { if (y[j] == x) { z++; } } if (z==0) { y[m] = x; xiguohou[m] = tempC[x]; //Console.WriteLine("{0}--{1}",m,xiguohou[m]); m++; } } } //轮流发牌并且显示每个玩家手中的牌 //把一维数组xiguohou分别发给p1,p2,p3,p4 public void fapai() { for (int i=0;i<=12;i++) { p1[i] = xiguohou[i]; p2[i]= xiguohou[i+13]; p3[i] = xiguohou[i+26]; p4[i]= xiguohou[i+39]; Console.WriteLine("p1--{0}--{1}",i+1,p1[i]); Console.WriteLine("p2--{0}--{1}",i+1,p2[i]); Console.WriteLine("p3--{0}--{1}",i+1,p3[i]); Console.WriteLine("p4--{0}--{1}",i+1,p4[i]); }

} [STAThread] static void Main(string[] args) { //调用建立,洗牌,发牌 3个方法 card card1 = new card(); card1.creatcard(); card1.xipai(); card1.fapai(); Console.ReadLine(); } } }


2005-04-11 23:29
提灯寻影
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2005-4-7
收藏
得分:0 

下面是另一种方法,大家交流一下啊!以后,各位多多关照小弟啊! using System;

namespace Test { /// <summary> /// Cards 的摘要说明。 /// </summary> file://枚举扑克牌的四种花色 public enum CardStyle { RedTriangle, file://红桃 RedDiamonds, file://方板 BlackTriangle, file://黑桃 BlackClub file://梅花 }

public class Cards { public CardStyle Style; public int Number; public Cards(CardStyle style,int number) { // // TOD 在此处添加构造函数逻辑 //

this.Style = style; this.Number = number; } public override string ToString() { string str = ""; switch (this.Style) { case CardStyle.RedTriangle: str = "红桃"; break; case CardStyle.RedDiamonds: str = "方板"; break; case CardStyle.BlackTriangle: str = "黑桃"; break; case CardStyle.BlackClub: str = "梅花"; break; } return str + this.Number.ToString(); } }

public class Playing { public Cards[] card = new Cards[52]; public Playing() { file://定义52张扑克牌 for (int i = 0; i <= 12;i++) { this.card[i] = new Cards(CardStyle.RedTriangle,i + 1); this.card[i + 13] = new Cards(CardStyle.RedDiamonds,i + 1); this.card[i + 26] = new Cards(CardStyle.BlackTriangle,i + 1); this.card[i + 39] = new Cards(CardStyle.BlackClub,i + 1); this.card[i + 39] = new Cards(CardStyle.BlackClub,i + 1); } }

file://洗牌 public Cards[] Shuffle() { Cards temp; Random rand = new Random(); int newIndex = 0; int randIndex; for (int i = 0;i < 52;i++) file://打乱52张牌。 { randIndex = rand.Next(newIndex,52); temp = this.card[randIndex]; this.card[randIndex] = this.card[newIndex]; this.card[newIndex++] = temp; } return this.card;

} } }


2005-04-13 12:52
提灯寻影
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2005-4-7
收藏
得分:0 
[公告]
谢谢你啊!谢谢。

2005-04-13 12:53
幻风幻云
Rank: 1
等 级:新手上路
帖 子:762
专家分:0
注 册:2005-1-14
收藏
得分:0 
6楼的程序你写的吗?

2005-04-13 13:25
风子
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2004-12-28
收藏
得分:0 
六楼在编写洗牌方法非常好,让我长见识了,谢谢!

学习、学习、还要再学习!提高、提高、一定能提高!
2005-04-13 16:29
angel_bear
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2005-4-12
收藏
得分:0 
2005-04-14 10:15
快速回复:[求助]麻烦高手解决一下啊 !
数据加载中...
 
   



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

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