Advertisement
pseudocreator

Hanojske kule2

Oct 17th, 2014
469
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.19 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 ConsoleApplication6
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             bool dalje = true;
  14.             bool ok = true;
  15.             char znak;
  16.  
  17.             //petlja za rad programa dalje
  18.             do
  19.             {
  20.                 //rad programa
  21.                 unosBroja();
  22.                 Console.WriteLine("za ponovno izvrsavanje unesite d, za kraj k ili n");
  23.                 ok = char.TryParse(Console.ReadLine(), out znak);
  24.                 if (ok)
  25.                 {
  26.                     if ((znak == 'd') || (znak == 'n') || (znak == 'k'))
  27.                     {
  28.                         if ((znak == 'n') || (znak == 'k'))
  29.                         {
  30.                             dalje = false;
  31.                         }
  32.                     }
  33.                 }
  34.    
  35.             } while (dalje);
  36.          }
  37.  
  38. //***********************************************
  39.  
  40.         static void unosBroja()
  41.         {  
  42.             bool opet = true;
  43.             int brDiskova = 0;
  44.             bool ok;
  45.  
  46.             do
  47.             {
  48.                 Console.WriteLine("Unesite broj diskova: ");
  49.                 ok = int.TryParse(Console.ReadLine(), out brDiskova);
  50.                 if (ok)
  51.                 {
  52.                     opet = false;
  53.                     hKule(brDiskova, 1, 2, 3);
  54.                 }
  55.                 else
  56.                 {
  57.                     Console.WriteLine("Pogresan unos!");
  58.                     opet = true;
  59.                 }
  60.  
  61.             } while (opet);
  62.         }
  63.  
  64.         //proc za izracunavanje i ispis
  65.         static void hKule(int broj, int izv, int cilj, int pom){
  66.             if (broj == 1)
  67.             {
  68.                 Console.WriteLine("Prebaci disk sa stapa {0} na stap {1};", izv, cilj);
  69.             }
  70.             else
  71.             {
  72.                 hKule((broj-1),izv,pom,cilj);
  73.                 hKule(1,izv,cilj,pom);
  74.                 hKule((broj-1),pom,cilj,izv);
  75.             }
  76.  
  77.         }
  78.  
  79.         static void cekaj() {
  80.             Console.ReadLine();
  81.         }
  82.  
  83.  
  84.     }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement