I am pretty new to C# and so i would like to ask you, how i could improve my code. I am currently coding a Visual Studio C# Console Game where you have to stack blocks. Currently you can only Stack 3 blocks because my code is getting really long and i am really losing my orientation.
The voids “Reihe1()”, “Reihe2()” and “Reihe3()” are for the different rows. Is there any way i can improve my code? To completly understand my game pls just try it in Visual Studio.
I hope that you can help me. And please keep in mind, that i am a beginner!
Here is the code:
//(c) DomeGamer14 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; using static System.Console; using System.IO; namespace Test1 { class Program { public static string[] field = new string[70]; public static int counter = 0; static void Main(string[] args) { for (int i = 0; i < field.Length; i++) { field[i] = "O"; Write(field[i]); if (i == 6 || i == 13 || i == 20 || i == 27 || i == 34 || i == 41 || i == 48 || i == 55 || i == 62 || i == 69) { WriteLine(); } } ReadLine(); Reihe1(); ReadKey(); Clear(); Reihe2(); ReadKey(); ReadKey(); Clear(); Reihe3(); ReadKey(); ReadKey(); } static void Show() { for (int i = 0; i < field.Length; i++) { Write(field[i]); if (i == 6 || i == 13 || i == 20 || i == 27 || i == 34 || i == 41 || i == 48 || i == 55 || i == 62 || i == 69) { WriteLine(); } } } static void Reihe1() { do { Clear(); field[63] = "X"; field[64] = "X"; field[65] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[63] = "O"; field[66] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[64] = "O"; field[67] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[65] = "O"; field[68] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[66] = "O"; field[69] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[69] = "O"; field[66] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[68] = "O"; field[65] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[67] = "O"; field[64] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[66] = "O"; field[63] = "X"; Show(); if (Console.KeyAvailable == true) break; } while (true); } static void Reihe2() { do { Clear(); field[56] = "X"; field[57] = "X"; field[58] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[56] = "O"; field[59] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[57] = "O"; field[60] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[58] = "O"; field[61] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[59] = "O"; field[62] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[62] = "O"; field[59] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[61] = "O"; field[58] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[60] = "O"; field[57] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[59] = "O"; field[56] = "X"; Show(); if (Console.KeyAvailable == true) break; } while (true); for (int i = 0; i < 63; i++) { if (field[i] == "X" && field[i + 7] != "X") { Thread.Sleep(2000); field[i] = "O"; Clear(); Show(); counter += 1; if (counter == 3) { Clear(); WriteLine("Game Over!"); WriteLine("Press a Key to end the program!"); ReadKey(); ReadKey(); Environment.Exit(0); } } } } static void Reihe3() { if (counter == 2) { do { Clear(); field[49] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[49] = "O"; field[50] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[50] = "O"; field[51] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[51] = "O"; field[52] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[52] = "O"; field[53] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[53] = "O"; field[54] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[54] = "O"; field[55] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[55] = "O"; field[54] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[54] = "O"; field[53] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[53] = "O"; field[52] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[52] = "O"; field[51] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[51] = "O"; field[50] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[50] = "O"; field[49] = "X"; Show(); if (Console.KeyAvailable == true) break; } while (true); counter = 0; for (int i = 0; i < 63; i++) { if (field[i] == "X" && field[i + 7] != "X") { Thread.Sleep(2000); field[i] = "O"; Clear(); Show(); counter += 1; if (counter == 3) { Clear(); WriteLine("Game Over!"); WriteLine("Press a Key to end the program!"); ReadKey(); ReadKey(); Environment.Exit(0); } } } } else if (counter == 1) { do { Clear(); field[49] = "X"; field[50] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[49] = "O"; field[51] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[50] = "O"; field[52] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[51] = "O"; field[53] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[52] = "O"; field[54] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[53] = "O"; field[55] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[55] = "O"; field[53] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[54] = "O"; field[52] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[53] = "O"; field[51] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[52] = "O"; field[50] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[51] = "O"; field[49] = "X"; Show(); if (Console.KeyAvailable == true) break; } while (true); counter = 0; for (int i = 0; i < 63; i++) { if (field[i] == "X" && field[i + 7] != "X") { Thread.Sleep(2000); field[i] = "O"; Clear(); Show(); counter += 1; if (counter == 3) { Clear(); WriteLine("Game Over!"); WriteLine("Press a Key to end the program!"); ReadKey(); ReadKey(); Environment.Exit(0); } } } } else { do { Clear(); field[49] = "X"; field[50] = "X"; field[51] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[49] = "O"; field[52] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[50] = "O"; field[53] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[51] = "O"; field[54] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[52] = "O"; field[55] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[55] = "O"; field[52] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[54] = "O"; field[51] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[53] = "O"; field[50] = "X"; Show(); if (Console.KeyAvailable == true) break; Thread.Sleep(200); Clear(); field[52] = "O"; field[49] = "X"; Show(); if (Console.KeyAvailable == true) break; } while (true); counter = 0; for (int i = 0; i < 63; i++) { if (field[i] == "X" && field[i + 7] != "X") { Thread.Sleep(2000); field[i] = "O"; Clear(); Show(); counter += 1; if (counter == 3) { Clear(); WriteLine("Game Over!"); WriteLine("Press a Key to end the program!"); ReadKey(); ReadKey(); Environment.Exit(0); } } } } } } } ```