◻ 전체 글 수 :

    [파이썬] 오락실 게임 제작 보면서 따라 만들기 (pygame) - (1) 기본 과정 (예제 연습, 기본 틀)

    이 글은 '나도코딩'님의 '파이썬 코딩 무료 강의 (활용편1) - 추억의 오락실 게임을 만들어 보아요. 3시간이면 충분합니다.' 강의를 보고 따라 만든 내용을 기록해놓은 글입니다. 먼저 강의 영상의 첫 1시간을 공부하며 같이 작성한 코드를 남겨두었습니다. 개인적으로 이벤트 루프 부분 코드 내용이 아직 좀 헷갈리네요 import pygame ################################################################## pygame.init() # 초기화 (반드시 필요) # 화면 크기 설정 screen_width = 480 # 가로 크기 screen_height = 640 # 세로 크기 screen = pygame.display.set_mode((screen_widt..

    [알고리즘] 최대공약수와 최소공배수 - 간단하게 구현해보기 (+ 유클리드 호제법 알고리즘) (C++)

    최대공약수란 무엇인가? 최대공약수는 초등학교 수학 시간에 배우는 내용으로, 아마 이 글을 보시는 여러분이라면 이미 아시겠지만, 그 개념을 한 번 더 짚고 넘어가보자. 쉬운 이해를 위해 실제 정의가 아닌 초등학교 교과서에 제시된 내용을 참고하였다. n의 약수 : n을 나누어 떨어지게 하는 수 a, b의 공약수 : a와 b의 공통된 약수 a, b의 최대공약수 : a와 b의 공통된 약수 중 가장 큰 수 이 개념을 이용하여 반복문으로 다음과 같이 최대공약수를 구하는 함수 코드를 쓸 수 있다. #include #include // 최대공약수를 계산하는 함수 long getBCD (long a, long b) { for(int div = min(a, b); div > 0; div--) { if((a % div ==..

    눈 수술로 인해 잠시 공백기가 있었습니다.

    제 블로그를 챙겨 보실 분은 딱히 없을 거라고 생각하지만 그래도 한동안 블로그를 못 쓴 이유를 남기지면 눈 수술과 전보다 더 큰 슬럼프가 있었습니다. 저번 4월 1일, 저는 개인적인 이유로 눈수술을 받아 한동안 컴퓨터를 사용하는데 어려움이 있었습니다. 다행이도 이제는 좀 회복되어 다시 정상적으로 컴퓨터를 사용할 수 있게 되었습니다. (아마 조만간 라식 수술로 또 다시 비슷한 경험을 하게 될꺼지만요) 그리고 코딩 공부에 또 다시 정체가 있었습니다. 위에선 전보다 더 큰 슬럼프라고 적었지만 생각해보니 전의 슬럼프의 연장선이라고도 생각이 드네요. 직설적으로 공부가 계속 손에 안 잡혀 결국 잠시 손놨었습니다. (그래도 불안한 마음에 조금씩은 했네요. 1시간 분량 파이썬 강의도 듣고..) 대신, 유튜브에서 이런 ..

    [C++] 클래스의 private 접근 제어자의 지정 범위

    C++는 객체 지향 언어이므로 공부할 때 반드시 클래스(Class)의 개념을 공부하게 된다. 클래스(Class)는 간단하게 '객체의 설계도'라고 표현할 수 있는데, 이를 처음 배우는 학생이 클래스의 기초에 나오는 내용인 접근 제어(access control)를 공부할 때 헷갈릴 만한 부분이 있어 이번 시간에 간단히 포스트로 다뤄보고자 한다. 사실 이 내용은 필자가 대학교 1학년 시절 C++를 처음 배울 때 아무도 이것에 대해 알려주지 않아 기말고사 시험 당일, 그것도 시험 문제 푸는 당시에 갑자기 스스로 의문이 생겨 ​ 시험시간 내내 곤혹스러워 했었던 내용이었다. (다행이 그 문제는 맞았던걸로 기억..) 먼저, 클래스와 접근 제어에 관한 개념이 어느 정도 잡혀있다는 전제로 설명을 하니 이런 개념이 아직 ..

    [유니티 기초] #3. 간단한 2D UI 구현 - 텍스트 추가 및 버튼으로 화면 전환(이동)하기 (SceneManager.LoadScene)

    [유니티 기초] #3. 간단한 2D UI 구현 - 텍스트 추가 및 버튼으로 화면 전환(이동)하기 (SceneManager.LoadScene)

    오랜만에 글을 씁니다. 공부는 꾸준히 하고 있는데 글을 쓰는 걸 잠시 잊어버렸습니다. 오늘은 유니티에서 두 화면을 만들고 버튼을 통해 장면을 전환하는 과정을 기록해보려 합니다. 배운지 조금 된 내용이라 기억이 가물가물한데 (이래서 복습이 중요..) 공부했던 것들을 찾아보면서 다시 정리해보겠습니다. 두 개의 장면 만들기 먼저, 유니티에서 Scene을 추가하여 두 개의 장면을 만들어보자. Scene을 추가하는 방법은 Project창에서 [오른쪽 마우스 클릭]하고 [Create] -> [Scene]을 누르면 생성된다. UI 오브젝트 추가하기 - 버튼과 텍스트 두 장면 A, B가 있다면 우리는 A -> B로 넘어가는 버튼을 장면 A에 만들어 볼 것이다. 첨부하는 사진에서는 "Title" Scene이 A가 될 것..

    제대 후 첫 슬럼프, 극복을 위한 공부의 변화

    제대 후 프로그래밍을 공부하면서 큰 벽에 부딫쳤다. 슬럼프를 만난 것이다. 공부하고 있는 알고리즘 문제가 급격히 어려워지고 노는 재미에도 좀 빠지다 보니 공부에 대한 흥미가 급격히 떨어졌다. 그래서 어떻게 하면 다시 즐겁게 공부를 이어나갈 수 있을까. 고민하는 시간을 가졌다. 먼저, 고민을 하다가, 곧바로 프로그램을 만들어 보며 필요한 지식을 그때마다 찾아서 공부하는 방법이 좋다는 것이 기억났다. 그렇게 직접 무언가를 만들어보며 성취감을 얻고, 그것을 통해 프로그래밍에 재미와 즐거움을 느껴야 한다는 것이다. 예전 어떻게 프로그래밍을 공부하는 것이 좋을까 찾아보다가 여러 IT 종사자 분들이 공통적으로 추천했던 방법이었다. 그리고 지금 내가 하고 있는 공부들 돌아보니, 다 이론 위주의 공부였다. 알고리즘은 ..

    [유니티 기초] #2. 리지드 바디 (RigidBody) 기능 정리

    [유니티 기초] #2. 리지드 바디 (RigidBody) 기능 정리

    중력 설정 - Use Gravity 설정 체크시 적용 - 중력 속도 설정 : [Edit] -> [Project Settings...] -> [Gravity]의 x, y, z축 각각에 해당하는 숫자가 각 축에 적용된 중력 속도 리지드 바디(Rigidbody)의 각 항목 기능 - Mass : 질량 - Drag : 공기 저항 (0은 우주 공간) 중력 적용시 Drag 수치가 높을수록 물체가 천천히 떨어짐 - Angular Drag : 회전값에 대한 저항 - Use Gravity : 물체에 대한 중력 적용 여부 - Is Kinematic : 물리 효과 소멸 적용 여부 (체크 시 물리 효과 X) - Interpolate : 캐릭터의 움직임이 부자연스러울 떄 자연스럽게 처리하도록 돕는 도구 └ Interpolate ..

    매일 꾸준히.. 노력이 적으면 얻는 것도 적다.

    매일 꾸준히.. 노력이 적으면 얻는 것도 적다.

    블로그를 운영하면서 코딩 일기에 그 동안 배운 내용들을 한꺼번에 몰아두는 것보단 각각 카테고리에 맞는 글을 작성하여 올려두는 것이 더 좋겠다는 판단이 들어 앞으로 코딩 일기는 며칠 분의 내용을 요약해서 쓰고, 정보 전달보다 개인적인 내용을 더 집중적으로 담기로 했다. 그래서 이제 코딩 일기는 1주일에 적으면 1편, 많아야 2~3편 정도로만 쓸 계획이다. 알고리즘 효율성을 높히기 위해 코드를 작성하고 수정하는 훈련 오늘로 구름 EDU의 알고리즘 문제해결기법 강의의 2단원을 마쳤다. 매일 조금이라도 계속해서 알고리즘 공부를 해왔더니 바쁜 와중에도 계획보다 하루 빨리 마칠 수 있었다. 아쉽게도 모르는 C++문법 개념이 나와 일단 넘긴 한 문제와 코딩을 여러 차례 수정하여도 TImeout(시간 초과)로 테스트 ..

    [알고리즘] 버블 정렬(Bubble Sort) 알고리즘 쉽게 구현해보기 (C++)

    [알고리즘] 버블 정렬(Bubble Sort) 알고리즘 쉽게 구현해보기 (C++)

    이 글은 프로그래밍에 능숙하지 않으신 분들도 어렵지 않게 이해할 수 있도록 최대한 쉽게 풀어 설명한 글입니다. 왜냐하면 저도 초보자거든요. 버블 정렬이란 무엇인가? 버블 정렬은 대표적인 정렬 알고리즘 중 하나로 원소를 정렬하는 모습이 마침 거품이 올라오는 모습같다고 해서 붙여진 이름이다. 버블 정렬은 아래와 같은 알고리즘으로 동작한다. 『 데이터의 수를 N이라고 하자. 아래의 과정을 N번 반복한다. 배열의 0번 칸의 숫자가 1번 칸의 숫자 보다 크다면 두 값의 위치를 교환한다 배열의 1번 칸의 숫자가 2번 칸의 숫자 보다 크다면 두 값의 위치를 교환한다 ... 배열의 N-2번 칸의 숫자가 N-1번 칸의 숫자 보다 크다면 두 값의 위치를 교환한다. 』 즉, 한 번의 순환이 끝나면 조사한 모든 원소 중 가장..

    [유니티 기초] #1. 트랜스폼(transform) 컴포넌트 기본 메소드 코드 정리 (C#)

    유니티에서 대표적으로 많이 쓰이는 트랜스폼의 컴포넌트를 정리해 보았습니다. 이 글은 케이티 님의 '유니티 입문 강좌 part 2 - 트랜스폼' 강의를 바탕으로 작성한 글입니다. 강의 영상은 글 제일 하단에 참고용으로 올려놨습니다. 오브젝트 이동 (값 직접 수정, Translate) using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test : MonoBehaviour { // Update is called once per frame void Update() { if(Input.GetKey(KeyCode.W)) { // Transform의 포지션 값 직접 수정 this.transform.pos..