印象深刻的回家作業農夫渡河
農夫要帶著狼、羊、菜過河
小船不夠大,因此農夫只能每次只帶一樣東西渡河
當農夫在的時候,狼、羊、菜都不會有事情
當農夫不在的時候,狼會吃羊,羊會吃菜
首先要先分析需求開始到完成程式碼的過程
遊戲畫面要如何安排設計
什麼樣的狀況會導致遊戲失敗的邏輯
什麼樣的狀況會讓遊戲結果是成功的

預設資料
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();
            }
        }
    }
}

羊-狼-羊-菜-羊
鐵人還沒一半艾利森就覺得累了啦...
