디시인사이드 갤러리

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

갤러리 본문 영역

[일반] 스네코 갤에 올리는 코딩으로 구한 스네코덱 평균 사용 카드 수

ㅇㅇ(1.254) 2021.06.30 15:56:19
조회 2980 추천 21 댓글 5
														

본인은 분명 몇 년 전까지만 해도 정규분포니 99퍼 정확성이니 하는 확률 관련 이론을 알고 있었으나 어느 순간 다 잊어버렸다. 그래서 그걸로 구하는 건 포기함.

대신에 코드 짜는 법은 아직 기억 나서 이걸로 턴 드로우를 반복 시행하여서 평균적인 값을 구하는 걸로 함.

전제는

1.스네코 혼란 디버프(카드 코스트는 랜덤으로 0~3)

2.7장 드로우(모두 사용 가능한 카드. 저주 등 제외)

3.반드시 낮은 코스트의 카드부터 사용

4.기본적으로 3코덱

이다.

대부분 내용은 코드상 이 알고리즘을 쓰는 게 맞는지 검증하는 거니 귀찮으면 아래쪽 요약 봐도 됨. 이제 드감.

viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c997ded9fa7b3afec4528020e6c952780ec3db847d853ba59447060f




전체 코드 링크. 볼 사람은 보자. https://csacademy.com/code/3Qr3S3Ov/

viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c9979a8fac7e55fec157e873b69e700883e3ad2a639cb0

일단 위가 전체 코드고 값을 결과창에 띄우느냐, 시행횟수(진행해본 턴)이 몇 번이냐, 덱이 몇 코스트냐 그런 자잘한 차이만 있지 기본 알고리즘은 위와 같음. 더럽게 기니 하나씩 잘라서 보자.


viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c9979a8fac7e55fec157e874e69c5731e35d9a8564bd95

1~21열은 함수 라이브러리 호출이랑, 구글에서 돚거해온 버블정렬 함수이다. 감사합니다. 후자는 숫자 배열(스네코로 뽑은 7장의 코스트 목록)을 던져줬을 때 오름차순으로 정렬해주는 거다.


viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c9979a8fac7e55fec157e822e19e611cf3866e2d313d61

23열은 7장 뽑은 카드의 코스트 목록을 저장하는 배열, 24열은 턴 당 운용 카능한 코스트가 얼마인지(3혹은 4) 지정해놓는 변수, 25열은 낮은 코스트부터 카드를 쓴다고 할 때 얼마만큼의 코스트를 썼는지 저장하는 변수. 몇 장의 카드를 쓸 수 있는지만 구하는 거니깐. 26열은 시행 횟수(스네코 7장을 드로우한 횟수), 27열은 시행 횟수만큼 드로우 했을 때 각 턴에 사용한 카드 갯수를 누적 저장하는 변수다. 나중에 평균 턴 당 사용 카드 수 구할 때 씀. 29~59열이 본격적인 코드이다.


viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c9979a8fac7e55fec157e820e49a671fcfc5a1fbf64c83

29열은 매번 코드 실행 시 난수가 잘 적용되고 정상적으로 다른 결과가 나오게끔 하는 함수이다. 31열은 시행(턴 기본 드로우 횟수)을 몇 번할 건지 지정하는 거다.


viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c9979a8fac7e55fec157e826b7c7af8ac761f138d292a5

32열은 매 턴 사용된 코스트를 0으로 초기화(코스트 회복 반영), 34~38열은 뽑은 카드의 코스트를 부여한 뒤 카드 코스트를 오름차순으로 정렬한 것이다. 36열의 rand함수는 무작위 값을 내보내는데, 이 값을 4로 나누었을 때 나머지를 카드 코스트에 할당해준다. 즉, 0~3값을 돌려준다. 29열 srand 있어서 난수 고정을 방지함. 40~44열은 구한 배열을 결과창에 보여준다.


viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c9979a8fac7e55fec157e826b0c80db67f1e3ed86e5bef

