예제 #1
0
        // 뱀 사다리
        void Snakeladder(Land ob, int i, int j, ref int location)
        {
            // P1
            if (player_turn == true)
            {
                switch (location)                                       // 뱀사다리는 미리 위치를 정함
                {
                case 5:
                    MessageBox.Show("5번 ---> 7번", "뱀사다리");
                    if (dataGridView1.Rows[i].Cells[j].Value.Equals(l[i, j].Land_Inform(num_land[i, j], l[i, j].Name + "\n", l[i, j].Price, l[i, j].Rent) + "★"))
                    {
                        move_empty(i, j);
                        dataGridView1.Rows[1].Cells[3].Value += "★";
                    }
                    location1 = 7;
                    if (ob.Host == 2)
                    {
                        Land_Arrival(l[1, 3]);
                    }
                    break;

                case 11:
                    MessageBox.Show("11번 ---> 21번", "뱀사다리");
                    if (dataGridView1.Rows[i].Cells[j].Value.Equals(l[i, j].Land_Inform(num_land[i, j], l[i, j].Name + "\n", l[i, j].Price, l[i, j].Rent) + "★"))
                    {
                        move_empty(i, j);
                        dataGridView1.Rows[4].Cells[0].Value += "★";
                    }
                    location1 = 21;
                    if (ob.Host == 2)
                    {
                        Land_Arrival(l[4, 0]);
                    }
                    break;

                case 22:
                    MessageBox.Show("22번 ---> 16번", "뱀사다리");
                    if (dataGridView1.Rows[i].Cells[j].Value.Equals(l[i, j].Land_Inform(num_land[i, j], l[i, j].Name + "\n", l[i, j].Price, l[i, j].Rent) + "★"))
                    {
                        move_empty(i, j);
                        dataGridView1.Rows[3].Cells[4].Value += "★";
                    }
                    location1 = 16;
                    if (ob.Host == 2)
                    {
                        Land_Arrival(l[3, 4]);
                    }
                    break;
                }
            }

            // P2
            else
            {
                switch (location)
                {
                case 5:
                    MessageBox.Show("5번 ---> 7번", "뱀사다리");
                    if (dataGridView1.Rows[i].Cells[j].Value.Equals(l[i, j].Land_Inform(num_land[i, j], l[i, j].Name + "\n", l[i, j].Price, l[i, j].Rent) + "☆"))
                    {
                        move_empty(i, j);
                        dataGridView1.Rows[1].Cells[3].Value += "☆";
                    }
                    location2 = 7;
                    if (ob.Host == 1)
                    {
                        Land_Arrival(l[1, 3]);
                    }
                    break;

                case 11:
                    MessageBox.Show("11번 ---> 21번", "뱀사다리");
                    if (dataGridView1.Rows[i].Cells[j].Value.Equals(l[i, j].Land_Inform(num_land[i, j], l[i, j].Name + "\n", l[i, j].Price, l[i, j].Rent) + "☆"))
                    {
                        move_empty(i, j);
                        dataGridView1.Rows[4].Cells[0].Value += "☆";
                    }
                    location2 = 21;
                    if (ob.Host == 1)
                    {
                        Land_Arrival(l[4, 0]);
                    }
                    break;

                case 22:
                    MessageBox.Show("22번 ---> 16번", "뱀사다리");
                    if (dataGridView1.Rows[i].Cells[j].Value.Equals(l[i, j].Land_Inform(num_land[i, j], l[i, j].Name + "\n", l[i, j].Price, l[i, j].Rent) + "☆"))
                    {
                        move_empty(i, j);
                        dataGridView1.Rows[3].Cells[4].Value += "☆";
                    }
                    location2 = 16;
                    if (ob.Host == 1)
                    {
                        Land_Arrival(l[3, 4]);
                    }
                    break;
                }
            }
            textBoxP1_Location.ToString();
            textBoxP2_Location.ToString();
        }
