2016-02-29 3 views
-1

Так что я работал над игрой yahtzee, до сих пор у меня есть ярлыки для отображения изображений в кубиках наугад, это код.Как организовать случайные грани кубиков (yahtzee) в цифровом порядке

#region Declaration 

Image[] diceImages; 
int[] dice; 
Random rand; 

#endregion 

#region Initialization 

public Form1() 
{ 
    InitializeComponent(); 
} 

private void Form1_Load(object sender, EventArgs e) 
{ 
    diceImages=new Image[7]; 
    diceImages[0] = Properties.Resources.dice_face_0; 
    diceImages[1] = Properties.Resources.dice_face_1; 
    diceImages[2] = Properties.Resources.dice_face_2; 
    diceImages[3] = Properties.Resources.dice_face_3; 
    diceImages[4] = Properties.Resources.dice_face_4; 
    diceImages[5] = Properties.Resources.dice_face_5; 
    diceImages[6] = Properties.Resources.dice_face_6; 

    dice = new int[5] { 0, 0, 0, 0, 0 }; 

    rand = new Random(); 
} 

#endregion 

private void btnRoll_Click(object sender, EventArgs e) 
{ 
    for (int i = 0; i < dice.Length; i++) 
     dice[i] = rand.Next(1, 7); 

    lblDie1.Image = diceImages[dice[0]]; 
    lblDie2.Image = diceImages[dice[1]]; 
    lblDie3.Image = diceImages[dice[2]]; 
    lblDie4.Image = diceImages[dice[3]]; 
    lblDie5.Image = diceImages[dice[4]]; 
} 

Могу ли я упорядочить изображения кубиков в числовом порядке, если да, то как?

ответ

0

Вы можете использовать Array.Sort (MSDN documentation)

private void btnRoll_Click(object sender, EventArgs e) 
{ 
    for (int i = 0; i < dice.Length; i++) 
     dice[i] = rand.Next(1, 7); 

    Array.Sort(dice); 

    lblDie1.Image = diceImages[dice[0]]; 
    lblDie2.Image = diceImages[dice[1]]; 
    lblDie3.Image = diceImages[dice[2]]; 
    lblDie4.Image = diceImages[dice[3]]; 
    lblDie5.Image = diceImages[dice[4]]; 
} 
0

После выполнения:

for (int i = 0; i < dice.Length; i++) 
    dice[i] = rand.Next(1, 7); 

создать упорядоченный список:

dice = dice.OrderBy(x => x).ToArray(); 

, а затем продолжить назначение изображения.