-
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; } } }
'C# > 수업과제' 카테고리의 다른 글
03/17 추상클래스, 인터페이스, 속성, 스택, 큐를 사용한 예제 (0) 2021.03.18 03/16 컬렉션을 이용 예제 (0) 2021.03.16 03/11 클래스 생성 -> 인스턴스 생성 연습 (0) 2021.03.11 03/10 매개변수가 있고 반환 값이 있는 메서드 정의 및 호출 (0) 2021.03.11 03/10 매개변수가 있는 메서드 정의 및 호출 (0) 2021.03.11