看板 C_and_CPP 關於我們 聯絡資訊
各位Coding 高手大家好,小弟練習C/C++無痛學習這本書內第12章 位於12-4頁的範例,書中提到@活動範圍為(1,1)~(10,10) 小弟試著將#define X_MAX 10更改為#define X_MAX 100 希望@可以移動的範圍變大,但測試後發現活動範圍跟原本10是一樣 小弟不解,煩請板上神手解惑,小弟跪謝,感激不盡。 作業系統:Windows 7 開發工具:Dev C++ 4.9.9.2 程式碼如下: #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <iostream> #include <iomanip> using namespace std; #define X_MAX 10 // 定義"@"可活動範圍 #define Y_MAX 10 // 定義"@"可活動範圍 void ShowMouse(); int ix=1; int iy=1; int iStatus=1; char cIcon='@'; int main(void) { char cIn; ShowMouse(); while(iStatus!=0) { cIn=getch(); switch(cIn) { case 'w': ix--; if(ix<0) { iStatus=0; } else if(ix==0) { iStatus=2; cIcon='Q'; } else if(iy>=1 && iy<=Y_MAX) { iStatus=1; cIcon='@'; } break; case 's': ix++; if(ix>X_MAX+1) { iStatus=0; } else if(ix==X_MAX+1) { iStatus=2; cIcon='Q'; } else if(iy>=1 && iy<=Y_MAX) { iStatus=1; cIcon='@'; } break; case 'a': iy--; if(iy<0) { iStatus=0; } else if(iy==0) { iStatus=2; cIcon='Q'; } else if(ix>=1 && ix<=X_MAX) { iStatus=1; cIcon='@'; } break; case 'd': iy++; if(iy>Y_MAX+1) { iStatus=0; } else if(iy==Y_MAX+1) { iStatus=2; cIcon='Q'; } else if(ix>=1 && ix<=X_MAX) { iStatus=1; cIcon='@'; } break; } if(iStatus) { ShowMouse(); } else { cout<<"老鼠已經死亡,遊戲結束"<<endl; } } system("pause"); return(0); } //------------------------------------------------------------ void ShowMouse() { system("cls"); for(int i=1; i<=ix; i++) cout<<endl; cout<<setw(iy+1)<<setfill(' ')<<cIcon<<endl; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.139.79.75 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1458185786.A.17F.html
Caesar08: 你是不是改X_MAX,卻用a與d在測試? 03/17 12:11
stupid0319: 用Dev C++無痛學習= =,換本書好嗎 03/17 12:46
libra1005: Ca大大,抱歉,文章沒有說明完整,我都有更改x和y方向 03/17 13:06
libra1005: 的移動範圍後並作各方向的測試。 03/17 13:09
Caesar08: 真是奇怪了,code看起來沒問題,我執行起來也沒這問題 03/17 13:15
Caesar08: 不如你換visual studio用吧 03/17 13:15
Caesar08: 還有,如果你的code是從這本書上抄來的 03/17 13:16
Caesar08: 那你最好把這本書拿去丟了 03/17 13:16
flydragon198: 改完有重新編譯嗎? 03/17 13:33
stupid0319: 丟了也不好,別人撿到會害到別人,最好燒了 03/17 13:38
ronin728: 樓上讓我想到民俗中被詛咒的物品都要拿去大廟金爐火化XD 03/17 15:17
libra1005: 忘記編譯......sorry......腦殘了...... 03/17 15:29
libra1005: 改完,儲存,直接按執行= = 03/17 15:29
ronin728: XDD 忘記編譯還真是第一次聽過,推一個 03/17 15:53
Schottky: 有笑有推 03/17 19:24
kwpn: 燒了會被祖先撿走 03/18 01:53
saxontai: 新手有犯錯的權利 03/18 10:36
leoloveivy: XD 這篇留著 03/22 00:25
RishYang: 忘記編譯,是不是該加入戒律裡啊 04/08 16:05