亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言如何實現(xiàn)漢諾塔游戲

2020-02-24 14:23:48
字體:
供稿:網(wǎng)友

在學習C語言的時候我們都會先從簡單的漢諾塔游戲開始,那么你知道C語言如何實現(xiàn)漢諾塔游戲嗎?別著急,下面武林小編就帶大家一起去了解關(guān)于實現(xiàn)漢諾塔游戲的內(nèi)容。

操作就是:A B 號碼A的塔頂一層放在號碼B的塔頂。如1(空格) 3 回車。 話說有人能把我這C的代碼添加到QT界面框架上去么?? 代碼寫的不好 ,維護性不夠,只能玩8層的,寫完以后發(fā)現(xiàn)很難拓展,軟件工程,設計模式有待提高....
里面提示輸入等級的裝B用了,沒有實現(xiàn),大家隨便輸入個個位數(shù)就可以玩了。

stackfunc.c

#include"STACK.h"#include<stdio.h>extern ceng CENG[SIZE];//數(shù)據(jù)入棧void push_stack(stack*p,int number){  p->arr[p->head]=number;  p->head++;} //初始化棧1void init_stack1(stack*p){  p->head=0;  push_stack(p,1);  push_stack(p,2);  push_stack(p,3);  push_stack(p,4);  push_stack(p,5);  push_stack(p,6);  push_stack(p,7);  push_stack(p,8);}//初始化棧2 3void init_stack2_3(stack* p1,stack* p2){  p1->head=0;  p1->arr[p1->head]=0;  p2->head=0;  p2->arr[p2->head]=0;}//彈出棧頂元素int pop_stack(stack* p){  p->head--;  return p->arr[p->head];}//訪問棧頂元素int top_stack(stack* p){  return p->arr[p->head-1];}//比較兩個棧頂元素的大小int sizecmp_stack(stack* p1,stack* p2){  if(p1->arr[p1->head-1]>p2->arr[p2->head-1])  return 1;  else if(p1->arr[p1->head-1]<p2->arr[p2->head-1])  return -1;  else return 0;} //測出棧的高度int high_stack(stack* p){  return p->head;} //是否為空棧int empty_stack(stack* p){  return p->head==0;} //是否棧滿int full_stack(stack* p){ return p->head==SIZE;} //初始化層1void init_ceng1(ceng* p){  p->number=1;  p->row=SIZE-1;  p->col=0;} //初始化層2void init_ceng2(ceng* p){  p->number=2;  p->row=SIZE-2;  p->col=0;} //初始化層3void init_ceng3(ceng* p){  p->number=3;  p->row=SIZE-3;  p->col=0;} //初始化層4void init_ceng4(ceng* p){  p->number=4;  p->row=SIZE-4;  p->col=0;}//初始化層5void init_ceng5(ceng*p){  p->number=5;  p->row=SIZE-5;  p->col=0;}//初始化層6void init_ceng6(ceng*p){  p->number=6;  p->row=SIZE-6;  p->col=0;  }//初始化層7void init_ceng7(ceng*p){  p->number=7;  p->row=SIZE-7;  p->col=0;}//初始化層8void init_ceng8(ceng*p){  p->number=8;  p->row=SIZE-8;  p->col=0;}//移動層void move_ceng(int level,int *nrow,int *ncol,stack*p1,stack* p2,stack* p3,int stdec){  stack* arr[3];   arr[0]=p1;   arr[1]=p2;   arr[2]=p3;  *nrow=level-1-high_stack(arr[stdec]);  *ncol=stdec;}  //顯示圖片void show_map(void){  int i,j;  for(i=0;i<SIZE;i++)  {    for(j=0;j<3;j++)    {       if(CENG[0].row==i&&CENG[0].col==j)     {       printf("  |    1    |  ");     }else if(CENG[1].row==i&&CENG[1].col==j)     {      printf("  |   2   |  ");     }else if(CENG[2].row==i&&CENG[2].col==j)     {      printf("   |   3   |   ");     }else if(CENG[3].row==i&&CENG[3].col==j)     {      printf("   |  4  |   ");     }else if(CENG[4].row==i&&CENG[4].col==j)     {      printf("    |  5  |    ");     }else if(CENG[5].row==i&&CENG[5].col==j)     {      printf("    | 6 |    ");     }else if(CENG[6].row==i&&CENG[6].col==j){      printf("     | 7 |     ");     }else if(CENG[7].row==i&&CENG[7].col==j){      printf("     |8|     ");  }else  printf("            ");    }    printf("/n");  }  printf("=====================================================================/n");}

