[gbrainy] Fixes launchpad bug #682714
- From: Jordi Mas <jmas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gbrainy] Fixes launchpad bug #682714
- Date: Tue, 30 Nov 2010 20:56:51 +0000 (UTC)
commit ff0cbf71d4f61b44d91e1d99b5a5abe42a5a6578
Author: Jordi Mas <jmas softcatala org>
Date: Tue Nov 30 21:59:01 2010 +0100
Fixes launchpad bug #682714
src/Games/Memory/MemoryNumbers.cs | 48 +++++++++++++++++++++++++++---------
1 files changed, 36 insertions(+), 12 deletions(-)
---
diff --git a/src/Games/Memory/MemoryNumbers.cs b/src/Games/Memory/MemoryNumbers.cs
index c907b84..8aabebd 100644
--- a/src/Games/Memory/MemoryNumbers.cs
+++ b/src/Games/Memory/MemoryNumbers.cs
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008 Jordi Mas i Hernà ndez <jmas softcatala org>
+ * Copyright (C) 2008-2010 Jordi Mas i Hernà ndez <jmas softcatala org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -34,7 +34,7 @@ namespace gbrainy.Games.Memory
protected static int [] numbers;
public Challenge () {}
-
+
public static int[] Numbers {
set { numbers = value;}
get { return numbers;}
@@ -42,11 +42,11 @@ namespace gbrainy.Games.Memory
virtual public string Question {
get {return string.Empty; }
- }
+ }
virtual public string Answer {
get {return string.Empty; }
- }
+ }
}
class ChallengeOdds : Challenge
@@ -55,7 +55,7 @@ namespace gbrainy.Games.Memory
get {
return Catalog.GetString ("How many odd numbers were in the previous image? Answer using numbers.");
}
- }
+ }
public override string Answer {
get {
@@ -75,7 +75,7 @@ namespace gbrainy.Games.Memory
get {
return Catalog.GetString ("How many even numbers were in the previous image? Answer using numbers.");
}
- }
+ }
public override string Answer {
get {
@@ -95,7 +95,7 @@ namespace gbrainy.Games.Memory
get {
return Catalog.GetString ("How many numbers with more than one digit were in the previous image? Answer using numbers.");
}
- }
+ }
public override string Answer {
get {
@@ -121,7 +121,7 @@ namespace gbrainy.Games.Memory
{
base.Initialize ();
int total;
-
+
switch (CurrentDifficulty) {
case GameDifficulty.Easy:
total = 5;
@@ -138,10 +138,12 @@ namespace gbrainy.Games.Memory
int[] nums = new int [total];
for (int i = 0; i < nums.Length; i++)
- nums[i] = 1 + random.Next (15);
+ {
+ nums[i] = GetUniqueRandomNumber (nums);
+ }
switch (random.Next (num_games)) {
- case 0:
+ case 0:
current_game = new ChallengeOdds ();
break;
case 1:
@@ -151,14 +153,36 @@ namespace gbrainy.Games.Memory
current_game = new ChallengeTwoDigits ();
break;
}
-
+
Challenge.Numbers = nums;
right_answer = current_game.Answer;
}
- public override void DrawObjectToMemorize (CairoContextEx gr, int area_width, int area_height, bool rtl)
+ // Generate a random number that is unique at the numbers array
+ int GetUniqueRandomNumber (int [] numbers)
{
+ int candidate;
+ bool unique = true;
+
+ do
+ {
+ candidate = 1 + random.Next (15);
+ unique = true;
+ for (int i = 0; i < numbers.Length; i++)
+ {
+ if (numbers[i] == candidate)
+ {
+ unique = false;
+ break;
+ }
+ }
+ } while (unique == false);
+ return candidate;
+ }
+
+ public override void DrawObjectToMemorize (CairoContextEx gr, int area_width, int area_height, bool rtl)
+ {
StringBuilder sequence = new StringBuilder (64);
base.DrawObjectToMemorize (gr, area_width, area_height, rtl);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]