////#include
"stdafx.h
"#include
#include
#include
#include
#include
/********函式變數宣告*******
*/#define pr_box printf("■")
#define pr_gold printf("★")
#define pr_ag printf("☆")
#define pr_fbird printf("ю")
#define pr_dbird printf("ф")
#define pr_land printf("┳┳┯")
#define pr_bg_tl printf("╔")
#define pr_bg_tr printf("╗")
#define pr_bg_dl printf("╚")
#define pr_bg_dr printf("╝")
#define pr_bg_x printf("═")
#define pr_bg_y printf("║")
#define pr_blank printf(" ");
int grade = 1, c_gold = 0, c_ag = 0, score = 0, delay_time = 1000, max_blank = 9, distance = 18;//
grade 遊戲等級
//score 分數
//max_blank 上下兩個煙囪之間的最大距離
//distance 左右兩個煙囪之間的距離
struct birds//
小鳥的結構體
;birds *bird = (birds*)malloc(sizeof(birds));//
給小鳥指標分配空間
struct bg//
煙囪的結構體--迴圈雙向鍊錶
;bg *bg1 = new bg[sizeof(bg)];//
將乙個煙囪結點設定成全域性變數
void position(int x, int y)//
將游標移動到x,y座標處
; handle out =getstdhandle(std_output_handle);
setconsolecursorposition(out, pos);
}void creatbird()//
建立小鳥
void creatbg()//
建立資料結構為迴圈雙向鍊錶的煙囪
void insertbg(bg *p)//
建立乙個結點插入到傳入結點之前。迴圈雙向鍊錶的插入
else
//反之亦然
bgs->pri = p->pri;//
迴圈鍊錶指向
bgs->next =p;
p->pri->next =bgs;
p->pri =bgs;
}void check_bg(bg *q)//
檢查是否有煙囪超出螢幕,若有超出,則移動到螢幕右側。
else
//反之亦然}}
}void loop_bg(bg *q)//
煙囪單向迴圈移動
}}void prt_bg(bg *q)//
畫煙囪----較冗餘的**
position(p->x, p->y);//
畫出上煙囪下半部分
pr_box; pr_box; pr_box; pr_blank;//
輸出三個格仔,輸出空格,清除原來餘影
position(p->x, p->y + p->l_blank);//
畫出下煙囪上半部分
pr_box; pr_box; pr_box; pr_blank;//
輸出三個格仔,輸出空格,清除原來餘影
k = k + p->l_blank + 1
;
for (k; k <= 22; k++)//
畫出下煙囪下半部分
position(p->x, 23);//
輸出地下的線
for (k = 1; k3 - 2; k++)
pr_land;
}p = p->next;
if (p->x == 0
)
position(p->x + 1, p->y);
pr_blank; pr_blank; pr_blank;
position(p->x + 1, p->y + max_blank -grade);
pr_blank; pr_blank; pr_blank;
j = j + max_blank - grade + 1
;
for (j; j <= 22; j++)}}
}void prtbg()//
畫上下兩條線
/*for(i=2;i<=23;i++)
*/}void prtbird()//
畫鳥int checkyn(bg *q)//
檢查是否撞壁
return1;
}void
prtfirst()
void
main()
while (i++<500
);
i = 0
; }
position(
38, 10
); printf(
"you lost!");
position(
1, 25
); system(
"pause");
}//1 2 3 4 5 6 7 8 10 15 20 25 30 35 38
//══════════════════════════════════════
//1 ■■ ■■
//2 ■■ ■■
//3 ■■ ■■
//4 ■■ ■■
//5 ■■ ■■
//6 ■■ ■■
//7 ■■■ ■■
//8 ■■
//9 ■■
//10 ю ■■■
//11
//12 ■■■
//13 ■■
//14 ■■
//15 ■■ ■■■
//16 ■■ ■■
//17 ■■ ф ■■
//18 ■■ ■■
//19 ■■ ■■
//20 ■■ ■■
//21 ■■ ■■
//22┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳
//══════════════════════════════════════
憤怒的小鳥
對於每兩隻豬,只要他們的橫座標不一樣,就會有一條經過原點的二次函式y ax2 bx同時經過這兩隻豬,那麼這時就是解二元一次方程的時候了,設第一只豬的座標為 x1,y1 第二隻豬的座標為 x2,y2 y1 ax1 2 bx 1 y2 ax2 2 bx 2 化為 b y 1 ax 12x1 y2 ax2...
憤怒的小鳥
qaq 狀壓dp 1表示小鳥打掉了,0表示沒打掉。dp s 表示到s狀態最少需要幾步。怎麼列舉a,b。因為c 0,只需兩隻豬即可確定一條曲線。boom i j 表示i豬和j豬確定的曲線可以打掉的豬。關於轉移 列舉狀態s中第一只沒有打掉的小豬,固定i,列舉j即可 注意初始化 include inclu...
憤怒的小鳥
憤怒的小鳥 這道題目不是一道sb的狀壓嗎。我們設f i f i f i 表示射擊狀態是i ii,最少用了多少直線。i ii的第j jj位為1 11表示射擊這個位置。然後對於每個直線跑揹包。時間複雜度 o t n22n o tn 22 n o tn22 n 但是其實有更快做法,限制i ii只能被包含最...