2. Wieże Hanoi
Iteracyjna implementacja algorytmu przekładania krążków wraz z wizualizacją działania. Na początku należy zapytać użytkownika o ilość krążków do przekładania. Program oferuje dwa tryby działania: tryb użytkownika (użytkownik przekłada krążki, program liczy ilość ruchów, które wykonał użytkownik) oraz tryb komputera (krążki przekładane są automatycznie co określony czas lub po wciśnięciu klawisza).
No moze nie taki maly i mam w to wrzuic listy jeszcze:(
napisalem cos takiego ale to lipa;/
Kod: Zaznacz cały
#include <stdio.h>
#include <stdlib.h>
#define K 100
void zamiana(int A[],int B[])
{
B[0]=A[0]; /*przelozenie*/
A[0]=0; /*oproznienie*/
}
void rysowanie (int A[],int B[],int C[],int n)
{
int i,b;
for (i=0; i<n;i++)
printf("%15d%15d%15d
",A[i]);
printf("
");
}
void hanoi(int A[],int B[],int C[],int n)
{
if(n==1)
zamiana(A,C);
else
{
hanoi(A,C,B,n-1);
rysowanie(A,B,C,n);
zamiana(A,C);
rysowanie(A,B,C,n);
hanoi(B,A,C+1,n-1);
zamiana(A,C);
rysowanie(A,B,C,n);
}
}
int main() {
int ilosc_krazkow=0,i=0;
int A[K]={1,2,3,4,5,6};
int B[K]={0};
int C[K]={0};
printf("Ilosc krazkow: ");
scanf("%d", &ilosc_krazkow);
rysowanie(A,B,C,ilosc_krazkow);
hanoi(A,B,C,ilosc_krazkow);
rysowanie(A,B,C,ilosc_krazkow);
printf("Ilosc krazkow: ");
system("pause");
return 0;
}