디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[🔎질문] 파이썬 코드 검토좀 부탁합니다

노란하스터갤로그로 이동합니다. 2023.06.01 04:27:25
조회 168 추천 0 댓글 8
														

내용 :

1. 코드


def Ppull(self, chance, amount, target, other1,other2,other3):
targets = [other1,other2,other3]
targets = sorted(targets, key=lambda x: x.in_rank)
other1,other2,other3 = targets
ch = randint(1, 100)
if ch >= (100 - (chance-target.moveres)):
target.in_rank -= amount
if target.in_rank < 1:
target.in_rank = 1
if other1.in_rank == target.in_rank:
other1.in_rank += 1
if other2.in_rank == target.in_rank or other2.in_rank == other1.in_rank:
other2.in_rank += 1
if other3.in_rank == target.in_rank or other3.in_rank == other1.in_rank or other3.in_rank == other2.in_rank:
other3.in_rank += 1


2. 에러 메시지


딱히 그런거 없었음


3. 자신이 의도한 작동방식 설명, 코드 설명


다키스트 던전이라고 턴제 RPG방식 게임이 있는데, 아군이 1열부터 4열까지 주루룩 늘어서 있고, 그냥 알아서 움직이거나 적군이 밀어내거나 당기는 기술에 당해서 위치가 강제이동 당할수 있음.

1열이 가장 앞이고, 4열이 가장 뒤쪽인데, 만약 1열에 있을때 더 끌려나간다거나 할순 없고 1열에서 멈춤. 4열에서 밀릴때도 마찬가지임.


만약 아군이 2열에서 1열로 1칸 앞으로 당겨지면 1열에 있던 애는 한칸 뒤로 밀리고, 

(4321 -> 4312)


만약 3열에서 1열로 2칸 앞으로 당겨지면 각각 1,2열에 있던 애들이 한칸씩 뒤로 가서 1열에 있던 애가 2열에, 2열에 있던 애가 3열에 가게 됨.

(4321 -> 4213)


그래서 파이썬에서 그걸 구현중인데 in_rank라는 변수가 각 인스턴스마다 있음.

위 코드는 당기기 예시인데, 일단 other1,2,3이라는 인스턴스들을 각각 자리별로 정리해줌. 몇열인지 상관없이 가장 앞에 있는 애부터 (= 가장 숫자가 작은 애부터) 가장 뒤에 있는 애까지 순차적으로 other1,2,3이 됨.


그 다음에 ch랑 if절은 무시해도 되고 (확률 관련임)


target(기술 대상)을 amount 칸만큼 앞으로 밀침.

(만약 얘가 1열 이상으로 앞으로 나간다면 자동으로 1열에서 멈춰줌.)


그담에 만약 target의 위치랑 target 말고 다른 인스턴스들 중에 target이랑 위치가 겹치는 애가 있으면 한칸 뒤로 밀어주고, 다른애랑 또 겹치면 뒤로 밀어주고 해서 최종적으로는 in_rank 변수에 각각 1,2,3,4가 한개씩 할당되있게 해줌.

뒤로 밀치는거는 이걸 몇몇개를 반대로 하면 되더라.


이거를 파이썬 내에서 어떻게 구현하려고 하는데, 애들 크기가 1칸일때는 어느정도 되는데 2칸, 3칸부터는 어떻게 해야 하는지 잘 모르겠음.

적들이 2칸 크기여서 1,2열이나 2,3열, 3,4열을 동시에 먹는경우도 있고, 3칸짜리여서 1,2,3이나 2,3,4를 동시에 먹기도 해서...


코딩 초보라 코드가 많이 스파게티임 ㅈㅅ...


이거 좀 어떻게 도와줄 사람 있음?

코드 개선하려면 어떻게 하는게 맞을까?


일단 일정량만큼 target 인스턴스를 앞으로 이동시킨 후 걔랑 위치가 겹치는 애가 있으면 그만큼 뒤로 보내주면 되는데...

