C언어(하노이탑)
본 자료는 6페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
해당 자료는 6페이지 까지만 미리보기를 제공합니다.
6페이지 이후부터 다운로드 후 확인할 수 있습니다.

본문내용

프로그램 언어 발표
발표 주제 : 하노이 탑
하노이의 탑이란?
하노이의 탑(Tower of Hanoi)은 퍼즐의 일종이다.
개의 기둥과 이 기둥에 꽂을 수 있는 크기가 다양한 판이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원이 작은 것이 위에 있도록 순서대로 쌓여 있다.
게임의 목적은 다음 두 가지 조건을 만족시키면 한 기둥에 꽂힌 원판들을 그 순서 그대로 다른 기둥으로 옮겨서 다시 쌓는 것이다.
1. 한 번에 하나의 원판만 옮길 수 있다.
2. 큰 원판이 작은 원판 위에 있어서는 안 된다.
프로그램 구성
하노이 탑 실행 화면 1
하노이 탑 실행 화면 2
하노이 탑 실행 화면 3
하노이 탑 실행 화면 4
프로그램 코딩 1
#include
#include //system("cls") 함수
#include //getch() 함수
#define LIMIT 10 //최대 층수를 지정
void background(int Base[][LIMIT], int start); //초기 배경화면을 그려준다.
void draw_class(int Base[][LIMIT]); // 탑을 그려준다.
void f_block(int cnt); //블럭을 그려준다.
void move(int Base[][LIMIT]); // 탑을 다른 곳으로 옮긴다.
int end(int Base[][LIMIT], int end); // 완성 했는지 확인한다.
프로그램 코딩 2
void main(){
int base[3][LIMIT]={0}; // 각 틀 3개에 10층까지 쌓을 수 있는 공간 저장
int start; //시작하는 층수
int cnt=0; //옮긴 횟수를 저장한다.
while(1){ // 초기 값 제어
printf("층 수 : ");
scanf("%d", &start);
fflush(stdin); //입력 받고 남은 값을 지워준다.
if( start >= LIMIT ) printf(" 층수를 다시 정해주세요 \n");
else break;
}
background(base, start); //초기화면 출력.
while( !end(base, start) ){
move(base,start);
draw_class(base,start); //변한 층수 그려준다.
cnt++;
}
printf(" 최단 움직임 횟수 : %d \n", start*start-1); // 공식 층수의 제곱 -1
printf(" 내가 움직인 횟수 : %d \n", cnt);

키워드

  • 가격1,000
  • 페이지수19페이지
  • 등록일2011.01.04
  • 저작시기2010.3
  • 파일형식파워포인트(ppt)
  • 자료번호#647269
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니