我想隨機化我擁有的4張圖像的順序。我正在爲C#Windows Phone應用程序做旗幟猜謎遊戲,它的工作非常好,但正確的答案始終是標記4,所以如果任何人有任何關於如何改變圖像順序的建議。圖像框的隨機順序
Q
圖像框的隨機順序
0
A
回答
0
你可以使用Linq。假設你有一個「Flag」對象列表,這樣的事情會做你想做的事情嗎?
class Program
{
static Random Random = new Random();
static void Main(string[] args)
{
List<Flag> flags = new List<Flag>()
{
new Flag() {Name = "A"},
new Flag() {Name = "B"},
new Flag() {Name = "C"},
new Flag() {Name = "D"}
};
Console.WriteLine(String.Join(",", flags.Select(f => f.Name)));
IEnumerable<Flag> randomlyOrdered = flags.OrderBy(f => Random.Next());
List<Flag> newListInDifferentOrder = new List<Flag>(randomlyOrdered);
Console.WriteLine(String.Join(",", newListInDifferentOrder.Select(f=>f.Name)));
}
private class Flag
{
public String Name { get; set; }
}
}
0
你可以實現這樣的方法,隨機選取任何類型的項目從一個列表:
private System.Random random = new System.Random();
public T GetRandomItem<T>(IList<T> candidates)
{
int index = candidates.Count;
while (index >= candidates.Count)
index = (int)(random.NextDouble() * (double)candidates.Count);
return candidates[index];
}
那麼你可以使用它爲你的標誌,假設你有一個叫旗類,像這個:
List<Flag> possibleFlags; // <-- You populated this somewhere in your app
Flag randomFlag = GetRandomItem<Flag>(possibleFlags);
請注意System.Random是一個低質量的隨機數發生器。如果你需要它們,你可以插入更好的。在選擇索引時還要注意while循環 - 這是爲了處理從隨機數生成器獲得1.0值的非常罕見的情況,但仍然保持其他所有值的概率相等。
0
使用shuffling algorithm。下面是從DotNetPerls一個很好的和簡單的C#實現:
using System;
class Program
{
/// <summary>
/// Used in Shuffle(T).
/// </summary>
static Random _random = new Random();
/// <summary>
/// Shuffle the array.
/// </summary>
/// <typeparam name="T">Array element type.</typeparam>
/// <param name="array">Array to shuffle.</param>
public static void Shuffle<T>(T[] array)
{
var random = _random;
for (int i = array.Length; i > 1; i--)
{
// Pick random element to swap.
int j = random.Next(i); // 0 <= j <= i-1
// Swap.
T tmp = array[j];
array[j] = array[i - 1];
array[i - 1] = tmp;
}
}
由於這個代碼是通用的,你絕對可以將它用於圖像陣列。
相關問題
- 1. 如何隨機化圖像的順序?
- 2. 圖像以隨機順序加載?
- 3. 隨機框圖像庫
- 4. 半隨機順序
- 5. 的onClick:在10px的塊的隨機順序加載圖像
- 6. 目的C:以NSArray的UIButton的圖像隨機順序
- 7. jQuery的功能以隨機的順序加載圖像
- 8. 行的隨機順序Matlab
- 9. Python的隨機順序OrderedDict
- 10. 按鈕的隨機順序
- 11. 隨機化行的順序
- 12. IEnumerator的隨機化順序
- 13. 按隨機順序按組順序
- 14. jquery幻燈片放映隨機隨機圖片順序
- 15. 在C++中以隨機順序顯示5個圖像
- 16. 隨機圖像
- 17. cf9 orm entityload隨機順序
- 18. 數字是隨機順序
- 19. 獲取隨機順序Laravel
- 20. Laravel:獲取隨機順序
- 21. 隨機像素的圖像
- 22. 按隨機順序的新Guid排序
- 23. 按表現排序的隨機順序
- 24. 試圖與其他隨機圖像交換隨機圖像
- 25. jQuery隨機圖像
- 26. Lua隨機圖像
- 27. ListView圖像隨機
- 28. PHP隨機圖像
- 29. 隨機顯示隨機圖像jquery
- 30. 的ArrayList的()SilverStripe隨機順序
當前訂單如何確定?我看不到任何代碼。 – FrankPl
@ user3010392 - 您需要一種不同的方法。不要將「標誌」的佈局硬編碼到XAML中。製作「標誌」對象的列表,然後「綁定」到XAML中的列表視圖(或類似)。然後,您可以使用以下答案中詳述的任何技術來訂購您的清單。請注意,如果您使用的不是Observable集合的列表,您需要先訂購它。 –