이런 식으로. playedCards는 밑에서 또 나온다.


viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c9979a8fac7e55fec157e821edc7610d2ff45d441577e8

이제 몇 장 쓸 수 있는지 카운팅 한다. 46열은 변수 재활용. 47~52열은 특정 알고리즘을 반복하는 건데, 아까 배열한 이유가 이것 때문이다. 카드 코스트가 낮은 것부터 사용한다고 치면 오름차순 배열의 첫번째 카드를 먼저 쓸 거다. 그리고 다음 카드를 쓰려는데 그럴려면 남은 코스트가 있어야 하지? 47열로 사용한 코스트가 턴 당 코스트 미만이라면 다음 카드를 사용한다. 반복적으로 카드를 사용하다가, 코스트가 부족하건 패가 부족하건 해서 카드 사용이 끝난다. 마지막으로 쓴 1코 이상이라면 코스트부족으로 전자에 걸릴테고, 0코스트이면 후자에 걸릴거다. 근데 0코 남았는데 1코 이상 카드를 쓸 수 없겠지? 그래서 49열이 있다. 이때까지 쓴 코스트가 턴 당 코스트 이하여야만 사용한 카드로 카운팅한다. 53~54열은 위 방식으로 구했을 때 이번 턴 사용한 카드 숫자를 보여준다. 55열은 모든 시행의 평균 사용 카드 수를 구하기 위해 씀.


viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c9979a8fac7e55fec157e876ecc9e8164f6f764edb51f1

아까 playedCards가 그거임.


viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c9979a8fac7e55fec157e820b39edd07f0d2d0a4bc26a1

58~59열은 마지막으로 모든 시행(진행 턴)에 쓴 누적 카드 숫자와 턴 당 평균 사용 카드 수를 보여준다.

viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c9979a8fac7e55fec157e875b1c649104aaeff7d670246

결과는 이럼.


밑에처럼 결과 계속 다르게 나오는 거 보니 난수 생성 잘 되는 거 같음. 볼 사람은 보자.

10번 실행 시 각 시행의 나온 코스트와 사용 카드 수, 평균 사용 카드 수 : https://csacademy.com/code/3Qr3S3Ov/

추가 시행 1 : https://csacademy.com/code/VhWPP93k/

추가 시행 2 : https://csacademy.com/code/VO26UhtH/

추가 시행 3 : https://csacademy.com/code/MmZXjhnW/

추가 시행 4 : https://csacademy.com/code/P83PSMzZ/

추가 시행 5 : https://csacademy.com/code/5UJjUnGU/


이제 결과창만 띄움.


viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c9979a8fac7e55fec157e875e3c730d6f18ce7e149eb0e

100번 실행 시 각 시행 사용 카드 수와 평균 사용 카드 수 : https://csacademy.com/code/0xeFEXFo/

viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c9979a8fac7e55fec157e823e39b3a725aa5dfad64a1bf

1000번 실행 시 평균 사용 카드 수 : https://csacademy.com/code/zZes69wq/



번외

viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c9979a8fac7e55fec157e827e09e4d4e22a0e8c3fe8f72

4코덱의 1000번 실행 시 평균 사용 카드 수 : https://csacademy.com/code/ZWuzncuK/

playableCost를 4로 고친 거임.


viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c9979a8fac7e55fec157e828ec9c521e468072a3d5efcf

난수생성기 이상한지 확인할 겸 10000번 카드 뽑았을 때 코스트 평균 : https://csacademy.com/code/uPLxaIOj/

추가 시행 1 : https://csacademy.com/code/MAANzoKn/

추가 시행 2 : https://csacademy.com/code/MAANzoKn/

추가 시행 3 : https://csacademy.com/code/LaYKQeNq/

추가 시행 4 : https://csacademy.com/code/OTUqKUl4/

추가 시행 5 : https://csacademy.com/code/7xWANO8M/



결과 요약 : 3코덱 기준, 저주 등을 무시하고 낮은 코스트의 카드부터 사용할 때 턴 당 약 3.8장의 카드를 쓸 수 있다. 의외로 4코덱 스네코라도 4.2장 쓰는 수준에 그친다.


