Advertisement
Tomhass

Untitled

Nov 11th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.53 KB | None | 0 0
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4.  
  5. namespace AI_Coursework
  6. {
  7.  
  8.     public class ListWithDuplicates : List<KeyValuePair<int, int>>
  9.     {
  10.         public void Add(int key, int value)
  11.         {
  12.             var element = new KeyValuePair<int, int>(key, value);
  13.             this.Add(element);
  14.         }
  15.     }
  16.  
  17.  
  18.     public class Program
  19.     {
  20.  
  21.         static void Main(string[] arg)
  22.         {
  23.            
  24.             // VARIABLES
  25.             char[] seperator = { ',' };
  26.             string[] cavArray;
  27.             int caveCounter = 1;
  28.  
  29.             // CAVES IN FILE
  30.             int size = 0;            
  31.  
  32.             // READING CAV FILE INTO STRING
  33.             string cav = System.IO.File.ReadAllText(@"C:\Caverns\input1.cav");          
  34.             if (cav != null)
  35.             {
  36.                 Console.WriteLine("File Loaded.");
  37.             }
  38.             else
  39.             {
  40.                 Console.WriteLine("File Failed to Load");
  41.             }
  42.  
  43.             // SPLITTING CAV STRING INTO ARRAY
  44.             cavArray = cav.Split(seperator, StringSplitOptions.RemoveEmptyEntries);
  45.             // MOVING CAV ARRAY INTO A LIST
  46.             List<int> cavList = new List<int>();
  47.             for (int i = 0; i < cavArray.Length; i++)
  48.             {
  49.                 cavList.Add(Convert.ToInt32(cavArray[i]));
  50.             }
  51.             // FINDING THE AMOUNT OF CAVES IN THE FILE THEN REMOVING FROM LIST
  52.             size = Convert.ToInt32(cavList[0]);
  53.             cavList.RemoveAt(0);
  54.  
  55.             // CREATING LINKED LIST FOR COORDINATES
  56.             List<int> coordList = new List<int>();
  57.             // ADDING ALL COORDINATES TO THE LIST
  58.             for (int i = 0; i < size * 2; i++)
  59.             {
  60.                 coordList.Add(cavList[0]);
  61.                 cavList.RemoveAt(0);
  62.             }
  63.             // CREATING LINKED LIST FOR CONNECTIONS
  64.             List<int> connectionsList = new List<int>();
  65.             // ADDING ALL CONNECTIONS TO THE LIST
  66.             for (int i = 0; i < size * size; i++)
  67.             {
  68.                 connectionsList.Add(cavList[0]);
  69.                 cavList.RemoveAt(0);
  70.             }
  71.             // REMOVING CAVLIST AS UNNECESSARY
  72.             cavList.Clear();
  73.  
  74.             // SPLITTING THE LIST OF COORDINATES INTO A SEPERATE COORDINATE LIST
  75.             var list = new ListWithDuplicates();
  76.             for(int i = 0; i < size * 2; i++)
  77.             {
  78.                 if(caveCounter % 2 == 0)
  79.                 {
  80.                     // SETTING APPROPRIATE X Y COORDINATES
  81.                     int x = coordList[0];
  82.                     coordList.RemoveAt(0);
  83.                     int y = coordList[0];
  84.                     coordList.RemoveAt(0);
  85.                     // ADDING THEM TO A LIST
  86.                     list.Add(x, y);
  87.                 }
  88.                 caveCounter++;
  89.             }
  90.             // RESETTING CAVE COUNTER
  91.             caveCounter = 1;
  92.  
  93.             for (int i = 0; i < size; i++)
  94.             {
  95.                 var value = list[i];
  96.                 Console.WriteLine("Cave: " + caveCounter + " has coordinates: " + value);
  97.                 caveCounter++;
  98.             }
  99.  
  100.             var connectCounter = 0;
  101.             var caveNumber = 0;
  102.             var connectionCounter = 0;
  103.  
  104.  
  105.             foreach(int n in connectionsList)
  106.             {
  107.                 if(connectionCounter % 7 == 0)
  108.                 {
  109.                     caveNumber++;
  110.                     connectionCounter = 0;
  111.                 }
  112.             }
  113.         }
  114.     }
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement