ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 03/12 1주차 주말과제
    C#/수업과제 2021. 3. 15. 01:05

    w, a, s, d키를 사용하여 스타크래프트 벌처의 움직임을 조작하고 i키를 이용하여 스파이더 마인을 매설, r키로 재시작이 가능하게 구현

     

     

     

    Program.cs

    namespace Study02
    {
        class Program
        {
            static void Main(string[] args)
            {
                new App();
            }
        }
    }
    

     

    App.cs

    using System;
    
    namespace Study02
    {
        public class App
        {
            public App()
            {
                Screen screen = new Screen();
                Vulture vulture = new Vulture();
                Console.WriteLine("아무키나 누르면 시작됩니다.");
                while(true)
                {
                    ConsoleKeyInfo input = Console.ReadKey();
                    char inputKey = input.KeyChar;
                    Console.Clear();
                    switch(inputKey)
                    {
                        case 'w':
                            if(vulture.position.y >0)
                                vulture.position.y -= 1;
                            break;
                        case 'a':
                            if (vulture.position.x > 0)
                                vulture.position.x -= 1;
                            break;
                        case 's':
                            if (vulture.position.y < 8)
                                vulture.position.y += 1;
                            break;
                        case 'd':
                            if (vulture.position.x < 15)
                                vulture.position.x += 1;
                            break;
                        case 'i':
                            vulture.SetMine();
                            break;
                        case 'r':
                            ReStart(vulture);
                            break;
                        default:
                            break;
                    }
                    screen.PrintScreen(vulture);
                }            
            }
            public static void ReStart(Vulture vulture)
            {
                vulture.position.x = 0;
                vulture.position.y = 0;
                vulture.spiderMines = new SpiderMine[3];
                vulture.spiderMineCount = 3;
            }
        }
    }
    

     

    Screen.cs

    using System;
    
    namespace Study02
    {
        public class Screen
        {
            public Screen()
            {
                
            }
            public void PrintScreen(Vulture vulture)
            {
                Console.WriteLine("이동 : w(위), a(왼쪽), s(아래), d(오른쪽) 마인설치 : i 다시시작 : r 현재 소지 마인 갯수 : {0}", vulture.spiderMineCount);
                Console.WriteLine("벌처(v) 마인(*)");
                for (int y = 0; y < 9; y++)
                {
                    for (int x = 0; x < 16; x++)
                    {
                        if(vulture.position.x == x && vulture.position.y == y)
                        {   
                            Console.Write("v");
                            continue;
                        }
                        bool minePlug = false;
                        for(int i = 0; i < 3; i++)
                        {
                            if (vulture.spiderMines[i] != null && vulture.spiderMines[i].position.x == x && vulture.spiderMines[i].position.y == y)
                            {
                                Console.Write("*");
                                minePlug = true;
                                continue;
                            }
                        }
                        if(!minePlug)
                        {
                            Console.Write("o");
                        }
                    }
                    Console.WriteLine();
                }
            }
        }
    }
    

     

     

    Vulture.cs

    namespace Study02
    {
        public class Vulture : Unit
        {
            public SpiderMine[] spiderMines = new SpiderMine[3];
            public int spiderMineCount = 3;
            public Vulture()
            {
                
            }
            public void SetMine()
            {
                for(int i = 0; i < 3; i++)
                {
                    if(spiderMines[i] == null)
                    {
                        spiderMines[i] = new SpiderMine(this.position.x, this.position.y);
                        spiderMineCount -= 1;
                        break;
                    }
                }
            }
        }
    }
    

     

     

    Vector2.cs

    namespace Study02
    {
        public class Vector2
        {
            public float x;
            public float y;
            public Vector2()
            {
                this.x = 0;
                this.y = 0;
            }
            public Vector2(float x, float y)
            {
                this.x = x;
                this.y = y;
            }
        }
    }
    

     

     

    Unit.cs

    namespace Study02
    {
        public class Unit
        {
            public Vector2 position;
            public Unit()
            {
                position = new Vector2();
            }
        }
    }
    

     

    SpiderMine.cs

    namespace Study02
    {
        public class SpiderMine : Unit
        {
            public SpiderMine()
            {
    
            }
            public SpiderMine(float x, float y)
            {
                this.position.x = x;
                this.position.y = y;
            }
        }
    }
    
Designed by Tistory.