main.c

#include"STACK.h"#include<stdio.h> ceng CENG[SIZE];int main(){  int res=1,dec=1;  char con;  int newrow;  int newcol;  int step=0;  int level=0; while(1){  if (level==0)  {    do{    printf("請輸入游戲等級:/n");    scanf("%d",&level);    if(level<=0||level>8)    printf("等級范圍錯誤,重新輸入/n");    }while(level<=0||level>8);  }  level=8;  newrow=0,newcol=0;  stack STACK[3];  //初始化3個棧  init_stack1(&STACK[0]);  init_stack2_3(&STACK[1],&STACK[2]);  //初始化8個層  init_ceng1(&CENG[0]);  init_ceng2(&CENG[1]);  init_ceng3(&CENG[2]);  init_ceng4(&CENG[3]);  init_ceng5(&CENG[4]);  init_ceng6(&CENG[5]);  init_ceng7(&CENG[6]);  init_ceng8(&CENG[7]);while(1){    //打印畫面  switch(level){  case 1:show_map();break;  case 2:show_map();break;  case 3:show_map();break;  case 4:show_map();break;  case 5:show_map();break;  case 6:show_map();break;  case 7:show_map();break;  case 8:show_map();break;  }while(1) {  // printf("游戲等級為:%d/n",level);// printf("源棧最高層是%d ....../n",top_stack(&STACK[res]));  printf("   一號的高度%d ",STACK[0].head);  printf("      二號的高度%d ",STACK[1].head);  printf("     三號的高度%d/n",STACK[2].head);  printf("/n已經(jīng)走的步數(shù)為 %d /n",step);  //選擇源 目標  scanf("%d",&res);  scanf("%d",&dec);  res--;  dec-- ;  if(!(res>=0&&res<3&&dec>=0&&dec<3))/*||(empty_stack(&STACK[res]))*/  {  printf("/n/n輸入范圍超出/n");  }else if(empty_stack(&STACK[res])==1)  {    printf("%d/n",STACK[0].head);    printf("/n/n源???n");  }  else if(sizecmp_stack(&STACK[res],&STACK[dec])<0)  {  printf("/n/n大塊的不能放在小塊的上面/n");  }else  {      if(dec!=res){    printf("/n/n/n正在移動層塊..../n");    step++;    move_ceng(level,&newrow,&newcol,&STACK[0],&STACK[1],&STACK[2],dec);    CENG[top_stack(&STACK[res])-1].row=newrow;    CENG[top_stack(&STACK[res])-1].col=newcol;    push_stack(&STACK[dec],pop_stack(&STACK[res]));    break;    }else    {      printf("/n/n/n放輕松/n");    }break;   }  show_map(); }     if (full_stack(STACK+1)==1||full_stack(STACK+2)==1)  {    printf("完成了漢諾塔!/n");    level++;    break;  }}  show_map();  printf("是否繼續(xù)游戲?繼續(xù)請輸入y,否則按其它鍵/n");  scanf("%*[^/n]");  scanf("%*c");  scanf("%c",&con);  if(con!='y')  break;}  return 0;}

STACK.h

