作者nagare07 (tsutsu)
看板C_Sharp
标题[问题] 想请问一个回圈问题
时间Mon Oct 14 13:32:15 2013
小妹是刚学两个礼拜的C#新手
经理给了一个作业 说要做简易的大老二
我目前只写到发牌 可是发出来的排有点怪异 希望各位版友可以不吝指教
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//定义52张扑克牌
int[] poker = new int[53]; // poker[0]是临时变量(交换的手)所以要设到53
private void btnStart_Click(object sender, EventArgs e)
{
for (int i = 1; i <= 52; i++) // poker[0]是临时变量所以不写进去
poker[i] = i; //一开始编号第n张牌就是对应照顺序的第n张牌
Random rnd = new Random((int)DateTime.Now.Ticks);
int j = 0;
for (int i = 1; i < 53; i++) //用交换的概念来洗牌(三个交换)
{
j = rnd.Next(1, 53);
poker[0] = poker[53 - i];
poker[53 - i] = poker[j];
poker[j] = poker[0];
}
int[,] player = new int[4, 13]; //有四个玩家,各有十三张牌(发十三
轮)
for (int i = 0; i < 52; i++)
{
int x = i % 4; // 表示第几个玩家;取余
int y = i / 4; // 表示发第几张牌(轮);取商
player[x, y] = poker[i + 1]; //第x位玩家的第y张牌是poker[i+1]
对应的牌
int f = player[x, y] % 4;//判定花色
string F = "";
switch (f)
{
case 0:
F = "C"; //梅花
break;
case 1:
F = "H"; //红心
break;
case 2:
F = "D"; //方块
break;
case 3:
F = "S"; //黑桃
break;
}
if (x == 0)
{
label1.Text = F + Convert.ToString(player[x, 0]);
label2.Text = F + Convert.ToString(player[x, 1]);
label3.Text = F + Convert.ToString(player[x, 2]);
label4.Text = F + Convert.ToString(player[x, 3]);
label5.Text = F + Convert.ToString(player[x, 4]);
label6.Text = F + Convert.ToString(player[x, 5]);
label7.Text = F + Convert.ToString(player[x, 6]);
label8.Text = F + Convert.ToString(player[x, 7]);
label9.Text = F + Convert.ToString(player[x, 8]);
label10.Text = F + Convert.ToString(player[x, 9]);
label11.Text = F + Convert.ToString(player[x, 10]);
label12.Text = F + Convert.ToString(player[x, 11]);
label13.Text = F + Convert.ToString(player[x, 12]);
}
省略x==1至x==3
btnStart.Enabled = false;
}
发出来的排变成这样
http://ppt.cc/OFv1
前面的英文字代表的是花色
可是我不懂为什麽这样子他们的花色通通变成一样的'~'
拜托各位版友指教 谢谢~~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.44.193.222
1F:推 qwer820404:我还在找为什麽 不过 我建议 你把扑克牌用class写 10/14 14:00
2F:→ qwer820404:宣告一个class 里面存 一张纸牌的资料(花色跟点数) 10/14 14:01
3F:→ qwer820404:再利用这class 宣告出一个52大小的阵列 後面好做很多 10/14 14:03
4F:→ qwer820404:如果有不懂的问题 站内信吧 10/14 14:03
5F:→ sholan:改label写在for里,每发一张牌就会以该张花色盖掉全部Label 10/14 16:41
6F:→ drizzt123:因为你在回圈内填LABEL,所以F会是回圈内最後一个 10/14 23:17