Added a sequence check so a perfect sequence where no robot is wasted in one turn is possible for every turn of a battle

This commit is contained in:
Gregory Campbell
2020-05-05 22:35:16 -04:00
parent 5b78617a9f
commit 33f4f82d0a
+86
View File
@@ -164,6 +164,8 @@ public class GMScript : MonoBehaviour
EnemyPartsColours[3] = Random.Range(0, 12);
EnemyPartsColours[4] = Random.Range(0, 12);
do{
// COLOURS FOR KILL SEQUENCE ARE GENERATED HERE
for(int i = 0; i < EnemyKillSequence.Length; i++)
{
@@ -191,6 +193,14 @@ public class GMScript : MonoBehaviour
}
}while(!SequenceCheck());
// FOR DEBUGGING PURPOSES ONLY
for(int i = 0; i < EnemyKillSequence.Length; i++)
{
print((Colours)EnemyKillSequence[i]);
}
modelNum = Random.Range(0, 5);
} else {
@@ -1148,6 +1158,82 @@ public class GMScript : MonoBehaviour
}
bool SequenceCheck()
{
for(int i = 0; i < EnemyKillSequence.Length; i++)
{
if(EnemyKillSequence.Length - i >= (4-buffAmount))
{
if((4-buffAmount) == 4)
{
for(int j = i; j < i+4; j++)
{
for(int k = j+1; k < i+4; k++)
{
if(EnemyKillSequence[j] == EnemyKillSequence[k])
{
return false;
}
}
}
i += 3;
} else {
for(int j = i; j < i+3; j++)
{
for(int k = j+1; k < i+3; k++)
{
if(EnemyKillSequence[j] == EnemyKillSequence[k])
{
return false;
}
}
}
i += 2;
}
} else {
int remainder = EnemyKillSequence.Length - i;
for(int j = i; j < i+remainder; j++)
{
for(int k = j+1; k < i+remainder; k++)
{
if(EnemyKillSequence[j] == EnemyKillSequence[k])
{
return false;
}
}
}
i += 4;
}
}
return true;
}
void EnemyBuilder()
{