|
@@ -427,7 +427,20 @@ const circleOne = {
|
|
|
validPath.x0 +
|
|
|
self.circles.list[0].info.distance * self.circles.list[0].info.direc;
|
|
|
|
|
|
+ let isBeforeMin = (isAfterMax = false);
|
|
|
let finalPosition = self.control.correctX;
|
|
|
+ // Restart if
|
|
|
+ // In Game mode 'a' and 'b' : Balloon position is out of bounds
|
|
|
+ if (gameOperation === 'minus') {
|
|
|
+ isBeforeMin = finalPosition > validPath.x0;
|
|
|
+ isAfterMax =
|
|
|
+ finalPosition < validPath.x0 - 5 * validPath.distanceBetweenPoints;
|
|
|
+ } else {
|
|
|
+ isBeforeMin = finalPosition < validPath.x0;
|
|
|
+ isAfterMax =
|
|
|
+ finalPosition > validPath.x0 + 5 * validPath.distanceBetweenPoints;
|
|
|
+ }
|
|
|
+ if (isBeforeMin || isAfterMax) restart = true;
|
|
|
|
|
|
if (gameMode === 'b') {
|
|
|
// If game is type (b), select a random balloon place
|
|
@@ -443,23 +456,21 @@ const circleOne = {
|
|
|
self.circles.list[i].info.distance *
|
|
|
self.circles.list[i].info.direc;
|
|
|
}
|
|
|
- finalPosition = balloonX;
|
|
|
- }
|
|
|
|
|
|
- let isBeforeMin = (isAfterMax = false);
|
|
|
- // Restart if
|
|
|
- // In Game mode 'a' : Balloon position is out of bounds (for type 'a')
|
|
|
- // In Game mode 'b' : Top circle position is out of bounds (when on the ground - A)
|
|
|
- if (gameOperation === 'minus') {
|
|
|
- isBeforeMin = finalPosition > validPath.x0;
|
|
|
- isAfterMax =
|
|
|
- finalPosition < validPath.x0 - 5 * validPath.distanceBetweenPoints;
|
|
|
- } else {
|
|
|
- isBeforeMin = finalPosition < validPath.x0;
|
|
|
- isAfterMax =
|
|
|
- finalPosition > validPath.x0 + 5 * validPath.distanceBetweenPoints;
|
|
|
+ finalPosition = balloonX;
|
|
|
+ // Restart if
|
|
|
+ // In Game mode 'b' : Top circle position is out of bounds (when on the ground)
|
|
|
+ if (gameOperation === 'minus') {
|
|
|
+ isBeforeMin = finalPosition > validPath.x0;
|
|
|
+ isAfterMax =
|
|
|
+ finalPosition < validPath.x0 - 5 * validPath.distanceBetweenPoints;
|
|
|
+ } else {
|
|
|
+ isBeforeMin = finalPosition < validPath.x0;
|
|
|
+ isAfterMax =
|
|
|
+ finalPosition > validPath.x0 + 5 * validPath.distanceBetweenPoints;
|
|
|
+ }
|
|
|
+ if (isBeforeMin || isAfterMax) restart = true;
|
|
|
}
|
|
|
- if (isBeforeMin || isAfterMax) restart = true;
|
|
|
|
|
|
return [restart, balloonX];
|
|
|
},
|
|
@@ -578,26 +589,32 @@ const circleOne = {
|
|
|
// Fraction list
|
|
|
for (let i in validCircles) {
|
|
|
const curFraction = validCircles[i].info.fraction;
|
|
|
- let curFractionSign = '+';
|
|
|
+ const curFractionString = curFraction.labels[0].name;
|
|
|
+ let curFractionSign = i !== '0' ? '+' : '';
|
|
|
if (curFraction.labels[2].name === '-') {
|
|
|
curFractionSign = '-';
|
|
|
font.fill = colors.red;
|
|
|
}
|
|
|
|
|
|
- const fraction = game.add.text(
|
|
|
+ const fractionText = game.add.text(
|
|
|
x0 + i * offsetX + offsetX / 2,
|
|
|
- y0,
|
|
|
- curFraction.labels[0].name,
|
|
|
+ curFractionString === '1' ? y0 + 40 : y0,
|
|
|
+ curFractionString,
|
|
|
font
|
|
|
);
|
|
|
- fraction.lineHeight = 70;
|
|
|
+ fractionText.lineHeight = 70;
|
|
|
|
|
|
renderList.push(
|
|
|
game.add.text(x0 + i * offsetX, y0 + 35, curFractionSign, font)
|
|
|
);
|
|
|
- renderList.push(fraction);
|
|
|
+ renderList.push(fractionText);
|
|
|
renderList.push(
|
|
|
- game.add.text(x0 + offsetX / 2 + i * offsetX, y0, '_', font)
|
|
|
+ game.add.text(
|
|
|
+ x0 + offsetX / 2 + i * offsetX,
|
|
|
+ y0,
|
|
|
+ curFractionString === '1' ? '' : '_',
|
|
|
+ font
|
|
|
+ )
|
|
|
);
|
|
|
|
|
|
nominators.push(curFraction.nominator);
|
|
@@ -648,17 +665,35 @@ const circleOne = {
|
|
|
|
|
|
font.align = 'center';
|
|
|
nextX += offsetX + 40;
|
|
|
+
|
|
|
renderList.push(
|
|
|
game.add.text(nextX - 80, y0 + 35, result >= 0 ? '' : '-', font)
|
|
|
);
|
|
|
- renderList.push(game.add.text(nextX, y0, resultNominatorUnsigned, font));
|
|
|
- renderList.push(game.add.text(nextX, y0 + 70, mmc, font));
|
|
|
- renderList.push(game.add.text(nextX, y0, '___', font));
|
|
|
+
|
|
|
+ const fractionResult = game.add.text(
|
|
|
+ nextX,
|
|
|
+ mmc === 1 || resultNominatorUnsigned === 0 ? y0 + 40 : y0,
|
|
|
+ mmc === 1 || resultNominatorUnsigned === 0
|
|
|
+ ? resultNominatorUnsigned
|
|
|
+ : resultNominatorUnsigned + '\n' + mmc,
|
|
|
+ font
|
|
|
+ );
|
|
|
+ fractionResult.lineHeight = 70;
|
|
|
+ renderList.push(fractionResult);
|
|
|
+ renderList.push(
|
|
|
+ game.add.text(
|
|
|
+ nextX,
|
|
|
+ y0,
|
|
|
+ mmc === 1 || resultNominatorUnsigned === 0 ? '' : '___',
|
|
|
+ font
|
|
|
+ )
|
|
|
+ );
|
|
|
|
|
|
// Fraction result simplified setup
|
|
|
const mdcAux = game.math.mdc(resultNominator, mmc);
|
|
|
const mdc = mdcAux < 0 ? -mdcAux : mdcAux;
|
|
|
- if (mdc !== 1) {
|
|
|
+ if (mdc !== 1 && resultNominatorUnsigned !== 0) {
|
|
|
+ alert(mdc + ' ' + resultNominatorUnsigned);
|
|
|
nextX += offsetX;
|
|
|
renderList.push(game.add.text(nextX, y0 + 35, '=', font));
|
|
|
|