亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這個打印二維數組的函數有啥問題

這個打印二維數組的函數有啥問題

C
Ocelot 2020-02-02 15:07:09
學了兩個C語言課程,想練練手?,可是遇到了一些問題?,主要是printGameArea()函數,for循環后在GameAreaController()函數中賦值的坐標為[2][14]的方塊沒有正確放置?,其他正常,大家幫幫忙。?注:MakeShell(),MakeHit()還沒寫完?上代碼:#include?<stdio.h> #include?<stdlib.h> #include?<time.h> #define?reduction()?printf("\033[0m");??//還原輸出屬性 char?GameArea[8][16];//將游戲面板網格化定義為二維數組 void?printGameArea(); //輸出面板 void?GameAreaController(); //面板控制器,負責刷新面板 void?sleep(); //中斷若干秒,用于炮彈和敵方方塊的移動間隔時間 void?PlayerMove(int?direct,int?step,int?x,int?y); //移動玩家的位置 void?MakeShell(int?x,int?v); //生成炮彈 void?MakeHit(int?x,int?v); //生成敵方方塊 extern?void?run() //運行函數,主調用 { ????????GameAreaController(); ????????printGameArea(); ????????//sleep(3); ????????//PlayerMove(1,3,0,15); ????????//PlayerMove(1,3,1,15); ????????//PlayerMove(1,3,2,15); ????????//PlayerMove(1,3,1,14); ????????//printGameArea(); } void?printGameArea() { /*原理: *判斷某位置的方塊的屬性進行顏色的分配 *說明:函數執行后光標在面板下一行的開頭 */ ????????int?i,j; ????????for(j=0;j<16;j++) ????????{ ????????????????for(i=0;i<8;i++) ????????????????{ ????????????????????????if(GameArea[i][j]=='%') ????????????????????????{ ????????????????????????????????printf("\033[44m%c",GameArea[i][j]);????//玩家:藍色背景色 ????????????????????????????????reduction(); ????????????????????????} ????????????????????????else?if(GameArea[i][j]=='+') ????????????????????????{ ????????????????????????????????printf("\033[33m%c",GameArea[i][j]);????//炮彈:黃色字體色 ????????????????????????????????reduction(); ????????????????????????} ????????????????????????else?if(GameArea[i][j]==':') ????????????????????????{ ????????????????????????????????printf("\033[41m%c",GameArea[i][j]);????//敵對方塊:紅色背景色 ????????????????????????????????reduction(); ????????????????????????} ????????????????????????else ????????????????????????{ ????????????????????????????????printf("%c",GameArea[i][j]);????//空格:無 ????????????????????????????????reduction(); ????????????????????????} ????????????????} ????????????????printf("\n"); ????????} } void?GameAreaController() { ????????GameArea[0][15]=GameArea[1][15]=GameArea[2][15]=GameArea[2][14]='%'; ????????//初始化玩家操作區 } void?sleep(int?sec) { ????????time_t?t_0; ????????t_0=time(NULL); ????????while(1) ????????{ ????????????????time_t?t_n; ????????????????t_n=time(NULL); ????????????????if(t_n-t_0>sec) ????????????????????????break; ????????} } void?PlayerMove(int?direct,int?step,int?x,int?y) { ????????if(direct==1) ????????{ ????????????????/* ????????????????*如果這樣寫會報錯: ????????????????GameArea[x+step][y]=GameArea[x][y]; ????????????????GameArea[x][y]='?'; ????????????????*/ ????????????????int?tmp=GameArea[x][y]; ????????????????GameArea[x+step][y]=tmp; ????????????????GameArea[x][y]='?'; ????????} ????????else?if(direct==0) ????????{ ????????????????int?tmp=GameArea[x][y]; ????????????????GameArea[x-step][y]=tmp; ????????????????GameArea[x][y]='?'; ????????} } void?MakeShell(int?x,int?v) { } void?MakeHit(int?x,int?y) { }
查看完整描述

目前暫無任何回答

  • 0 回答
  • 0 關注
  • 701 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號