예제 #2
0
        //// 프로그램 실행화면
        private void Form1_Load(object sender, EventArgs e)
        {
            Land.Land_Load(l);  // 토지 정보 윈도우에 가져오기

            // 행과 열 생성
            for (int i = 0; i < 5; i++)
            {
                dataGridView1.Columns.Add("", "");
                dataGridView1.Rows.Add();
            }

            // 열 크기
            for (int nX = 0; nX < dataGridView1.ColumnCount; nX++)
            {
                dataGridView1.Columns[nX].Width = 100;
            }

            // 행 크기
            for (int nY = 0; nY < dataGridView1.RowCount; nY++)
            {
                dataGridView1.Rows[nY].Height = 100;
            }

            // 행, 열 번호 지정
            int count = 0;

            for (int i = 0; i < dataGridView1.ColumnCount; i++)
            {
                dataGridView1.Columns[i].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
            }

            for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                for (int j = 0; j < dataGridView1.ColumnCount; j++)
                {
                    if (i % 2 == 0)
                    {
                        switch (i)
                        {
                        case 0:
                            num_land[i, j] = j + 1;
                            dataGridView1.Rows[i].Cells[j].Value = l[i, j].Land_Inform(num_land[i, j], l[i, j].Name + "\n", l[i, j].Price, l[i, j].Rent);
                            break;

                        case 2:
                            num_land[i, j] = j + 11;
                            dataGridView1.Rows[i].Cells[j].Value = l[i, j].Land_Inform(num_land[i, j], l[i, j].Name + "\n", l[i, j].Price, l[i, j].Rent);
                            break;

                        case 4:
                            num_land[i, j] = j + 21;
                            dataGridView1.Rows[i].Cells[j].Value = l[i, j].Land_Inform(num_land[i, j], l[i, j].Name + "\n", l[i, j].Price, l[i, j].Rent);
                            break;
                        }
                    }
                    else
                    {
                        switch (i)
                        {
                        case 1:
                            num_land[i, j] = 10 - j;
                            dataGridView1.Rows[i].Cells[j].Value = l[i, j].Land_Inform(num_land[i, j], l[i, j].Name + "\n", l[i, j].Price, l[i, j].Rent);
                            break;

                        case 3:
                            num_land[i, j] = 20 - j;
                            dataGridView1.Rows[i].Cells[j].Value = l[i, j].Land_Inform(num_land[i, j], l[i, j].Name + "\n", l[i, j].Price, l[i, j].Rent);
                            break;
                        }
                    }
                    count++;
                }
                buttonUpgrade.Enabled = false;     // 지역이 클릭될 때까지 비활성화
                Land_Information();                // 땅 정보 카드 초기화
                dataGridView1.ClearSelection();    // 초반 1번 칸 선택 방지
                dataGridView1.MultiSelect = false; // 다중 선택 방지
                textBoxTurn.Text          = "P1";
            }
        }
예제 #3
0
        // 토지 업그레이드
        private void Land_Upgrade(Land ob)
        {
            // P1
            if (player_turn)
            {
                switch (ob.Level) // Lv0=기본, Lv1>=업그레이드
                {
                case 0:
                    ob.Level++;
                    ob.New_Price += ob.Rent + 5;
                    money1       -= ob.Upgrade_pay;

                    break;

                case 1:
                    ob.Level++;
                    ob.New_Price += 5;
                    money1       -= ob.Upgrade_pay;
                    break;

                case 2:
                    ob.Level++;
                    ob.New_Price += 5;
                    money1       -= ob.Upgrade_pay;
                    break;

                case 3:
                    ob.Level++;
                    ob.New_Price  += 15;
                    ob.Upgrade_pay = 40;
                    money1        -= ob.Upgrade_pay;
                    break;

                case 4:
                    MessageBox.Show("더 이상 업그레이드할 수 없습니다.", "만렙");     // 호텔
                    break;
                }
            }
            else
            {
                switch (ob.Level)
                {
                case 0:
                    ob.Level++;
                    ob.New_Price += ob.Rent + 5;
                    money2       -= ob.Upgrade_pay;
                    break;

                case 1:
                    ob.Level++;
                    ob.New_Price += 5;
                    money2       -= ob.Upgrade_pay;
                    break;

                case 2:
                    ob.Level++;
                    ob.New_Price += 5;
                    money2       -= ob.Upgrade_pay;
                    break;

                case 3:
                    ob.Level++;
                    ob.New_Price  += 15;
                    ob.Upgrade_pay = 40;
                    money2        -= ob.Upgrade_pay;
                    break;

                case 4:
                    MessageBox.Show("더 이상 업그레이드할 수 없습니다.", "만렙");
                    break;
                }
            }
            textBoxP1_Money.Text  = money1.ToString();
            textBoxP2_Money.Text  = money2.ToString();
            buttonUpgrade.Enabled = false;      // 업그레이드를 한 번 누르면 비활성화
        }
