Программа C # Dice Roll с изображениями - PullRequest
2 голосов
/ 29 февраля 2012

Я стараюсь изо всех сил, чтобы сделать эту программу, которая должна сделать программу, которая позволяет пользователю бросать два кубика столько, сколько он хочет, но брошенный кубик может быть показан не в виде чисел, а в виде изображения.

например

[о]

для броска кубика 1.

Я еще не сделал код цикла для программы, и я знаю только, как сделать случайные числа для бросков, я просто не могу понять, как создать массив изображений и сделать так, чтобы код фактически использовал изображения вместо цифр ... если вы понимаете, о чем я.

вот мой код, спасибо за помощь!

        int[] DiceUno = new int[6];
        int[] DiceDos = new int[6];
        Random rnd = new Random();

        Console.WriteLine("This program will allow you to roll two dice");
        Console.WriteLine("\nAs many times as you want");
        Console.WriteLine("\n\nWhen you want to exit the program, please type (exit)");
        Console.WriteLine("\nPress any key to begin rolling");
        Console.Read();


        for (int i = 0; i < 1; i++)
        {
            int diceRoll = 0;
            diceRoll = rnd.Next(6);
            DiceUno[diceRoll]++;
            Console.WriteLine("Dice 1 is rolled a: {0}", diceRoll + 1);
            diceRoll = rnd.Next(6);
            DiceDos[diceRoll]++;
            Console.WriteLine("Dice 2 is rolled a: {0}", diceRoll + 1);

        }





    }
}

}

Ответы [ 3 ]

5 голосов
/ 29 февраля 2012

Это должно работать с использованием быстрого и грязного LINQ.

var die = new Dictionary<int, string>
{
    { 1, "[     ]\n[  o  ]\n[     ]" }, //or a path to an image somewhere or anything you want
    { 2, "[     ]\n[ o o ]\n[     ]" },
    { 3, "[  o  ]\n[ o o ]\n[     ]" },
    { 4, "[ o o ]\n[     ]\n[ o o ]" },
    { 5, "[ o o ]\n[  o  ]\n[ o o ]" },
    { 6, "[ o o ]\n[ o o ]\n[ o o ]" },
};

do
{
    var shuffled = die.OrderBy(x => Guid.NewGuid()).Take(2);

    foreach (KeyValuePair<int, string> i in shuffled)
    {
        Console.WriteLine(i.Value);
        Console.WriteLine();
    }
} while (Console.ReadLine() != "(exit)");
0 голосов
/ 29 февраля 2012

Если вы хотите вывести текст, а не число, создайте массив строк:

string[] images = new string[]
    { "o", "oo", "ooo", "oooo", "ooooo", "oooooo" };

И вместо diceRoll + 1 в Console.WriteLine поместите изображения [diceRoll]:

Console.WriteLine("Dice 1 is rolled a: {0}", images[diceRoll]);

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

0 голосов
/ 29 февраля 2012

почему бы не сделать что-то столь же простое, как

Dictionary<int, string> valueToDiceImage = new Dictionary<int, string>() 

{

 {0, "[0]"},

 {1, "[1]"},

 {2, "[2]"},

 {3, "[3]"},

 {4, "[4]"},

 {5, "[5]"},

 {6, "[6]"},

};

, а затем использовать его следующим образом:

int diceRoll = rnd.next(6); 
System.Console.Write("User Rolled a " + valueToDiceImage[diceRoll] + "\n");
...