70 likes | 199 Views
AI 人工智慧期末報告 - 坦克遊戲. 班級 : 資工四乙 學號 : 498G0054 姓名 : 莊凱向. 遊戲規則. 限時時間內看可以擊倒幾台坦克,擊倒一台會有 100 分,同時也要閃躲 AI 坦克的攻擊, 被擊中遊戲 結束。. AI 介紹. foreach (Tank t in eTanks ) { switch ( t.Direct )//0-- 上 , 1-- 下 , 2-- 左 ,3- - 右 { case 0: // 向上
E N D
AI人工智慧期末報告-坦克遊戲 班級:資工四乙 學號:498G0054 姓名:莊凱向
遊戲規則 • 限時時間內看可以擊倒幾台坦克,擊倒一台會有100分,同時也要閃躲AI坦克的攻擊, 被擊中遊戲結束。
AI介紹 • foreach (Tank t in eTanks) • { • switch (t.Direct)//0--上,1--下,2--左,3--右 • { • case 0: //向上 • if (t.Top == 0 || Map[t.Left, t.Top - 1] == 1@ • ||Meet_Tank(t.Left, t.Top - 1))//遇到牆或坦克 • t.newDirect();//坦克轉向 • else • t.Top--; • break; • case 1://向下 • if (t.Top==9 ||Map[t.Left, t.Top + 1] == 1 • || Meet_Tank(t.Left, t.Top + 1))//遇到牆或坦克 • t.newDirect();//坦克轉向 • else • t.Top++; • break;
case 2://向左 • if (t.Left == 0 || Map[t.Left-1, t.Top] == 1 • || Meet_Tank(t.Left-1, t.Top))//遇到牆或坦克 • t.newDirect();//坦克轉向 • else • t.Left--; • break; • case 3://向右 • if (t.Left == 9 || Map[t.Left+1, t.Top ] == 1 • || Meet_Tank(t.Left+1, t.Top))//遇到牆或坦克 • t.newDirect();//坦克轉向 • else • t.Left++; • break; • }
for (inti = 0; i < eTanks.Count; i++)//敵方坦克爆破 • if (eTanks[i] != null) • { • Tank t = (Tank)eTanks[i]; • if (TMap[t.Left, t.Top] == -1) • { • t.Explore(e.Graphics); • eTanks.RemoveAt(i); i--; • TMap[t.Left, t.Top] = 0; • lblX.Text ="("+ t.Left + "," + t.Top + ")坦克被擊中"; • Score += 100; • lblScore.Text = Score.ToString(); • } • }
if (TMap[MyTank.Left, MyTank.Top] == -1)//己方坦克爆破 • { • MyTank.Explore(e.Graphics); • TMap[MyTank.Left, MyTank.Top] = 0; • lblX.Text="遊戲者你被擊中遊戲結束"; • timer1.Enabled = false;//遊戲結束 • } • CheckWin();//檢查是否勝利 • }