예제 #4
0
        //// 땅에 도착
        void Land_Arrival(Land ob)
        {
            switch (ob.Host)
            {
            // 주인 없는 땅에 도착
            case 0:
                DialogResult res1 = MessageBox.Show(
                    "땅을 사시겠습니까?",
                    "주인 없는 땅에 도착",
                    MessageBoxButtons.YesNo,
                    MessageBoxIcon.Question);

                if (res1 == DialogResult.Yes)
                {
                    if (player_turn == true)
                    {
                        if (money1 >= ob.Price)
                        {
                            money1 -= ob.Price;
                            ob.Host = 1;
                            Land1++;
                            dataGridView1.Rows[ob.Row].Cells[ob.Cell].Style.BackColor = Color.LightBlue;
                            MessageBox.Show("땅을 구입하였습니다.", "구입");
                            Bingo(player_turn);     // (체크) 빙고를 완성
                        }
                        else
                        {
                            MessageBox.Show("돈이 부족하여 땅을 구입할 수 없습니다.", "구입 실패");
                        }
                    }
                    else
                    {
                        if (money2 >= ob.Price)
                        {
                            money2 -= ob.Price;
                            ob.Host = 2;
                            Land2++;
                            dataGridView1.Rows[ob.Row].Cells[ob.Cell].Style.BackColor = Color.Yellow;
                            MessageBox.Show("땅을 구입하였습니다.", "구입");
                            Bingo(player_turn);     // (체크) 빙고를 완성
                        }
                        else
                        {
                            MessageBox.Show("돈이 부족하여 땅을 구입할 수 없습니다.", "구입 실패");
                        }
                    }
                    textBoxP2_Money.Text = money2.ToString();
                }
                break;

            // P1이 땅에 도착
            case 1:
                if (!player_turn)
                {
                    DialogResult res2 = MessageBox.Show(
                        "임대료를 지불합니다.",
                        "P1의 땅에 도착");

                    // 0단계는 기본 임대료
                    if (ob.Level == 0)
                    {
                        if (money2 >= ob.Rent)
                        {
                            money2 -= ob.Rent;
                        }
                        else
                        {
                            MessageBox.Show("P2의 승리입니다.", "임대료 지불 불가");
                            Close();
                        }
                    }
                    // 1단계 이상 업그레이드 임대료
                    else
                    {
                        if (money2 >= ob.New_Price)
                        {
                            money2 -= ob.New_Price;
                        }
                        else
                        {
                            MessageBox.Show("P2의 승리입니다.", "임대료 지불 불가");
                            Close();
                        }
                    }
                }
                break;


            // P2의 땅에 도착
            case 2:
                if (player_turn)
                {
                    DialogResult res2 = MessageBox.Show(
                        "임대료를 지불합니다.",
                        "P1의 땅에 도착");

                    if (ob.Level == 0)
                    {
                        if (money1 >= ob.Rent)
                        {
                            money1 -= ob.Rent;
                        }
                        else
                        {
                            MessageBox.Show("P2의 승리입니다.", "임대료 지불 불가");
                            Close();
                        }
                    }
                    else
                    {
                        if (money1 >= ob.New_Price)
                        {
                            money1 -= ob.New_Price;
                        }
                        else
                        {
                            MessageBox.Show("P2의 승리입니다.", "임대료 지불 불가");
                            Close();
                        }
                    }
                }
                break;
            }
            Soldout(); // (체크) 땅을 모두 구입
        }