@gamelearn/arcade-components 1.16.2 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -164,9 +164,10 @@ var HangedPuzzleComponent = function HangedPuzzleComponent(_ref4) {
|
|
|
164
164
|
};
|
|
165
165
|
});
|
|
166
166
|
var extraPool = [];
|
|
167
|
+
var analysis = (0, _utils.analyzeChars)(answerPanel);
|
|
167
168
|
|
|
168
169
|
while (extraPool.length < MAX_EXTRA_LETTERS) {
|
|
169
|
-
var char = (0, _utils.makeChar)();
|
|
170
|
+
var char = (0, _utils.makeChar)(analysis);
|
|
170
171
|
extraPool = [].concat(_toConsumableArray(extraPool), [{
|
|
171
172
|
char: char
|
|
172
173
|
}]);
|
|
@@ -3,11 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.sortChar = exports.restrictCharacters = exports.makeChar = void 0;
|
|
7
|
-
|
|
8
|
-
var _LangIsRtl = _interopRequireDefault(require("../../helpers/LangIsRtl"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
+
exports.sortChar = exports.restrictCharacters = exports.makeChar = exports.analyzeChars = void 0;
|
|
7
|
+
var ARABIC = /[\u0600-\u06FF]/;
|
|
11
8
|
|
|
12
9
|
var restrictCharacters = function restrictCharacters(char, operator) {
|
|
13
10
|
var restrictedChar = false;
|
|
@@ -39,10 +36,49 @@ var sortChar = function sortChar(a, b) {
|
|
|
39
36
|
|
|
40
37
|
exports.sortChar = sortChar;
|
|
41
38
|
|
|
42
|
-
var
|
|
43
|
-
var
|
|
44
|
-
|
|
45
|
-
|
|
39
|
+
var analyzeChars = function analyzeChars(letters) {
|
|
40
|
+
var result = {
|
|
41
|
+
anyArabic: false,
|
|
42
|
+
anyNumber: false,
|
|
43
|
+
anyWestern: false
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
for (var i = 0; i < letters.length; i += 1) {
|
|
47
|
+
var ascii = letters[i].charCodeAt(0);
|
|
48
|
+
|
|
49
|
+
if (ascii >= 65 && ascii <= 90) {
|
|
50
|
+
result.anyWestern = true;
|
|
51
|
+
} else if (ascii >= 48 && ascii <= 57) {
|
|
52
|
+
result.anyNumber = true;
|
|
53
|
+
} else if (ARABIC.test(letters[i])) {
|
|
54
|
+
result.anyArabic = true;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return result;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
exports.analyzeChars = analyzeChars;
|
|
62
|
+
|
|
63
|
+
var makeChar = function makeChar(analysis) {
|
|
64
|
+
var arabic = 'شزذيثبلاهتنمورخحضثقسفعدصطغظ';
|
|
65
|
+
var western = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
66
|
+
var numbers = '0123456789';
|
|
67
|
+
var characters = '';
|
|
68
|
+
|
|
69
|
+
if (analysis.anyWestern) {
|
|
70
|
+
characters += western;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (analysis.anyNumber) {
|
|
74
|
+
characters += numbers;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (analysis.anyArabic) {
|
|
78
|
+
characters += arabic;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return characters.charAt(Math.floor(Math.random() * characters.length));
|
|
46
82
|
};
|
|
47
83
|
|
|
48
84
|
exports.makeChar = makeChar;
|