한숨부터 쉬고 시작!
처음 경매장을 만들고, 팀을 구성했을 때 '하.. 이거 왜 이렇게 어렵지?' 생각했었다
근데 오늘 ?
똑같은 생각이 든다.. 맨날 오류 오류 오류 오류 그만 좀!!!!
그래도 여기 부셔보고, 저기 뚝딱뚝딱 고치는 재미는 있으니깐 참고한다..
그래 사용자가 선수 영입하고 구단이름 설정하고 상대 구단 지정하고
타석 바꾸기까지 됐어
이제 휘두르기만 하면 돼.. 근데 왜 인덱스 오버가 뜰까?
이건 잠시 보류하고
이쯤에서 문득 생각 들었다 '처음부터 잘못 만든 건 아니겠지?'
설계의 중요성을 다시 한번 깨닫는다
단순히 무슨 기능 무슨기능 만들고 어떻게 클래스 나눠야지.. 에서 끝났으면 안됐다
몰론 뼈대를 만들고 붙여가면서 코드도 줄이 고를 반복하는 게 맞는 방법 같은데
조금만.. 조금만 더 생각하고 시작할걸
6일 차인데도, 오류 뜰게 눈에 보이는 것들 투성이
코드 반복되는 거 투성이
함수 이름 불-편한 거 투성이
하나 위안할 건 있었다.
처음엔 이것도 못했어
오늘따라 찡찡거리고 싶네
이제 그만.
bringPlayerstats 함수 : 구단. txt에서 선수들의 정보를 가져오고 그걸 선수 한 명씩 끊어서 타석 바꾸는 거까지 진행이 되었으면, 이제 그 선수들이 각자 가지고 있는 스탯(숫자)을 가져와야 확률을 계산해서 안타를 칠 수 있어서 만든 함수
bringPlayerName 함수 : 콘솔 창에 40/홍길동/3/300 느낌 없잖아.. 이름만 가져와서 출력해주자 함수
special 함수 : 각 선수마다 10퍼센트 확률로 무적권 홈런이나 스트라이크 던질 수 있는 필살기 (내가 게임 만든 사람이니깐 태클 걸지 마)
return_array 함수 : 5일 차 참고
check_where 함수 : 선수 이름만 가져왔으니 그 선수가 안타를 쳤을 때, 어디에 있는지는 알아야지 함수
(홍길동이 2루타를 쳤다 : 홍길동/2 => 선수 뒤에 숫자가 4가 넘어가면 숫자 없애주고 score++ 해주는 느낌으로 가자)
ruta 함수 : 일단 몇 루타 칠지는 랜덤으로 결정하고(메인에서 결정-매개변수로 받음), 몇루타쳤는지 콘솔 창에 출력해주자 함수
success 함수 : 각 선수의 스탯을 매개변수로 입력받으면, 그 숫자 확률로 true/false 반환해주는 boolean 함수
일단 습관을 하나 길들이자 (주석처리 좀 하자)
메인화면인데, 일단 타석 바꾸기까지는 5일 차에 설명해놨음!
이제 선수한테 필요 없는 정보 다 버리고, 이름만 가져온 다음에 그걸 배열에 넣었다 (player_name [])
그다음에는, 어떻게 공격 타임이 이뤄지는지 사용자한테 설명해주는 attack_des 함수를 실행시켜주고
그 밑에는 선수 한 명이 아웃될 때까지 와 3명 다 아웃돼서 턴이 넘어갈 때까지의 변수들을 준비해봤습니다
그 밑으로는 일단 while문을 넣어주고 턴바뀔때까지 진행!
그다음으로는 선수들 이름만 가져온 배열 반복문을 돌려준다
그리고, 또 이제 그 한 명의 선수가 나오면 그 선수가 다시 아웃될 때까지 while문을 돌려준다
(이거 코드 깨끗하게 짜는 방법이 있을까..?)
그다음에 이제 사용자가 배트를 휘두를지 말지를 결정해주게 만들고,
휘둘렀을 때는, 일단 아까 만들어 놓은 special (필살기) 먼저 걸러준다
(홈런 쳤을 때는, 나중에 구현 - 앞에 진루한 선수 있을 때도 같이 생각해야 해서)
그다음으로는 안타를 쳤을 때를 걸러주어야 하는데,
아까 ruta 함수에 들어갈 매개변수를 랜덤으로 뽑아주고 (몇 루타 뽑을지 랜덤)
선수 이름 뒤에 숫자를 넣어준다 (몇 루타)
안타가 아닐 경우에는, 콘솔에 Strike 찍어주고 strike++;
안 휘둘렀을 때는, 반반 확률로 스트라이크나 볼로 처리한다 (나중에는 상대 투수 스탯 확률로 바꿔봐야지)
그리고 스트라이크가 3일 때는 아웃
볼이 4일 때는 볼넷
그리고 한 선수가 3 스트라이크 되면 while문 빠져나오면서 콘솔에 Out 찍어주기
처음 오류 찾았다.
오늘은 이걸로만 해도 큰 수익인 거 같다
처음에는 타석 바꾸기 할 때 계속 반복문 2번 도는 오류 뜨길래, 도대체 뭐지? 했는데
알고 보니 구단이름 똑같이 해서 6명씩 12명 들어가 있었다는.. 멍청이
인덱스 오버 난 거는 홈런이 아니고 안타 쳤을 때 경우인데
G.success(G.bringPlayerStats(player_name [i])) 여기!!!!!!!!!!!!!!!!!!!!
player_name에는 이름만 있잖아..
바로 bat_turn [i]로 수정해주니 오류는 해결했다
근데 웬걸 우재호 씨가 두 번 나오네
우재호 우재호/1 타자
우재호 씨가 1루타를 치긴 쳤는데, break를 안 걸어서 그런가?라는 생각이 드는데
오늘은 도저히 못해
내일 하자.
'Project > ToyProject' 카테고리의 다른 글
[R.Manager - Toy Project] 1st (Main UI, ERD) (0) | 2021.12.11 |
---|---|
[Baseball - Restrict console] 7th (InGame #2) (0) | 2021.08.01 |
[Baseball - Restrict console] 5th (change at bat / main) (0) | 2021.08.01 |
[Baseball - Restrict console] 4th (0) | 2021.08.01 |
[Baseball - Restrict console] 3rd (0) | 2021.08.01 |