public void GenerateWorld(int roomsToCreate) { //throw new Exception("Create new rooms"); List <int> Postions; int Tempx = RNG.Next(0, SingleTon.GetRooms().GetLength(0)); int Tempy = RNG.Next(0, SingleTon.GetRooms().GetLength(1)); int tempPicked; bool FoundASpot; SingleTon.GetRooms()[Tempx, Tempy] = new Room(Tempx, Tempy, true, RNG.Next(0, 101)); SingleTon.SetUpCursor(SingleTon.GetRooms()[Tempx, Tempy]); for (int i = 1; i < roomsToCreate; i++) { Postions = new List <int> { 0, 1, 2, 3 }; FoundASpot = false; for (int x = 0; x < 4; x++) { tempPicked = RNG.Next(0, Postions.Count); switch (tempPicked) { case 0: if ((Tempx + 1) < (SingleTon.GetRooms().GetLength(0) - 1) && SingleTon.GetRooms()[(Tempx + 1), Tempy] == null) { Tempx++; SingleTon.GetRooms()[Tempx, Tempy] = new Room(Tempx, Tempy, false, RNG.Next(0, 101)); FoundASpot = true; } else { Postions.Remove(tempPicked); } break; case 1: if ((Tempx - 1) > -1 && SingleTon.GetRooms()[(Tempx - 1), Tempy] == null) { Tempx--; SingleTon.GetRooms()[Tempx, Tempy] = new Room(Tempx, Tempy, false, RNG.Next(0, 101)); FoundASpot = true; } else { Postions.Remove(tempPicked); } break; case 2: if ((Tempy + 1) < (SingleTon.GetRooms().GetLength(1) - 1) && SingleTon.GetRooms()[Tempx, (Tempy + 1)] == null) { Tempy++; SingleTon.GetRooms()[Tempx, Tempy] = new Room(Tempx, Tempy, false, RNG.Next(0, 101)); FoundASpot = true; } else { Postions.Remove(tempPicked); } break; case 3: if ((Tempy - 1) > -1 && SingleTon.GetRooms()[Tempx, (Tempy - 1)] == null) { Tempy--; SingleTon.GetRooms()[Tempx, Tempy] = new Room(Tempx, Tempy, false, RNG.Next(0, 101)); FoundASpot = true; } else { Postions.Remove(tempPicked); } break; } if (FoundASpot == true) { break; } else if (x == 3) { if (RNG.Next(0, 101) > 25) { int[] tempHolder = GiveRandomRoomConnected(); Tempx = tempHolder[0]; Tempy = tempHolder[1]; } else { int[] tempHolder = GiveRandomRoom(); Tempx = tempHolder[0]; Tempy = tempHolder[1]; SingleTon.GetRooms()[Tempx, Tempy] = new Room(Tempx, Tempy, false, RNG.Next(0, 101)); break; } } } } }