Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

Tháp HN

#include <stdio.h>

#include <conio.h>

const int time=30;

int stc[4]; // So tang cua 3 cot

int st,docao,huong,i,mau,xd,yd,rong;

void xay_thap(int n, int c)

  {

    mau=0;

    yd=24;

    xd=c*20-10;

    rong=20;

    for (i=1; i<=n; i++)

      {

mau=mau+1;

mau=mau % 8;

if (mau==0)

 mau++;

textbackground(mau);

window(xd,yd,xd+rong,yd+1);

clrscr();

yd=yd-2;

xd=xd+1;

rong=rong-2;

delay(time*7);

      }

    stc[c]=n;

  }

void bay_len(int c1)

  {

   do

    {

     textbackground(BLACK);

     window(xd,yd,xd+rong,yd+1);

     clrscr();

     yd=yd-1;

     textbackground(mau);

     window(xd,yd,xd+rong,yd+1);

     clrscr();

     delay(time);

     if (kbhit())

exit(0);

    }

   while (yd!=docao);

   stc[c1]=stc[c1]-1;

  }

void bay_ngang(int t,int c1, int c2)

  {

   if (c2-c1>0)

     huong=1;

   else

     huong=-1;

   do

    {

     textbackground(BLACK);

     window(xd,yd,xd+rong,yd+1);

     clrscr();

     xd=xd+huong;

     textbackground(mau);

     window(xd,yd,xd+rong,yd+1);

     clrscr();

     delay(time);

     if (kbhit())

exit(0);

    }

   while (xd!=c2*20-10+(t-1));

  }

void bay_xuong(int c2)

  {

   do

    {

     textbackground(BLACK);

     window(xd,yd,xd+rong,yd+1);

     clrscr();

     yd=yd+1;

     textbackground(mau);

     window(xd,yd,xd+rong,yd+1);

     clrscr();

     delay(time);

     if (kbhit())

exit(0);

    }

   while (yd!=26-stc[c2]*2-2);

   stc[c2]=stc[c2]+1;

  }

void bay(int t, int c1, int c2)

  {

   yd=26-stc[c1]*2;

   xd=c1*20-10+(t-1);

   rong=20-(t-1)*2;

   mau=t % 8;

   if (mau==0)

     mau=1;

   if (stc[c1]>stc[c2])

     docao=stc[c1];

   else

     docao=stc[c2];

   if ((abs(c1-c2)==2) && (stc[2]>docao))

     docao=stc[2];

   docao=26-docao*2-3;

   bay_len(c1);

   bay_ngang(t,c1,c2);

   bay_xuong(c2);

  }

void chuyen_thap(int n, int c1, int c3, int c2)

  {

   if (n==1)

     bay(st-n+1,c1,c3);

   else

     {

      chuyen_thap(n-1,c1,c2,c3);

      bay(st-n+1,c1,c3);

      chuyen_thap(n-1,c2,c3,c1);

     }

  }

void main()

 {

  textmode(C80);

  textbackground(BLACK);

  clrscr();

  stc[1]=0;

  stc[2]=0;

  stc[3]=0;

  printf("Nhap so tang <12: "); scanf("%d",&st);

  if (st>11)

    exit(0);

  xay_thap(st,1);

  chuyen_thap(st,1,3,2);

  getch();

 }

Bạn đang đọc truyện trên: Truyen247.Pro

Tags: