목록Software Projects (14)
펑션과 코딩의 행방불명

요즘 GTA를 하다보니 매번할때마다 길 찾기 알고리즘이 신기하였다. 이전에도 만들어보고 싶긴했는데 요즘 코딩을 잘 안하여서 이번기회에 '장기 프로젝트를 시작하자'라는 생각으로 제작하였다. [Map Editor] 일단 미로의 맵을 만들어 줄 프로그램이 필요하다. 물론 노가다하면 되긴 하지만 난 그러기 싫었다. 그래서 그냥 C# 으로 간단하게 하얀색은 지나갈 수 있는 경로, 빨간 색은 벽으로 하여 맵 에디터를 만들었다. 그리고 오른쪽 위에 Result 버튼을 누르면 맵을 파이썬에서 적용할 수 있는 형태로 반환하게 하였다. (간단하게 이용할 목적으로 만들어서 UI가 많이 구리다) [Algorithm] 먼저 어떤 탐험가(플레이어)가 저렇게 4개의 길을 갈 수 있다고 생각하자. 그렇다면 여기서 어떻게 하면 길을 ..

전에 나는 중력 시뮬레이터를 만든적이 있었다. 하지만 내가 만든건 지들끼리 빙빙 돌면서 춤을 추거나 스윙바이가 엄청 심하게 일어나는 현상이 매우 많았다. 그래서 나는 아는 지인의 블로그를 보고 내가 실패한 원인을 알게돼서 다시 만들어보았다. 먼저 행성(물체)의 데이터를 파악하기 위해 사용자 지정 컨트롤로 이렇게 만들었다. 바탕이 반투명한 이유는 겹쳐있을때 뒤에있는 애들을 보기 위함이다. 보면 알겠지만 확인해야할 값들은 질량, 속도, 위치이다. void UpdateDebugData() { DebugViewer.Text = "[ mass ]\n"; DebugViewer.Text += $"{mass}\n"; DebugViewer.Text += "[ velocity ]\n"; DebugViewer.Text +=..

오늘하고 어제동안 로그인과 친구연동을 만들었다. 두개의 기능을 만드는데 엄청나게 구글링을했다. JObject를 JArray로 바꾸고 파이썬 Json과 C# Json을 연동시키고 이런저런 일들을 많이 했다. 먼저 로그인을 하기위해서 계정을 몇개 만들었다. 그리고 그들의 친구를 만들어 줬다. 어쨋든 나는 클라이언트에서 로그인을 하고 친구를 동기화 할수 있도록 getDataFromDB라는 함수를 만들었다. 여기서 @noError은 데코레이터를 처음 사용하다가 오류로 쓴맛을 봤기에 걍 빼버린것이다. 클라이언트로 가서 로그인을 성공하면 서버에게 친구 목록을 불러와 달라고한다. 이런식으로 친구를 동기화 한다!!! 왠진 몰라도 이걸 만드는데 진짜 힘들었다. 쨋든 이렇게 해서 기본적인 틀은 잡힌거 같다. 여기서 채팅방..

오늘은 저번에 만들었던 바나나톡을 개조해서 실제 카톡처럼 서버와 연동시킬 것이다. 한 3시간동안 배탈의 민족의 소스코드를 개조하고 변형하면서 DB를 관리하였다. 먼저 DB를 살펴보자. DB에서 table들은 계정이 담길 account, 유저의 친구를 담아줄 friend, 카톡방인 chat_room으로 구성하였다. 다른 테이블과 다르게 이번 테이블에는 token이라는것을 추가하였다. 이 token에서 한글자는 0-9 or A-Z가지, 그러니까 총 36가지로 유저와 카톡방의 token길이는 20이다. # #접속 ID 생성 부호 thex=["0","1","2","3","4","5","6","7","8", "9","a","b","c","d","e","f","g","h","i", "j","k","l","m","n..

난 옛날에 어떤 유튜버의 포트폴리오를 구경하던중, 어떤 사진을 원으로 쪼개서 모자이크하는 영상을 보았다. 그걸 보고 예뻐서 무작정 C#으로 따라 만들어 봤다. 알고리즘, 유저가 입력한 묶을 픽셀의 갯수가 있는데, 거기서 정사각형 모양으로 묶고 그 픽셀들의 평균 RGB값을 구할것이다. 이렇게 가로 6픽셀, 세로 3픽셀인 사진이 있다. 만약 묶을 픽셀의 갯수를 3개로 잡는다면 저 검은색의 3x3 사각형 안에 있는 픽셀들의 RGB값들을 평균으로 해서 한가지 생상으로 나타낸다. 그렇다면 이 사진은 이렇게 초록색 박스와 노란색 박스로 묶이는것이다. 이런식으로 알고리즘을 구현했다. 내가 설명을 잘 못하기 때문에 코드로 봐보자. 어쨋든 나는 그 영상에 나와있는 사진중에 고흐의 작품을 모자이크 해봤다. 좀 하예졌지만 ..

오늘은 단어시험 부분을 개발했다. 그부분만 개발했다기에는 얼마 안한것 같지만 버그와 오류 때문에 2시간 35분 동안 이 부분을 만들었다. 먼저 단어 섞는 부분을 만들기위해서 함수를 하나 만들어줬다. # import random as r #0~n까지 랜덤으로 섞음 def RandomMixWithNumber(end_count:int) -> list: """ex) end_count = 5 -> return = [0,2,4,3,1]""" #0~n value_array=[i for i in range(end_count)] result_array=[] for i in range(end_count): #value_array에서 뽑은 값 poped_value=value_array.pop(r.randint(0, len(..