Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections;
- using System.Collections.Generic;
- namespace AI_Coursework
- {
- public class ListWithDuplicates : List<KeyValuePair<int, int>>
- {
- public void Add(int key, int value)
- {
- var element = new KeyValuePair<int, int>(key, value);
- this.Add(element);
- }
- }
- public class Program
- {
- static void Main(string[] arg)
- {
- // VARIABLES
- char[] seperator = { ',' };
- string[] cavArray;
- int caveCounter = 1;
- // CAVES IN FILE
- int size = 0;
- // READING CAV FILE INTO STRING
- string cav = System.IO.File.ReadAllText(@"C:\Caverns\input1.cav");
- if (cav != null)
- {
- Console.WriteLine("File Loaded.");
- }
- else
- {
- Console.WriteLine("File Failed to Load");
- }
- // SPLITTING CAV STRING INTO ARRAY
- cavArray = cav.Split(seperator, StringSplitOptions.RemoveEmptyEntries);
- // MOVING CAV ARRAY INTO A LIST
- List<int> cavList = new List<int>();
- for (int i = 0; i < cavArray.Length; i++)
- {
- cavList.Add(Convert.ToInt32(cavArray[i]));
- }
- // FINDING THE AMOUNT OF CAVES IN THE FILE THEN REMOVING FROM LIST
- size = Convert.ToInt32(cavList[0]);
- cavList.RemoveAt(0);
- // CREATING LINKED LIST FOR COORDINATES
- List<int> coordList = new List<int>();
- // ADDING ALL COORDINATES TO THE LIST
- for (int i = 0; i < size * 2; i++)
- {
- coordList.Add(cavList[0]);
- cavList.RemoveAt(0);
- }
- // CREATING LINKED LIST FOR CONNECTIONS
- List<int> connectionsList = new List<int>();
- // ADDING ALL CONNECTIONS TO THE LIST
- for (int i = 0; i < size * size; i++)
- {
- connectionsList.Add(cavList[0]);
- cavList.RemoveAt(0);
- }
- // REMOVING CAVLIST AS UNNECESSARY
- cavList.Clear();
- // SPLITTING THE LIST OF COORDINATES INTO A SEPERATE COORDINATE LIST
- var list = new ListWithDuplicates();
- for(int i = 0; i < size * 2; i++)
- {
- if(caveCounter % 2 == 0)
- {
- // SETTING APPROPRIATE X Y COORDINATES
- int x = coordList[0];
- coordList.RemoveAt(0);
- int y = coordList[0];
- coordList.RemoveAt(0);
- // ADDING THEM TO A LIST
- list.Add(x, y);
- }
- caveCounter++;
- }
- // RESETTING CAVE COUNTER
- caveCounter = 1;
- for (int i = 0; i < size; i++)
- {
- var value = list[i];
- Console.WriteLine("Cave: " + caveCounter + " has coordinates: " + value);
- caveCounter++;
- }
- var connectCounter = 0;
- var caveNumber = 0;
- var connectionCounter = 0;
- foreach(int n in connectionsList)
- {
- if(connectionCounter % 7 == 0)
- {
- caveNumber++;
- connectionCounter = 0;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement