From c88cf209a3d6d8744fd7a8c72cb3fd7004023a34 Mon Sep 17 00:00:00 2001 From: Ivan Mahonin Date: Sep 08 2025 05:58:45 +0000 Subject: x11: shisen: improve4 --- diff --git a/simple/x11/shisen/data/minas.tga b/simple/x11/shisen/data/minas.tga index 2963dd3..d21790d 100644 Binary files a/simple/x11/shisen/data/minas.tga and b/simple/x11/shisen/data/minas.tga differ diff --git a/simple/x11/shisen/shisen.c b/simple/x11/shisen/shisen.c index 7c30e74..9233cf6 100644 --- a/simple/x11/shisen/shisen.c +++ b/simple/x11/shisen/shisen.c @@ -10,7 +10,7 @@ #define VBASE 8 // must be even #define HBASE 10 // must be even -#define ACTIVELETTERS 20 +#define LETTERSRATIO 7 #define MAXLETTERS 256 #define MAXSOUNDS 16 #define RMTIME 1.0 @@ -302,9 +302,7 @@ void simpleBoard() { } -void generateBoard(int glyphsMask, int maxLetters) { - if (maxLetters < 1) maxLetters = 1; - +void generateBoard(int glyphsMask) { clearBoard(); calcSize(); shuffleLetters(glyphsMask); @@ -312,6 +310,7 @@ void generateBoard(int glyphsMask, int maxLetters) { int indices[MAXCOUNT]; for(int i = 0; i < count; ++i) indices[i] = i; + int maxLetters = count/LETTERSRATIO + 1; int lc = lettersCount < maxLetters ? lettersCount : maxLetters; for(int i = 0; i < count; ++i) { int j = rand()%(count - i) + i; @@ -479,7 +478,7 @@ void mouseDown(int x, int y) { glyphsMask ^= 1 << mc; } else if (mr == 1 && mc >= 1 && mc <= 2) { - generateBoard(glyphsMask, ACTIVELETTERS); + generateBoard(glyphsMask); } } else { if (mc < 0 && mr < 0) {