我們看一下吃豆人的圖片
看起來非尘渤拢酷,如果我們就用幾行代碼就能畫出吃豆人踱蛀,這樣會不會更酷窿给,好吧,我們不吹牛率拒,先從第一步開始崩泡。
第一步就是先畫一個長方形,類似這樣的
#include
#include
int main(){
double x,y;
/*在 -1 和 1 的區(qū)間內(nèi)畫出一個矩陣*/
for(y =1;y>=-1;y-=0.05,putchar('\n'))
for(x = -1;x<=1;x+=0.025)
putchar('.);
getchar();
}
輸出圖片如下:
這個代碼應(yīng)該不難吧猬膨,畫出了這個之后角撞,下面就是比較困難的了,就是在這個長方形里面勾勒出那個圓形勃痴。
畫圓形的代碼應(yīng)該也是不難的谒所,畫圓形的代碼如下
#include
#include
int main(){
double x,y;
for(y =1;y>=-1;y-=0.05,putchar('\n'))
for(x = -1;x<=1;x+=0.025)
putchar(" ."[
x*x + y*y < 1 /*確定圓形的位置*/
]);/*pow(x,y) x的y 字冪 畫吃豆人的眼睛*/
getchar();
}
輸出圖片如下:
完整代碼
#include
#include
int main(){
double x,y;
for(y =0.9;y>=-0.9;y-=0.05,putchar('\n'))
for(x = -1;x<=1;x+=0.025)
putchar(" ."[
x*x + y*y < 1&& /*確定圓形的位置*/
fabs(atan2(y,x)) > 0.5 &&/*fabs 求絕對值 畫吃豆人的嘴巴*/
x*x + pow(y-0.5,2) > 0.02]);/*pow(x,y) x的y 字冪 畫吃豆人的眼睛*/
getchar();
}
分析一
putchar(" ."[])
這個代碼我剛開起來有點(diǎn)拗眼,不知道寫的是什么沛申,但是既然用到[]劣领,那就肯定是跟數(shù)組有關(guān)系的。
我寫了小代碼
#include
#include
int main(){
putchar(" y"[1]);
getchar();
}
這個輸出如下
y
其實(shí)我們這樣看還不很明朗的話铁材,我們可以這樣看
#include
#include
int main(){
char *pos = "xy";
putchar(pos[1]);
getchar();
}
這個代碼輸出結(jié)果跟上面是一樣的尖淘,pos 也就是那個字符串的別名。
這樣我們就知道了
putchar(" ."[
這句是通過后面的值來輸出空格「 」?還是「 . 」著觉。
分析二
繼續(xù)分析上面的三句關(guān)鍵代碼
x*x + y*y < 1&& /*確定圓形的位置*/
fabs(atan2(y,x)) > 0.5 &&/*fabs 求絕對值 畫吃豆人的嘴巴*/
x*x + pow(y-0.5,2) > 0.02]);/*pow(x,y) x的y 字冪 畫吃豆人的眼睛*/
第一行是確定這個圓形村生。
第二行是用來確定吃豆人的嘴巴的,這個要有點(diǎn)數(shù)學(xué)功底才行饼丘,寫這個的時候趁桃,我的數(shù)學(xué)基本已經(jīng)送給老師了。
第三行是用來畫吃豆人的眼睛的肄鸽。
吃豆人的眼睛可以用下面這個代碼來演示下
#include
#include
int main(){
double x,y;
for(y =1;y>=-1;y-=0.05,putchar('\n'))
for(x = -1;x<=1;x+=0.025)
putchar(" ."[
x*x + y*y < 1&& /*確定圓形的位置*/
fabs(atan2(y,x)) > 0.5 &&/*fabs 求絕對值 畫吃豆人的嘴巴*/
x*x+(y-0.5)*(y-0.5) > 0.02]);/*pow(x,y) x的y 字冪 畫吃豆人的眼睛*/
getchar();
}
x*x+(y-0.5)*(y-0.5)
這行代碼決定小圓卫病,大于號決定小圓的大小,邊界典徘。
分析三
想要成為一個優(yōu)秀的忽肛、有能力程序員,做軟件開發(fā)的話烂斋,就來學(xué)習(xí)C/C++吧,而且學(xué)習(xí)編程的話有一個學(xué)習(xí)的氛圍跟交流圈子特別重要!這里我推薦一個C語言C++交流扣裙汛骂,--先八七零九罕模;后63251,不管你是大牛還是小白帘瞭,大家都一起成長進(jìn)步淑掌。
atan2
這個函數(shù)很強(qiáng)大,我們學(xué)習(xí)三角函數(shù)的時候用的是tan蝶念,但是這個atan2用的是兩個參數(shù)抛腕,看我上面的圖片,atan2(0,1) = 0媒殉,atan2(y,x) ?第一個參數(shù)是 y 担敌,第二個參數(shù)是 x。
最后運(yùn)行如下圖