فهرست منبع

feat: more moves in the scrambles

RaZe 3 سال پیش
والد
کامیت
c83430ff5e
2فایلهای تغییر یافته به همراه22 افزوده شده و 5 حذف شده
  1. 9 4
      rubiks_cube_scrambler.c
  2. 13 1
      scrambler.c

+ 9 - 4
rubiks_cube_scrambler.c

@@ -9,7 +9,8 @@
 #include "furi_hal_random.h"
 
 int scrambleStarted = 0;
-char scramble[100] = {0};
+char scramble_start[100] = {0};
+char scramble_end[100] = {0};
 int notifications_enabled = 0;
 
 static void success_vibration()
@@ -33,16 +34,20 @@ static void draw_callback(Canvas *canvas, void *ctx)
         genScramble();
         scrambleReplace();
         valid();
-        strcpy(scramble, printData());
+        strcpy(scramble_start, printData());
         if (notifications_enabled)
         {
             success_vibration();
         }
+        genScramble();
+        scrambleReplace();
+        valid();
+        strcpy(scramble_end, printData());
         scrambleStarted = 0;
     }
     canvas_set_font(canvas, FontSecondary);
-    canvas_draw_str_aligned(canvas, 64, 33, AlignCenter, AlignCenter, scramble);
-
+    canvas_draw_str_aligned(canvas, 64, 28, AlignCenter, AlignCenter, scramble_start);
+    canvas_draw_str_aligned(canvas, 64, 38, AlignCenter, AlignCenter, scramble_end);
     elements_button_center(canvas, "New");
 
     elements_button_left(canvas, notifications_enabled ? "On" : "Off");

+ 13 - 1
scrambler.c

@@ -116,7 +116,18 @@ int getRand(int upr, int lwr)
 	randNum = (rand() % (upr - lwr + 1)) + lwr;
 	return randNum;
 }
-
+// Let this function be here for now till I find out what is causing the extra space bug in the scrambles
+void remove_double_spaces(char *str) {
+  int i, j;
+  int len = strlen(str);
+  for (i = 0, j = 0; i < len; i++, j++) {
+    if (str[i] == ' ' && str[i + 1] == ' ') {
+      i++;
+    }
+    str[j] = str[i];
+  }
+  str[j] = '\0';
+}
 char *printData()
 {
     static char result[RESULT_SIZE];
@@ -125,6 +136,7 @@ char *printData()
     {
         offset += snprintf(result + offset, RESULT_SIZE - offset, "%s ", a.mainScramble[loop]);
     }
+    remove_double_spaces(result);
     return result;
 }