반응형
오늘은 만들어둔 버튼들중 Buy max와 Max all 버튼을 구현해볼 생각이다
그리고 저번에 생각했던대로
1~6차원은 10단위까지는 한번의 클릭으로 일괄구매가 되도록 해보자
생각해보니 10단위 일괄구매를 먼저 만드는게 나을듯해서 그쪽을 먼저 시작했다
간단한 반복문을 사용하면 될것같았는데
만들다보니 C#에는 do~while 이라는 파이썬에는 없었던
특이한 반복문이 있다는걸 알게되서 한번 써보았다
public void D1_purchase(){
if (MA >= D1_cost){
do {
MA -= D1_cost;
D1_amount += 1;
D1_amount_total += 1;
D1_cost = 10 * Math.Pow(10,Math.Truncate(D1_amount/10));
D1_multiple = Math.Pow(2,Math.Truncate(D1_amount/10));
} while (MA >= D1_cost && D1_amount%10 != 0);
}
}
do~while 이 없었으면 좀 더 복잡하게 되었을거같은데
덕분에 기존의 코드와 큰 차이가 없는수준 ㅎ
테스트해보니 잘 돌아가는걸 확인하고 2~6차원까지 다 바꿔주었다
다음은 Max all 버튼차례
먼저 그냥 모든 구매대상들중 최소가격이 현재 물질수보다 작으면 계속 반복구매하도록
스크립트를 만들어 보았다
public void Max_all(){
double min_cost;
do {
TS_purchase();
D1_purchase();
D2_purchase();
D3_purchase();
D4_purchase();
D5_purchase();
D6_purchase();
double[] costs = {D1_cost, D2_cost, D3_cost, D4_cost, D5_cost, D6_cost, TS_cost};
min_cost = costs.Min();
} while (MA >= min_cost);
}
요론느낌?
근데 막상 실행해서 Max all 버튼을 눌러보니
이렇게 10개까지 못채우고 낱개로 짜투리가 남는게 불편한 느낌 ;ㅅ;
그래서 수정을 더 해보았는데
결국 이래저래 생각해 보아도 스크립트 자체를 짧게 만들기는 힘들듯하여
그냥 하나씩 넣어주었다 ..^
public void Max_all(){
while (MA >= TS_cost){
TS_purchase();
}
while (MA >= D1_cost * (10 - D1_amount%10)){
D1_purchase();
}
while (MA >= D2_cost * (10 - D2_amount%10)){
D2_purchase();
}
while (MA >= D3_cost * (10 - D3_amount%10)){
D3_purchase();
}
while (MA >= D4_cost * (10 - D4_amount%10)){
D4_purchase();
}
while (MA >= D5_cost * (10 - D5_amount%10)){
D5_purchase();
}
while (MA >= D6_cost * (10 - D6_amount%10)){
D6_purchase();
}
}
이제 실행해보니
요로케 Max all 버튼을 눌러도
1개단위는 구매하지않고 내비두도록 완성
반응형
'개발 > Newbie Creator' 카테고리의 다른 글
방치게임 개발하기 #11 - 탭 만들기 (0) | 2024.12.25 |
---|---|
방치게임 개발하기 #10 - 버그수정 (0) | 2024.12.23 |
방치게임 개발하기 #8 - 스크립트 간소화 (1) | 2024.12.19 |
방치게임 개발하기 #7 - 버튼꾸미기3 (0) | 2024.12.17 |
방치게임 개발하기 #6 - 버튼꾸미기 2 (0) | 2024.12.15 |