#ifndef     __STACK_H__#define     __STACK_H__#define     SIZE    8typedef struct STACK{  int head;  int arr[SIZE];}stack; typedef struct CENG{  int number;  int row;  int col;}ceng; extern ceng CENG[SIZE]; //入棧void push_stack(stack*,int);//初始化棧1void init_stack1(stack*);//初始化棧2和3void init_stack2_3(stack*,stack*);//出棧int pop_stack(stack*);//訪問棧頂元素int top_stack(stack*);//比較棧頂元素大小 -1 1int sizecmp_stack(stack*,stack*);//判斷棧的高度int high_stack(stack*);//判斷棧是否為空1 0int empty_stack(stack*);//判斷棧是否滿1 0int full_stack(stack*); //初始化層1void init_ceng1(ceng*);//初始化層2void init_ceng2(ceng*);//初始化層3void init_ceng3(ceng*);//初始化層4void init_ceng4(ceng*);//初始化層5void init_ceng5(ceng*);//初始化層6void init_ceng6(ceng*);//初始化層7void init_ceng7(ceng*);//初始化層8void init_ceng8(ceng*);//移動層塊void move_ceng(int ,int * a,int *b,stack*,stack*,stack*,int k );//打印畫面void show_map();#endif 

演示圖片

看完后你知道C語言如何實現(xiàn)漢諾塔游戲了嗎?上文中小編為大家介紹了相信的實現(xiàn)方法,希望能夠?qū)Υ蠹覍W習C語言的遞歸算法有所幫助

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

