На данный момент всё реализовано так, как показано ниже. Есть 2 класса - сама игра и класс со списком всех слов. В классе Game в список currentWords получаю массив строк из класса WordsArray. Получаемые строки зависят от значения текущего уровня, которое передаётся в функцию changeWords в классе WordsArray. После того, как передав значение уровня и обновив значения переменных targetword и words перебором в операторе switch, я забираю эти значения в класс Game, функцией BuildLevel. Проблема в самой реализиции нужной задачи. Решение со switch не самое лучшее, учитывая, что в перспективе число слов с 50 может увеличиться до 100 - 150. Switch на 150 кейсов занимает значительное время на выполнение (приложение на Андроид). Я понимаю, что реализовано это очень убого, но мои познания в C# не велеки и поэтому ничего другого мне в голову не пришло.
Как можно по другому реализовать эту задачу, без сотни кейсов свитча?
public class Game {
public List<string> currentWords;
public string Targetword;
public int level = 0;
public void BuildLevel(){
Targetword = WordsArray.targetword;
currentWords.AddRange(WordsArray.words);
}
public void nextLevel(){
level++;
WordsArray.changeWords(level);
BuildLevel();
}
}
public class WordsArray{
public static string targetword;
public static string[] words = {"EMPTY","EMPTY","EMPTY","EMPTY","EMPTY"};
public static void changeWords(int level){
switch (level) {
case 0:
targetword = "fsewt";
words = new string[]{ "twetwt", "twtat", "twtwtw", "twtwt", "twtfsdfggs" };
break;
case 1:
targetword = "vdfrty";
words = new string[]{ "wywyt", "gdghdye", "yeye", "gxcbchd", "hdhey" };
break;
case 2:
targetword = "wtwtwtyw";
words = new string[]{ "bnvnbvbv", "nvnbn", "nbbnv", "teyee", "tyeyey" };
break;
case 3:
targetword = "eyryyr";
words = new string[]{ "ghjghjg", "jfjfue", "uruuu", "uetetewre", "rwrwrt" };
break;
case 4:
****
case 50:
targetword = "wtetre";
words = new string[]{ "tertet", "tete", "tetete", "tetetert", "trtetrrt" };
break;
default:
targetword = "EMPTY";
words = new string[]{ "EMPTY", "EMPTY", "EMPTY", "EMPTY", "EMPTY" };
break;
}
}