결론?

여기서부턴 개인적인 의견이다. 평균적으로 쓰는 카드 숫자를 궁금해서 코드를 구하긴했는데 이게 수치적인 부분만 해당되고 사실 조금 함정이 있다. 하나 들고 싶은 예시가 아래이다. 코드도 돚거하고 사진도 나뮈키 돚거하고 해서 사일런트를 데려왔다.


viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c997ded9fa7b3afec4528020e6c9527804cfdf8529d16ef49447060f

viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c997ded9fa7b3afec4528020e6c952780ac38cd32c853ef29447060f

우리의 치코리타가 2막의 뱀식물을 만났다고 가정해보자. 가장 효율적인 방어 플랜은 불쾌 혹은 귀를 찢는 비명이지싶다. 마침 첨잘알 치코리타가 귀찢비를 집었기에 독을 쓰며 잡을 생각에 웃고 있었다.


viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c997ded9fa7b3afec4528020e6c952780dccdb822fdf3aa19447060fviewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c997ded9fa7b3afec4528020e6c952785a9edbd47ad538a09447060fviewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c997ded9fa7b3afec4528020e6c952780f9ed88329873ff19447060f

딱 대라 아 ㅋㅋ. 7장 드로운데 저게 안 뜨겠어? 치코리타가 턴 당 4장 카드를 쓴다는 생각에 싱글벙글하며 드로우를 했다. 그런데 이게 무슨 좆같은 일인가?


viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c997ded9fa7b3afec4528020e6c952785ec8d7d07ad03df29447060fviewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c997ded9fa7b3afec4528020e6c952780cc2d6812f8239af9447060fviewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c997ded9fa7b3afec4528020e6c952780cc2d6812f8239af9447060fviewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c997ded9fa7b3afec4528020e6c952780f9ed88329873ff19447060fviewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c997ded9fa7b3afec4528020e6c952785ec38d842bdf38af9447060fviewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c997ded9fa7b3afec4528020e6c952785ec38d842bdf38af9447060fviewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c997ded9fa7b3afec4528020e6c9527809c3df8328df6bf19447060f

분명 뜨긴 했는데 귀찢비가 3코에, 약화로 4대미지가 된 타격이 0, 1코, 가장 효율적인 대미지 카드인 맹독은 1코, 손상으로 방어력 3따리인 수비 2, 2코, 다탄히트 효율이 좆망한 단분이 0코가 됐다. 7드로우도 했고 4장까지 쓸 수는 있는데 내가 원하는 카드인 귀찢독, 맹독, 수비를 다 쓰지 못한다. 원래라면 전부 1코라 다 썼을텐데라며 좀 꼬울 수 있다.

viewimage.php?id=3eb1d13f&no=24b0d769e1d32ca73dec8ffa11d02831046ced35d9c2bd23e7054f3c2f8d67a8e681c997ded9fa7b3afec4528020e6c952785d98ddd02f8031a79447060f

ㄹㅇㅋㅋ


그렇다. 3.8장 평균으로 쓸 수는 있는데 그게 낮은 코스트부터 무조건 카드를 많이 쓴다는 가정 하에 이뤄진 거다. 그렇기에 적재적소에 원하는 카드 3.8장을 쓴다는 것과 혼동해서는 안 된다.

위의 예는 사실 양반이다. 일단 귀찢비가 떠서 8X3을 2X3으로 쳐맞은 게 어딘가? 스네코 드로우가 없었다면 수수수로 9댐 막고 15댐 쳐맞아 치/코/리/타가 됐을 수도 있다.

보통 1코스트인 드로우카드를 스네코 집었다는 이유로 완전히 거를 수 없는 이유가 이거라고 생각한다. 카드를 많이 쓸 수 있어도 내가 원하는 카드라는 보장이 없다. 또한 스네코 4코덱이 뜻밖에도 0.4장밖에 더 못쓴다는 거에 그쳤지만 여전히 매력적이라고 본다. 내가 원하는 카드들을 쓸 가능성을 높여준다. 위의 경우 귀찢비+맹독이 될 수 있다.