===========================================================

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
- 설문 영포티룩도 멋지게 소화할 것 같은 40대 스타는? 운영자 25/10/27 - -
- AD 할로윈 슈퍼위크~!! 운영자 25/10/23 - -
2344 🔎질문 파이썬 처럼 수치연산 빠르고 쓰기쉬운 타입언어 있나영? [5] ㅇㅇ(121.181) 23.08.17 180 0
2341 🔎질문 파이썬으로 m3u8 추적 다운로드 할 수 있음? [2] ㅇㅇ(14.51) 23.08.09 196 0
2339 🔎질문 파이썬으로 업비트 api 데이터 가져올때 [7] ㅇㅇ(220.72) 23.08.08 130 0
2337 🔎질문 pygame 설치 및 pip 업그레이드 안됨 [2] ㅇㅇ(112.154) 23.08.07 118 0
2336 일반 옛날에 물어봤었는데 다시 질문함 ㅠㅠ [3] ㅇㅇ(49.177) 23.08.07 140 0
2334 🔎질문 님들 파이썬 개초보가 라이브러리 구경하게 도와주세요 [3] ㅇㅇ(39.124) 23.08.03 252 1
2331 🔎질문 파이썬초보 입니다. 도와주세요 ㅜ [5] ㅇㅇㅇㅇ(49.168) 23.07.28 188 0
2327 🔎질문 선생님들 스크랩핑 for 반복문으로 텍스트 출력하는데 오류가 발생합니다 [2] ㅇㅇ(219.251) 23.07.18 159 0
2326 일반 문득 이런 생각이 들었습니다. [1] ㅇㅇ(223.39) 23.07.17 88 0
2325 🔎질문 파이썬 머신러닝 테크 타고 싶음 [8] ㅇㅇ(182.226) 23.07.17 419 0
2322 일반 오늘은 requests.post를 써봤습니다 ㅇㅇ(223.39) 23.07.15 145 0
2320 🔎질문 파이썬 완전 초보입니다. 도와주세요 [5] 아이고 인생아(115.143) 23.07.13 289 0
2318 🔎질문 님들 파이썬 주력인데 맥 사는거 어떻게 생각함? [9] ㅇㅇ(210.91) 23.07.10 207 0
2316 🔎질문 matplotlib plt을 Gradio return값 관련 질문입니다 ㅇㅇ(210.91) 23.07.06 123 0
2315 🔎질문 정규표현식 공부하는 중 [7] ㅇㅇ(211.234) 23.07.05 200 2
2314 🔎질문 pip로 exe 만드는법 질문입니다 [8] ㅇㅇ(220.79) 23.07.05 204 0
2310 일반 playwright 맛보기 실패... [3] dd(211.234) 23.07.02 224 0
2309 일반 chat GPT는 최고야... [2] ㅇㅇ(106.102) 23.06.30 217 0
2308 🔎질문 백준 문제풀이 [5] ㅁㅇ(118.35) 23.06.29 172 0
2307 일반 잘 되던 프로그램이 갑자기 먹통이다 [1] ㅇㅇ(220.79) 23.06.29 78 0
2306 🔎질문 tkinter에서 창 클릭무시? 같은거 하려는데 [4] sonrxnu(114.203) 23.06.29 116 0
2304 🔎질문 파이썬은 아닌데 다른 프로그램 질문 ㅇㅇ(118.235) 23.06.22 91 0
2302 🔎질문 파이썬 메모리 사용량 확인 어떻게 하는거죠? [1] ㅇㅇ(220.86) 23.06.21 115 0
2301 🔎질문 함수 성능테스트 비교하는 방법 [2] ㅇㅇ(220.86) 23.06.19 130 0
2300 🔎질문 이거질문좀 막대그래프왜이럼 [3] 강아지강아지갤로그로 이동합니다. 23.06.18 155 0
2299 🔎질문 진짜 이거 왜 안 되는지 제발 알려주세요 [1] ㅇㅇ(211.49) 23.06.17 111 0
2297 일반 요즘 ai그림 해본다고 python 코드들 보니깐 잼나네 [2] 라댜갤로그로 이동합니다. 23.06.14 228 0
2293 🔎질문 급하게 질문... [4] ㅇㅇ(218.234) 23.06.12 156 0
2292 🔎질문 태양-지구-달 궤도 구현해봤는데 50년만 넘어가도 달 궤도가 이상해짐; [4] ㅇㅇ(122.128) 23.06.11 200 0
2289 🔎질문 함수 읽는법 [4] ㅁㅇ(118.35) 23.06.08 191 0
2288 🔎질문 재귀함수 팩토리얼 [6] ㅁㅇ(118.35) 23.06.08 176 0
2287 일반 정규표현식은 뭔가 잘 안 익숙해지긴 함 [1] ㅇㅇ(211.234) 23.06.07 131 0
2286 🔎질문 데이터프레임 질문이요 [10] chqh(211.178) 23.06.07 155 0
2284 🔎질문 정규표현식 너무 어려운거 같아요? ㅠㅠ 암기해야하나요 [2] chqh(211.178) 23.06.07 156 0
2283 🔎질문 실력이 고수가 되고 싶으면 어떻게 해야하나요 chqh(211.178) 23.06.07 102 0
2282 🔎질문 from random import randint는 뭔가요? [2] ㅇㅇ(121.186) 23.06.07 135 0
2280 일반 물어봐놓고 자세히 알려주니까 지워부노 [1] ㅇㅇ(211.234) 23.06.06 102 0
2278 🔎질문 아는사람한테 사용하던거 갑자기 에러나는데..아는사람.. [2] ㅇㅇ(106.102) 23.06.05 103 0
2276 🔎질문 데이터 크롤링 파싱 관련해서 한 가지 물어봐도 됨? [12] ㅁㅁ(14.39) 23.06.03 491 0
2275 🔎질문 이 숫자 크롤링 할 줄 아시는 분??? [21] chqh(211.178) 23.06.02 216 0
2274 🔎질문 크롤링하는데 Expecting value: line 1 column 1 [4] chqh(211.178) 23.06.01 148 0
2271 🔎질문 파이썬 초보인데 따라하지도 못 하고 있습니다 도와주세요 ㅠ [3] 졸린데안자(121.169) 23.06.01 288 0
🔎질문 파이썬 코드 검토좀 부탁합니다 [8] 노란하스터갤로그로 이동합니다. 23.06.01 168 0
2269 🔎질문 셀레니움 없이 크롤링 가능한 방법이 있을까요? [2] chqh(58.123) 23.05.31 177 0
2268 🔎질문 코딩으로 간단한 게임 만들었는데... [7] 가나다라마바사갤로그로 이동합니다. 23.05.30 218 1
2267 🔎질문 pyinstaller 가 pyqt 훅 ImportError 에러가 뜹니다 [9] ㅇㅇ(220.69) 23.05.30 155 0
2265 🔎질문 인터넷 글보고 간단한 키우기 미니게임 만들려는데 실행이 안됩니다 [4] 가나다라마바사갤로그로 이동합니다. 23.05.28 140 1
2263 🔎질문 횐님들 문외한이 물어볼 곳이 없어 찾아왔습니다... [1] ㅇㅇ(59.19) 23.05.28 160 0
2261 🔎질문 matplotlib 오류가 뜹니다... [5] ㅇㅇ(119.197) 23.05.27 149 0
2260 🔎질문 여기저기 돌아다니다 결국 파이썬갤 온 파이썬몇달차 늒네입니다 문제가있어요 [1] ㅇㅇ(122.153) 23.05.27 171 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2