public void UpdateCharacter(AppearingChar character) { if (character.counter == 0) { Elements["Character" + (characterIndex + 1) % 3].Clear(); Elements["Counter" + (characterIndex + 1) % 3].Clear(); } else { Elements["Counter" + characterIndex % 3].Lines = Ascii[character.counter.ToString()]; Elements["Counter" + characterIndex % 3].Update(); Elements["Character" + characterIndex % 3].ForegroundColor = ConsoleColor.Green; Elements["Character" + characterIndex % 3].Update(); } }
private void LoadSegment() { if (gameOverProcesDone) { return; } RefreshTimeToAnswer(); //======================== //3 posibility //first load if (mainElement == null) { for (int i = 1; i <= matchOpttions.amountElementsSameTime; i++) { mainElement = new AppearingChar(matchOpttions); queue.Enqueue(mainElement); view.Add(mainElement); } mainElement = queue.Dequeue(); return; } //refresh if (mainElement.counter > 0) { view.UpdateCharacter(mainElement); } //hit if (mainElement.counter == 0) { mainElement = new AppearingChar(matchOpttions); queue.Enqueue(mainElement); view.Add(mainElement); mainElement = queue.Dequeue(); } }
public void Add(AppearingChar character) { Random rand = new Random(); List <string> characterLines = Ascii[character.character.ToString()]; List <string> counterLines = Ascii[character.counter.ToString()]; bool vac = true; do { vac = true; character.PosX = rand.Next(5, Console.WindowWidth - 5); character.PosY = rand.Next(3, Console.WindowHeight - 7); for (int i = 0; i < 8; i++) { for (int j = 0; j < GetAsciiWidth(character.character.ToString()) + 9; j++) { if (vacancy[character.PosY + i, character.PosX + j] == false) { vac = false; break; } } if (vac == false) { break; } } } while (vac == false); Elements["Character" + characterIndex % 3].Clear(); Elements["Counter" + characterIndex % 3].Clear(); Elements["Character" + characterIndex % 3].Width = GetAsciiWidth(character.character.ToString()); Elements["Counter" + characterIndex % 3].Width = GetAsciiWidth(character.counter.ToString()); if (characterIndex > 3) { ReleasePos(Elements["Character" + characterIndex % 3]); ReleasePos(Elements["Counter" + characterIndex % 3]); } Elements["Character" + characterIndex % 3].PosX = character.PosX; Elements["Character" + characterIndex % 3].PosY = character.PosY; LockPos(Elements["Character" + characterIndex % 3]); LockPos(Elements["Character" + characterIndex % 3]); Elements["Character" + characterIndex % 3].Lines = characterLines; Elements["Counter" + characterIndex % 3].PosX = character.PosX + GetAsciiWidth(character.character.ToString()) + 1; Elements["Counter" + characterIndex % 3].PosY = character.PosY + 1; Elements["Counter" + characterIndex % 3].Lines = counterLines; if (characterIndex == 0) { Elements["Character" + characterIndex % 3].ForegroundColor = ConsoleColor.Green; Elements["Counter" + characterIndex % 3].ForegroundColor = ConsoleColor.Green; Elements["Character" + characterIndex % 3].Update(); Elements["Counter" + characterIndex % 3].Update(); } else { Elements["Character" + characterIndex % 3].ForegroundColor = ConsoleColor.White; Elements["Counter" + characterIndex % 3].ForegroundColor = ConsoleColor.White; Elements["Character" + characterIndex % 3].Update(); Elements["Counter" + characterIndex % 3].Update(); Elements["Character" + (characterIndex + 1) % 3].ForegroundColor = ConsoleColor.Green; Elements["Counter" + (characterIndex + 1) % 3].ForegroundColor = ConsoleColor.Green; Elements["Character" + (characterIndex + 1) % 3].Update(); Elements["Counter" + (characterIndex + 1) % 3].Update(); Elements["Character" + (characterIndex + 2) % 3].ForegroundColor = ConsoleColor.Blue; Elements["Counter" + (characterIndex + 2) % 3].ForegroundColor = ConsoleColor.Blue; Elements["Character" + (characterIndex + 2) % 3].Update(); Elements["Counter" + (characterIndex + 2) % 3].Update(); } characterIndex++; }