kabanosiek

nodecounter

Oct 25th, 2019
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.84 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace mozesieuda
  8. {
  9.     public class Treenode
  10.     {
  11.         public int currentrow { get; set; }
  12.         public int currentcolumn { get; set; }
  13.         public IEnumerable<Treenode> Treenodes
  14.         {
  15.             get
  16.             {
  17.  
  18.                 if (FilesStream.map[currentrow - 1, currentcolumn - 1] == 'x' && currentrow - 1>=0 && currentcolumn - 1>=0)
  19.                     yield return new Treenode { currentrow = currentrow - 1, currentcolumn = currentcolumn - 1 };
  20.                 if (FilesStream.map[currentrow - 1, currentcolumn] == 'x' && currentrow - 1>=0 && currentcolumn>=0)
  21.                     yield return new Treenode { currentrow = currentrow - 1, currentcolumn = currentcolumn };
  22.                 if (FilesStream.map[currentrow - 1, currentcolumn + 1] == 'x' && currentrow - 1>=0 && currentcolumn <=FilesStream.columns-2)
  23.                     yield return new Treenode { currentrow = currentrow - 1, currentcolumn = currentcolumn + 1 };
  24.                 if (FilesStream.map[currentrow, currentcolumn - 1] == 'x' && currentrow>=0 &&  currentcolumn - 1>=0)
  25.                     yield return new Treenode { currentrow = currentrow, currentcolumn = currentcolumn - 1 };
  26.                 if (FilesStream.map[currentrow, currentcolumn + 1] == 'x' && currentrow>=0 && currentcolumn<=FilesStream.columns-2)
  27.                     yield return new Treenode { currentrow = currentrow, currentcolumn = currentcolumn + 1 };
  28.                 if (FilesStream.map[currentrow + 1, currentcolumn - 1] == 'x' && currentrow<=FilesStream.rows-2 && currentcolumn - 1>=0)
  29.                     yield return new Treenode { currentrow = currentrow + 1, currentcolumn = currentcolumn - 1 };
  30.                 if (FilesStream.map[currentrow + 1, currentcolumn] == 'x' && currentrow <=FilesStream.rows-2 && currentcolumn>=0)
  31.                     yield return new Treenode { currentrow = currentrow + 1, currentcolumn = currentcolumn };
  32.                 if (FilesStream.map[currentrow + 1, currentcolumn + 1] == 'x' && currentrow <=FilesStream.rows-2 && currentcolumn <=FilesStream.columns-2)
  33.                     yield return new Treenode { currentrow = currentrow + 1, currentcolumn = currentcolumn + 1 };
  34.             }
  35.         }
  36.         public int? Counter()
  37.         {
  38.             int? counter = 1;
  39.             FilesStream.counter++;
  40.             if (currentrow == 0 || currentrow == FilesStream.rows - 1 || currentcolumn == 0 || currentcolumn == FilesStream.columns - 1)
  41.             {
  42.                 return null;
  43.             }
  44.             foreach(var node in Treenodes)
  45.             {
  46.                 FilesStream.map[node.currentrow, node.currentcolumn] = 'a';
  47.                 counter += node.Counter();
  48.             }
  49.             return counter;
  50.         }
  51.  
  52.     }
  53. }
Add Comment
Please, Sign In to add comment