3.8장이 의외로 높은 수치이긴 했는데 그래도 스네코는 덱의 운용 방식을 바꾸는 만큼 일반 덱의 3.8장과 많이 다르다고 본다. 좀 결론이 어정쩡한데 요약하면 이렇다.


요약

1.턴 당 최대 약 3.8장의 카드를 쓸 수 있다. 의외로 4코덱 스네코라도 4.2장 쓰는 수준에 그친다.

2.하지만 카드를 많이 쓸 수 있어도 내가 원하는 카드라는 보장이 없다. 여전히 덱 운용의 유연성을 늘려주는 코스트와 드로우는 매력적이다.

3.그래서 집어야 함? 말아야 함? 몰?루?




추천 비추천

21

고정닉 6

1

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2864 설문 비난 여론에도 뻔뻔하게 잘 살 것 같은 스타는? 운영자 24/06/03 - -
2865 AD 호요버스 신작 <젠레스 존 제로> 7월 4일 오픈! 운영자 24/06/05 - -
77884 공지 뉴비를 위한 공략글 & 각종 정보글 모음 [33] ㅇㅇ(39.7) 21.06.03 305257 83
172568 공지 슬레이 더 스파이어 갤러리 운영 기준 [3] 입력안할거임갤로그로 이동합니다. 24.05.24 262 5
153985 공지 [모드] 관련 정보, 갤 내 분쟁 처리 기준 입력안할거임갤로그로 이동합니다. 23.11.11 3065 6
91793 공지 게임 구입하기 전&막 시작한 뉴비 FAQ [20] 입력안할거임갤로그로 이동합니다. 21.12.20 34230 56
62880 공지 (스압주의, 데이터주의) 모드캐릭 9개 20승천까지 클리어한 후기 [41] ㅇㅇ(175.214) 20.12.31 38703 116
29326 공지 [FAQ] 진엔딩 보는법 (???막 심장 만나는법) [13] EDIN갤로그로 이동합니다. 19.01.07 99033 68
173720 정보 코딩 몰라도 할 수 있는 모딩 공략 #2 - 카드 추가하기 [1] 모더갤로그로 이동합니다. 01:12 192 9
173704 정보 코딩 몰라도 할 수 있는 모딩 공략 #1 - 개발 환경 설정 [3] 모더갤로그로 이동합니다. 06.07 263 9
173669 모드 예전에 만들다 유기한 모드들 [8] 모더갤로그로 이동합니다. 06.07 630 10
173665 일반 공지 덕에 20승천 뚫었네용 [8] ㅇㅇ(14.52) 06.07 691 13
173663 일반 ???? 머임?? [2] 슬갤러(106.246) 06.07 585 8
173657 일반 노상목 친구이름이라 먼가 웃기네 ㅋㅋ [1] ㅇㅇ(183.101) 06.07 563 13
173654 일반 뉴비 드디어 클리어함!!!!!! [5] ㅇㅇ갤로그로 이동합니다. 06.07 516 10
173597 일반 상점 도파민 지렸다 [6] ㅇㅇ(121.174) 06.06 617 13
167391 정보 슬레이 더 스파이어 2 트레일러 [94/1] ㄴㅁㅇ갤로그로 이동합니다. 04.11 12761 76
173528 일반 신성이나 개화의 표식을 왜 집음...? [8] 슬갤러(223.38) 06.05 1014 9
173517 연재 연재 - 굳이 안해도 되는 디펙트 순환덱 06 [3] mirabelle(175.197) 06.05 464 13
173507 일반 슬붕이 공부하다가 슬더스 찾았다.jpg [14] 슬갤러(59.23) 06.05 1198 30
173501 일반 아니 이게 되네; [3] 슬갤러(117.110) 06.05 614 10
173494 일반 재구성 왜이리 평가가 박함? [7] ㅇㅇ(1.249) 06.04 1110 21
173465 일반 부끄럽지도 않느냐!!! [13] 야자33갤로그로 이동합니다. 06.04 1136 20
173442 일반 깼다!! 깼다!!! 깼따!!!!!!!!!!!!!!!!!!!!!!!!!!! [9] 슬갤러(14.52) 06.04 1130 20
173435 일반 나만 보긴 아까운 명클립 모음.gif [7] ㅇㅇ갤로그로 이동합니다. 06.04 1169 21
173412 일반 할당이 얼마나 개사기였는지 간접적으로 알아보자 feat.재구성 [7] ㅇㅇ(223.39) 06.03 1272 14
173410 일반 데카 인형왓음 [5] 슬갤러(117.111) 06.03 811 12
173404 일반 제거할 카드가 없을 때 추락 이벤트를 만나면? [7] ㅇㅇ(106.101) 06.03 1216 21
173394 일반 "이새끼 뭐하는 놈이지?" [7] 슬갤러(121.156) 06.03 1131 17
173388 일반 슬더스 천시간쯤 하면서 처음봄 [1] BJ짭마도사갤로그로 이동합니다. 06.03 889 8
173378 일반 뭐냐 느로스 포션벨트주면 개꿀이네??? [9] 슬갤러(118.235) 06.03 1091 13
173362 일반 나 이겜하면서 유물 46개는 처음 먹어본다 [7] 슬갤러(14.42) 06.03 1174 16
173341 일반 슬라임 한방컷냈다 [10] ㅇㅇ(121.174) 06.02 1019 18
173325 모드 슬더스 갤러리 모드 완성 [8] 모더갤로그로 이동합니다. 06.02 1369 26
173322 일반 이겜 이거 너무한거 아닌가요? [17] 슬갤러(112.214) 06.02 1164 28
173321 일반 고래밥 왕관으로 꺴다 [2] 7777갤로그로 이동합니다. 06.02 873 14
173313 일반 뉴비....갇혔는데 이거 어카냐? [14] ㅇㅇ(121.134) 06.02 1140 19
173225 모드 고구마와 뱀식물이 같이 나온다면 [23] ㅇㅇ(211.41) 06.01 1422 14
173210 일반 공포기괴) 0층에서 패배하는 사일런트 [8] HighFlyingBirds갤로그로 이동합니다. 06.01 1269 20
173187 모드 ㅆㄷ) ANA 씹덕 고블린모드 완 [4] 슬갤러(115.142) 05.31 1407 13
173147 일반 시발 모닥불이 코앞인데 [7] ㅇㅇ(220.126) 05.31 1253 17
173052 일반 슬더스 하면서 이런거 처음 봄 [5] ㅇㅇ(61.105) 05.30 1258 10
173049 일반 뉴비 드디어 첫 클리어 해봄 [12] 슬갤러(112.171) 05.30 820 10
173002 일반 라가불린 깨어날때 노래 따라부르는 사람 있냐 [10] 슬갤러(211.46) 05.30 1403 20
172990 토론 [카드 토론] 부메랑 칼날 [40] 슬갤러(119.206) 05.29 1362 12
172980 모드 슬더스 갤러리 모드 개발중 [22] 모더갤로그로 이동합니다. 05.29 1909 53
172950 일반 아 화나네 이게임 [13] 총굴갤로그로 이동합니다. 05.29 1292 12
172908 일반 념글 거인의 머리가 악랄한 이유 [6] ㅇㅇ갤로그로 이동합니다. 05.29 1461 27
172906 일반 사일런트 복기 - 下 [7] 레후딥의수정창갤로그로 이동합니다. 05.29 527 7
172905 일반 사일런트 복기 - 上 [2] 레후딥의수정창갤로그로 이동합니다. 05.29 485 6
172894 일반 "팔방미인" [9] 슬갤러(211.234) 05.28 1309 18
172891 연재 연재 - 굳이 안해도 되는 디펙트 순환덱 05 [9] mirabelle(175.197) 05.28 541 9
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2