印象深刻的回家作業農夫渡河
農夫要帶著狼、羊、菜過河
小船不夠大,因此農夫只能每次只帶一樣東西渡河
當農夫在的時候,狼、羊、菜都不會有事情
當農夫不在的時候,狼會吃羊,羊會吃菜
首先要先分析需求開始到完成程式碼的過程
遊戲畫面要如何安排設計
什麼樣的狀況會導致遊戲失敗的邏輯
什麼樣的狀況會讓遊戲結果是成功的
預設資料
public void CreateList()
{
_leftList = new List<string>
{
"農夫","狼","羊","菜"
};
_rightList = new List<string>();
}
public void SetListBoxDataSource()
{
listBox1.SelectionMode = SelectionMode.One;
listBox2.SelectionMode = SelectionMode.One;
}
移動判斷(左->右)
private void button1_Click(object sender, EventArgs e)
{
if (listBox1.SelectedItem.ToString() != "農夫")
{
string item = listBox1.SelectedItem.ToString();
_leftList.Remove("農夫");
_rightList.Add("農夫");
_leftList.Remove(item);
_rightList.Add(item);
SetListData();
Check();
}
else
{
_leftList.Remove("農夫");
_rightList.Add("農夫");
SetListData();
Check();
}
}
設定資料
public void SetListData()
{
listBox1.DataSource = new List<string>();
listBox2.DataSource = new List<string>();
listBox1.DataSource = _leftList;
listBox2.DataSource = _rightList;
}
邏輯判斷
private void Check()
{
if (_leftList.Count == 0)
{
MessageBox.Show("win");
}
else
{
if (_leftList.Contains("農夫") == false)
{
if (_leftList.Contains("狼") && _leftList.Contains("羊"))
{
MessageBox.Show("狼吃羊");
CreateList();
SetListData();
}
else if (_leftList.Contains("羊") && _leftList.Contains("菜"))
{
MessageBox.Show("羊吃菜");
CreateList();
SetListData();
}
}
if (_rightList.Contains("農夫") == false)
{
if (_rightList.Contains("狼") && _rightList.Contains("羊"))
{
MessageBox.Show("狼吃羊");
CreateList();
SetListData();
}
else if (_rightList.Contains("羊") && _rightList.Contains("菜"))
{
MessageBox.Show("羊吃菜");
CreateList();
SetListData();
}
}
}
}
羊-狼-羊-菜-羊
鐵人還沒一半艾利森就覺得累了啦...