프로그래밍 공부

프로그래밍 700

카테고리 설명
  • 문제 설명 코딩테스트를 준비하는 머쓱이는 프로그래머스에서 문제를 풀고 나중에 다시 코드를 보면서 공부하려고 작성한 코드를 컴퓨터 바탕화면에 아무 위치에나 저장해 둡니다. 저장한 코드가 많아지면서 머쓱이는 본인의 컴퓨터 바탕화면이 너무 지저분하다고 생각했습니다. 프로그래머스에서 작성했던 코드는 그 문제에 가서 다시 볼 수 있기 때문에 저장해 둔 파일들을 전부 삭제하기로 했습니다. 컴퓨터 바탕화면은 각 칸이 정사각형인 격자판입니다. 이때 컴퓨터 바탕화면의 상태를 나타낸 문자열 배열 wallpaper가 주어집니다. 파일들은 바탕화면의 격자칸에 위치하고 바탕화면의 격자점들은 바탕화면의 가장 왼쪽 위를 (0, 0)으로 시작해 (세로 좌표, 가로 좌표)로 표현합니다. 빈칸은 ".", 파일이 있는 칸은 "#"의 값을..

  • 이번에는 Sowrd를 추가한것과 마찬가지로 같은 방법으로, FistAnimationd을 추가한다. 새롭게 추가하는 애니메이션 이지만, 전에 구축해놓았던 애니메이션의 로직으로 인해 많은 수정사항이 발생하지 않고 애니메이션만 독립적으로 추가할 수 있다는 점에 주목하자. BP_Fist 우선, BP_Sword를 복사해서, BP_Fist를 만들어준다. 이 무기를 장착하면, 상태를 Fist로 바꾸고, BP_Fist의 공격모션을 사용하게 할 것이다. 기본적인 구현도 이다. Collision의 위치를 4개 지정해서, Sphere Collision을 4개 생성하여, 양손, 양발에 장착할 수 있도록 한다. 그렇기 때문에, 지금까지 무기를 들면 플레이어에서 장착위치를 지정하였지만, 무기에서 장착 위치를 정의해주어야 한다. ..

  • 9.6 상속과 관련된 미묘한 문제들 클래스를 확장할 때는 여러 가지 문제가 발생한다. 클래스의 어떤 특성이 유지되고 어떤 특성이 변경되도록 할 것인가? virtual 키워드의 사용 여부는 어떤 영향을 끼치나? 등등... 9.6.1 오버라이딩을 통한 메서드의 특성 변경 대부분 구현 내용을 변경하기 위한 목적으로 메서드를 오버라이딩한다. 하지만 어떤 떄는 구현 내용이 아니라 메서드의 다른 특성을 바꾸고 싶을 때가 있다. 9.6.1.1 리턴 타입 변경 메서드를 오버라이딩할 때는 원본 메서드의 선언, 즉 메서드 프로토타입과 완벽히 같게 오버라이딩을 하는 것이 기본이다. 즉, 구현 내용은 바뀌되 메서드의 프로토타입은 바뀌지 않는다. 그런데 꼭 그래야 하는 것은 아니다. C++에서는 오버라이딩하는 메서드의 리턴 타..

  • 문제 설명 프로그래머스의 마스코트인 머쓱이는 최근 취미로 당구를 치기 시작했습니다. 머쓱이는 손 대신 날개를 사용해야 해서 당구를 잘 못 칩니다. 하지만 끈기가 강한 머쓱이는 열심히 노력해서 당구를 잘 치려고 당구 학원에 다니고 있습니다. 오늘도 당구 학원에 나온 머쓱이에게 당구 선생님이"원쿠션"(당구에서 공을 쳐서 벽에 맞히는 걸 쿠션이라고 부르고, 벽에 한 번 맞힌 후 공에 맞히면 원쿠션이라고 부릅니다) 연습을 하라면서 당구공의 위치가 담긴 리스트를 건네줬습니다. 리스트에는 머쓱이가 맞춰야 하는 공들의 위치가 담겨있습니다. 머쓱이는 리스트에 담긴 각 위치에 순서대로 공을 놓아가며 "원쿠션" 연습을 하면 됩니다. 이때, 머쓱이는 항상 같은 위치에 공을 놓고 쳐서 리스트에 담긴 위치에 놓인 공을 맞춥니다..

  • 9.5 다중 상속 다중 상속은 객체지향 프로그래밍에서 다소 꺼려지는 부분이다. 다중 상속은 복잡하기만 하고 불필요할 수도 있다. 9.5.1 복수 클래스로부터의 상속 문법적으로는 여러 클래스를 동시에 부모로 두는 것이 그리 복잡하지 않다. 다음처럼 베이스 클래스의 이름을 나열하기만 하면 된다. class Baz : pulbic Foo, pulbic Bar { // 기타 정의... }; 이렇게 부모 이름을 나열함으로써 Baz로부터 생성된 객체는 다음과 같은 특징을 가지게 된다. Baz객체는 Foo와 Bar의 모든 public멤버와 메서드를 지원한다. Baz객체는 메서드 구현부에서 Foo와 Bar의 protected멤버와 메서드에 접근할 수 있다. Baz객체는 Foo또는 Bar로 업케스팅 될 수 있다. 새로운..

  • 마법 스킬에 대한 위젯 인터페이스를 구현해보자. WB_SlotMaster 우선, 위젯을 저장할 폴더를 생성하고, 위젯을 관리할 위젯 마스터를 생성한다. WB_SlotMaster가 WB_Slot을 가지고, 플레이어에게 표시해준다. WB_Slot Slot디자인은 위와같다. SizeBox->Border->Overlay->BG_Image, Image 로, SizeBox로 위젯 자체의 위치를 조정한다. Border로 Overlay된 Image의 Padding의 여유분 위치를 색으로 표현한다. 이부분은 선택시 빨간색, 선택 해제시 흰색으로 표기되게 할 것 이다. BG_Image는 기본 이미지의 백그라운드로, 검정을 베이스로 선택 디자인한다. Item_Image는, 아이템의 이미지를 표현함으로, 아이템 자체의 RGB..