亚洲四色影视在线观看| 亚洲国产中文字幕在线| 视频在线一区二区| 久久人妻少妇嫩草av无码专区| 狠狠色综合久久婷婷| 国产成人精品免费一区二区| 国产日韩欧美精品综合| 国产主播喷水一区二区| 九色porny丨入口在线| 91成人在线观看国产| 欧美a级片免费看| 在线观看污污网站| 午夜激情视频在线观看| av免费看在线| 黑人狂躁日本妞一区二区三区| 欧美一区二区高清在线观看| 亚洲综合伊人久久| 国产一区二区三区精品在线| 在线观看精品一区| 欧美国产激情视频| jizzjizz在线| 九色精品视频在线观看| a美女胸又www黄视频久久| 成人在线免费看黄| 欧美精品xxxxx| 性高潮久久久久久久久| jizz免费视频| 天海翼一区二区三区免费| 91久久在线播放| 五十度飞在线播放| 中文字幕日本视频| aaawww| 亚州精品一二三区| 超碰在线公开免费| 五月天色婷婷丁香| 久久精品国产**网站演员| 国产精品高潮久久久久无| 99精品小视频| 日韩高清在线观看一区二区| 手机福利在线视频| 国产精品第157页| 在线观看精品自拍视频| 国产91对白在线播放| 丁香激情五月婷婷| 91精品国产高清自在线| 7799精品视频| 米奇777在线欧美播放| 日本久久久网站| 午夜精品网站| 亚洲视频自拍| 亚洲十八**毛片| 国产精品青青在线观看爽香蕉| 国产一区二区在线免费观看| 亚洲第一综合色| 在线视频福利| 久久久久亚洲精品中文字幕| av中文字幕在线| 欧美日韩综合一区| 国产剧情在线视频| 国产亚洲久一区二区| 亚洲久久中文字幕| 日韩精品久久久久久久的张开腿让| 九色国产视频| 菠萝蜜视频网站入口| 日本亚洲欧美在线| 国产美女自拍视频| 免费黄网站在线观看| 国产xxxx做受性欧美88| 国产白嫩美女无套久久| 91精品国产欧美一区二区| 欧美日韩综合视频| 韩国一级黄色录像| 国产成人aa在线观看网站站| av网站观看| 久久精品1区| 国产精品视频你懂的| 日韩精品无码一区二区三区免费| 毛片网站免费哦| 乱中年女人伦av一区二区| 2020国产精品| 欧美日韩高清| 在线精品视频播放| 亚洲伊人影院| 18性欧美xxxⅹ性满足| 色婷婷一区二区三区av免费看| 五月婷中文字幕| 岛国av在线不卡| 国产嫩草影院久久久久| 手机成人在线| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 欧美一级黑人aaaaaaa做受| 国产精品女上位| 久久久一区二区三区捆绑**| 国产亚洲无码精品| 国产精品九九九九| 国产亚洲精品自在线观看| 91久久极品少妇xxxxⅹ软件| 少妇无码一区二区三区| 性一交一乱一乱一视频| 国产suv一区二区三区| 亚洲精品套图| 国产精品一区二区视频| 在线一区二区视频| 亚洲神马久久| а√中文在线资源库| 99久久精品免费精品国产| 国产精品chinese| 国产精品一区免费视频| 在线观看中文字幕视频| 成人三级伦理片| 亚洲五月天综合| a视频网址在线观看| 女人十八毛片嫩草av| 亚洲三级网站| 成人午夜高潮视频| 国产午夜亚洲精品一级在线| 97人摸人人澡人人人超一碰| 性欧美在线视频| 日韩欧美不卡视频| 级毛片内射视频| 午夜伦理大片视频在线观看| wwwwwww色| 日韩欧美一二三区| 欧美大波大乳巨大乳| 欧美另类中文字幕| 日韩在线观看av| 国产一二三区在线视频| 欧美性感一类影片在线播放| 大香伊人中文字幕精品| 久热99视频在线观看| 久久国产精品免费精品3p| jizz性欧美23| 久久精品国产v日韩v亚洲| 亚洲毛片在线| 中文字幕国产在线观看| а天堂8中文最新版在线官网| 日韩一级中文字幕| 欧洲av在线播放| 免费一级特黄特色毛片久久看| 国内精品视频在线播放| 北岛玲日韩精品一区二区三区| 亚洲免费av一区二区三区| 中文字幕av久久爽一区| 中文字幕这里只有精品| 亚洲福利在线观看| 亚洲色图100p| 中文字幕+乱码+中文| 欧美激情视频在线观看| 日本成人在线视频网站| 亚洲视频每日更新| 成人一区二区在线观看| 国产精品久久波多野结衣| 精品国产免费一区二区三区| 亚洲永久免费av| 99久re热视频这里只有精品6| 久久综合九色综合97婷婷| 国产午夜精品久久| 好吊妞国产欧美日韩免费观看网站| 中文字幕日韩有码| 中文字幕中文字幕一区| 久久精品视频一区二区三区| 久草资源在线| 伊人久久在线观看| 成人av免费网站| 少妇欧美激情一区二区三区| 精品成人一区| 在线观看日韩高清av| 性欧美video另类hd尤物| 人妻无码久久一区二区三区免费| 杨钰莹一级淫片aaaaaa播放| 久久久久久夜| 秋霞精品一区二区三区| 欧美一a一片一级一片| 免费中文字幕av| 久久69国产一区二区蜜臀| 黄色网址入口| 视频一区视频二区国产精品| 一级欧洲+日本+国产| 欧美成人vps| 国产一区二区三区黄| 色婷婷av国产精品| 国产真实乱对白精彩久久| 欧美少妇激情| 美女视频第一区二区三区免费观看网站| jizzjizzjizz美国| 全部孕妇毛片丰满孕妇孕交| 色婷婷综合久久久| 成人午夜福利视频| 91久久香蕉国产日韩欧美9色| 中文字幕日韩欧美精品在线观看| 99久久99久久免费精品小说| 亚洲欧美视频| 蜜臀av国内免费精品久久久夜夜| 林心如三级全黄裸体| 欧洲精品99毛片免费高清观看| 美日韩黄色大片| 91麻豆精品秘密入口| 精品久久久久久久久久久久久久久久久| 日本aa大片在线播放免费看| 亚洲欧美精品久久| 国产精品人人| 国产成人精品自拍| 四虎影视精品成人| 五月天亚洲综合| xxxxx国产| 亚洲黄色三级| 欧美精品久久久久久久久久久| 亚洲国产伊人| 波多野结衣在线一区二区| 久久91精品国产91久久跳| 久久久久久国产精品免费播放| 国产福利亚洲| 精品成a人在线观看| 成品人视频ww入口| 国产精品免费区二区三区观看| 久久久亚洲国产天美传媒修理工| 韩国av免费在线观看| 欧美xxxx黑人xyx性爽| 日韩精品免费在线观看| 中国精品18videos性欧美| 国精产品一区一区三区四川| 99精品国产高清一区二区麻豆| 鲁一鲁一鲁一鲁一av| 四虎网站在线观看| 熟妇高潮一区二区| 亚洲最大的成人网| 26uuu色噜噜精品一区| 性欧美videoshd高清| 国产一区二区三区黄片| 国产精品久久久网站| 嫩草www视频在线观看高清| 超碰在线99| 69堂视频在线观看国产| 精品无码一区二区三区爱欲| 亚洲免费综合| 欧美性受xxxx黑人xxxx| 国产在线观看免费麻豆| 亚洲影院高清在线| 中文字幕黄色av| 国产精品视频| 精品美女在线视频| 日韩激情视频在线观看| 日韩一区二区免费在线观看| 丁香花在线电影| 黄色av资源| 色欲av永久无码精品无码蜜桃| 久草精品在线播放| 日本电影一区二区| 亚洲一区二区免费在线观看| 麻豆av一区二区三区| 乱子伦在线视频| 欧美三级午夜理伦三级中文幕| 国模大尺度视频| 重囗味另类老妇506070| 日本粉色视频在线观看| 日韩高清在线一区| 91免费电影网站| 99亚偷拍自图区亚洲| 伊人亚洲综合网| 欧美99在线视频观看| 六月婷婷久久| 色婷婷av一区| av成人在线观看| 欧美午夜性春猛xxxx| 免费视频亚洲| 午夜激情一区| 在线观看国产精品一区| 亚洲sss综合天堂久久| 91专区在线观看| 欧美视频一区二区三区| 欧日韩在线视频| 中文字幕色网站| 韩国女主播一区二区三区| 亚洲卡一卡二| 成人爱爱电影网址| 欧美日韩一区二区在线观看视频| 国产精品aaa| 国产人妻精品一区二区三| 欧美精品aaa| 草草草视频在线观看| 538国产精品视频一区二区| 成人蜜桃视频网站网址| 亚洲免费激情视频| 116极品美女午夜一级| 午夜日韩在线观看| www.一区二区三区.com| 国产精品白浆视频免费观看| 日韩高清免费在线| 99久精品视频在线观看视频| 国产高清在线观看视频| 国产亚洲精品久久久久动| 精品精品久久| 激情图片qvod| 狠狠操狠狠干视频| 三级电影一区| 久久影院一区二区| www.中文字幕久久久| 韩国v欧美v日本v亚洲| 成人在线观看一区二区| www.avtt| 不卡一区二区在线| 国产精品乱码一区二区视频| 蜜桃免费网站一区二区三区| 一本一本a久久| 在线女人免费视频| 最新av免费在线| 爱爱视频网站免费| 久久九九国产| 亚洲国产综合人成综合网站| 97超碰人人看人人| 色与欲影视天天看综合网| 91在线在线观看| 欧美久久久影院| 日韩亚洲欧美中文字幕| 日韩欧美在线第一页| 欧美视频在线观看 亚洲欧| 亚洲欧美日韩在线观看a三区| 亚洲国产美国国产综合一区二区| 日本一区二区三区在线免费观看| 日韩视频在线免费观看| 亚欧在线观看视频| caoporn国产| 日韩制服一区| 热久久一区二区| 久久久久久久久影院| 国产真实乱子伦精品视频| av黄色在线观看| 国产亚洲日本欧美韩国|