Diary
카테고리
작성일
2024. 12. 21. 12:42
작성자
yul s
반응형

 

 

 

 

 

 

오늘은 만들어둔 버튼들중 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개단위는 구매하지않고 내비두도록 완성

 

 

반응형