gbrainy r246 - trunk/src



Author: jmas
Date: Sun Feb 24 14:52:39 2008
New Revision: 246
URL: http://svn.gnome.org/viewvc/gbrainy?rev=246&view=rev

Log:
More work on difficulty levels

Modified:
   trunk/src/CalculationWhichNumber.cs
   trunk/src/ChangeLog
   trunk/src/MemoryIndications.cs
   trunk/src/PuzzleDivideCircle.cs
   trunk/src/PuzzleLines.cs
   trunk/src/PuzzleNumericRelation.cs
   trunk/src/PuzzleNumericSequence.cs
   trunk/src/PuzzleSquares.cs
   trunk/src/PuzzleTriangles.cs

Modified: trunk/src/CalculationWhichNumber.cs
==============================================================================
--- trunk/src/CalculationWhichNumber.cs	(original)
+++ trunk/src/CalculationWhichNumber.cs	Sun Feb 24 14:52:39 2008
@@ -58,12 +58,29 @@
 		options = new double [options_cnt * 2];
 		bool duplicated;
 		bool done = false;
-		int i, ans_idx;
+		int i, ans_idx, basenum, randnum;
+
+		switch (CurrentDifficulty) {
+		case Difficulty.Easy:
+			basenum = 5;
+			randnum = 10;
+			break;
+		default:
+		case Difficulty.Medium:
+			basenum = 5;
+			randnum = 30;
+			break;
+		case Difficulty.Master:
+			basenum = 9;
+			randnum = 60;
+			break;
+		}
+
 
 		while (done == false) {
 			duplicated = false;
-			options[0 + 0] = 5 + random.Next (30);
-			options[0 + 1] = 5 + random.Next (30);
+			options[0 + 0] = basenum + random.Next (randnum);
+			options[0 + 1] = basenum + random.Next (randnum);
 				
 			options[2 + 0] = options[0 + 0] + random.Next (2);
 			options[2 + 1] = options[0 + 1] + random.Next (2);

Modified: trunk/src/MemoryIndications.cs
==============================================================================
--- trunk/src/MemoryIndications.cs	(original)
+++ trunk/src/MemoryIndications.cs	Sun Feb 24 14:52:39 2008
@@ -150,7 +150,6 @@
 	private Indication[] indications_wrongB;
 	private Indication[] indications_wrongC;
 	private ArrayListIndicesRandom answers;
-	const int steps = 7;
 
 	public override string Name {
 		get {return Catalog.GetString ("Memorize indications");}
@@ -162,8 +161,8 @@
 	}
 
 	public override void Initialize ()
-	{			
-		indications = new Indication [steps];
+	{
+		indications = new Indication [CurrentDifficulty == Difficulty.Easy ? 5 : 7];
 		Indication.TurnDirection second_turn = (Indication.TurnDirection) 2 +  random.Next (2);
 		
 		indications[0] = new Indication (Indication.Type.Start, 0);
@@ -171,13 +170,17 @@
 		indications[2] = new Indication (Indication.Type.Turn, second_turn); // up or down
 		indications[3] = new Indication (Indication.Type.Turn, random.Next (2)); // right or left
 
-		if (second_turn == Indication.TurnDirection.Up)
-			indications[4] = new Indication (Indication.Type.Turn, Indication.TurnDirection.Up);
-		else
-			indications[4] = new Indication (Indication.Type.Turn, Indication.TurnDirection.Down);
+		if (CurrentDifficulty==Difficulty.Easy) {
+			indications[4] = new Indication (Indication.Type.End, 1);		
+		} else {
+			if (second_turn == Indication.TurnDirection.Up)
+				indications[4] = new Indication (Indication.Type.Turn, Indication.TurnDirection.Up);
+			else
+				indications[4] = new Indication (Indication.Type.Turn, Indication.TurnDirection.Down);
 
-		indications[5] = new Indication (Indication.Type.Turn, random.Next (2)); // right or left
-		indications[6] = new Indication (Indication.Type.End, 1);
+			indications[5] = new Indication (Indication.Type.Turn, random.Next (2)); // right or left
+			indications[6] = new Indication (Indication.Type.End, 1);
+		}
 		
 		indications_wrongA = CopyAnswer ();
 		indications_wrongB = CopyAnswer ();
@@ -190,12 +193,22 @@
 			indications_wrongA[3] = new Indication (Indication.Type.Turn, Indication.TurnDirection.Right);
 		}
 
-		if ((Indication.TurnDirection) indications[5].obj == Indication.TurnDirection.Right) {
-			indications_wrongB[5] = new Indication (Indication.Type.Turn, Indication.TurnDirection.Left);
-		}
-		else {
-			indications_wrongB[5] = new Indication (Indication.Type.Turn, Indication.TurnDirection.Right);
+		if (CurrentDifficulty == Difficulty.Easy) {
+			if ((Indication.TurnDirection) indications[2].obj == Indication.TurnDirection.Up) {
+				indications_wrongB[2] = new Indication (Indication.Type.Turn, Indication.TurnDirection.Down);
+			}
+			else {
+				indications_wrongB[2] = new Indication (Indication.Type.Turn, Indication.TurnDirection.Up);
+			}
+		} else {
+			if ((Indication.TurnDirection) indications[5].obj == Indication.TurnDirection.Right) {
+				indications_wrongB[5] = new Indication (Indication.Type.Turn, Indication.TurnDirection.Left);
+			}
+			else {
+				indications_wrongB[5] = new Indication (Indication.Type.Turn, Indication.TurnDirection.Right);
+			}
 		}
+
 		if ((Indication.TurnDirection) indications[1].obj == Indication.TurnDirection.Right) {
 			indications_wrongC[1] = new Indication (Indication.Type.Turn, Indication.TurnDirection.Left);
 		}
@@ -221,8 +234,8 @@
 
 	private Indication[] CopyAnswer ()
 	{
-		Indication[] answer = new Indication [steps];
-		for (int i = 0; i < steps; i++)
+		Indication[] answer = new Indication [indications.Length];
+		for (int i = 0; i < indications.Length; i++)
 			answer[i] = new Indication (indications[i].type, indications[i].obj);
 
 		return answer;
@@ -259,7 +272,6 @@
 		x = 0.22; y = 0.3;
 		DrawPossibleAnswers (gr, x, y, WhichAnswer (answers[0]));
 		gr.MoveTo (x, y + 0.2);
-		//gr.ShowText ("Figure A");
 		gr.ShowText (String.Format (Catalog.GetString ("Figure {0}"), "A"));
 
 		x = 0.7; y = 0.3;

Modified: trunk/src/PuzzleDivideCircle.cs
==============================================================================
--- trunk/src/PuzzleDivideCircle.cs	(original)
+++ trunk/src/PuzzleDivideCircle.cs	Sun Feb 24 14:52:39 2008
@@ -48,7 +48,10 @@
 
 	public override void Initialize ()
 	{
-		dots = 5 + random.Next (2);
+		if (CurrentDifficulty==Difficulty.Easy)
+			dots = 5;
+		else
+			dots = 5 + random.Next (2);
 
 		switch (dots) {
 		case 5:

Modified: trunk/src/PuzzleLines.cs
==============================================================================
--- trunk/src/PuzzleLines.cs	(original)
+++ trunk/src/PuzzleLines.cs	Sun Feb 24 14:52:39 2008
@@ -45,7 +45,11 @@
 
 	public override void Initialize ()
 	{
-		type = random.Next (max_types);
+		if (CurrentDifficulty==Difficulty.Easy)
+			type = 0;
+		else
+			type = random.Next (max_types);		
+
 		switch (type) {
 		case 0:
 			fig1 = 15;

Modified: trunk/src/PuzzleNumericRelation.cs
==============================================================================
--- trunk/src/PuzzleNumericRelation.cs	(original)
+++ trunk/src/PuzzleNumericRelation.cs	Sun Feb 24 14:52:39 2008
@@ -24,12 +24,12 @@
 
 public class PuzzleNumericRelation : Game
 {
-	private const int max_num = 9;
 	private const int group_size = 3;
 	private int sum_value;
 	private int question;
 	private int[] numbers;
 	private int formula;
+	private const int max_num = 9;
 
 	public override string Name {
 		get {return Catalog.GetString ("Numeric relation");}
@@ -65,12 +65,20 @@
 
 	public override void Initialize ()
 	{
-		int group = 0;
+		int group = 0, inc = 0;
+
+		if (CurrentDifficulty == Difficulty.Easy) {
+			sum_value = 10 + random.Next (10);
+			inc = 5;
+		}
+		else {
+			sum_value = 30 + random.Next (10);
+			inc = 12;
+		}
 
 		question = 1 + random.Next (max_num - 2);
 		formula = random.Next (3);
 		numbers =  new int [max_num];
-		sum_value = 30 + random.Next (10);
 		
 		for (int i = 0; i < max_num; i++) {
 			if (group == group_size - 1) {	
@@ -88,7 +96,7 @@
 				group = 0;
 				continue;
 			}
-			numbers[i] = 1 + random.Next (12);
+			numbers[i] = 1 + random.Next (inc);
 			group++;
 		}
 
@@ -115,10 +123,7 @@
 			}
 		}
 		sequence.Append (numbers[max_num - 1]);
-
-		gr.MoveTo (DrawAreaX, DrawAreaY + 0.3);
-		gr.ShowText (sequence.ToString ());
-		gr.Stroke ();
+		gr.DrawTextCentered (0.5, DrawAreaY + 0.3, sequence.ToString ());
 	}
 
 }

Modified: trunk/src/PuzzleNumericSequence.cs
==============================================================================
--- trunk/src/PuzzleNumericSequence.cs	(original)
+++ trunk/src/PuzzleNumericSequence.cs	Sun Feb 24 14:52:39 2008
@@ -61,7 +61,7 @@
 
 	public override void Initialize ()
 	{
-		formula = random.Next (3);
+		formula = random.Next (CurrentDifficulty == Difficulty.Easy ? 2 : 3);
 		numbers =  new int [max_num];
 		numbers[0] = 3 + random.Next (3);
 		for (int i = 1; i < max_num; i++) {
@@ -98,9 +98,7 @@
 		}
 		sequence.Append ("?");
 
-		gr.MoveTo (DrawAreaX + 0.05, DrawAreaY + 0.3);
-		gr.ShowText (sequence.ToString ());
-		gr.Stroke ();
+		gr.DrawTextCentered (0.5, DrawAreaY + 0.3, sequence.ToString ());
 	}
 
 }

Modified: trunk/src/PuzzleSquares.cs
==============================================================================
--- trunk/src/PuzzleSquares.cs	(original)
+++ trunk/src/PuzzleSquares.cs	Sun Feb 24 14:52:39 2008
@@ -55,7 +55,11 @@
 
 	public override void Initialize ()
 	{
-		type = random.Next (2);
+		if (CurrentDifficulty==Difficulty.Easy)
+			type = 0;
+		else
+			type = random.Next (2);
+
 		rows = 3;
 		columns = 3;		
 

Modified: trunk/src/PuzzleTriangles.cs
==============================================================================
--- trunk/src/PuzzleTriangles.cs	(original)
+++ trunk/src/PuzzleTriangles.cs	Sun Feb 24 14:52:39 2008
@@ -51,7 +51,10 @@
 
 	public override void Initialize ()
 	{
-		type = random.Next (2);
+		if (CurrentDifficulty==Difficulty.Easy)
+			type = 1;
+		else
+			type = random.Next (2);
 
 		if (type == 0)	
 			right_answer = "16";



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]