본문 바로가기

정리 카테고리/실습_과제

02.26~27 수업중 내용 연습


-골렘과 내구도무기를 사용하는 사람과의 대결

-어느 한쪽의 체력이 0이하가 될때까지 싸운다.

-내구도가 0이된 무기는 파괴된다.

-무기가 파괴되면 주먹으로 싸운다.

-크리티컬 데미지가 확률로 들어간다.

-크리티컬 데미지(추가 데미지)도 랜덤하게 추가되어 들어간다.

-상대방에게 맞은후 확률적으로 체력을 회복한다.

        string monNam = "골렘";
        string humNam = "근육법사";
        float monHp = 100000;
        float humHp = 70000;
        int caneHp = 80;
        int caneDa = 3;
        int monDa = 2000;
        int humDa = 2200;
        int humPu = 3300;
        var monPer = 0;
        var humPer = 0;
        float monHill = 330.3f;
        float humHill = 730.8f;
        var monCri = 0;
        var humCri = 0;
        bool monCheck;
        bool humCheck;



        Debug.Log("!!!!!!!" + humNam + "님께서 " + monNam + "을 발견했습니다.");

        for (int i = 1;monHp>0 && humHp>0 ; i++)
        {
            //휴먼 공격
            Debug.Log("+++++"+i + "회차 ->" + humNam + "님께서 공격합니다.");
            if (caneHp > 0) {
                humPer = Random.Range(1, 101);
                humCheck = humPer % 4 == 0;
                if (humCheck)
                {
                    humCri = Random.Range(1, 50);
                    Debug.Log("    ++크리티컬!!!!!! " + (humDa + (humDa * humCri / 100)));
                    monHp = monHp - (humDa + (humDa * humCri / 100));
                    Debug.Log("    XX" + monNam + "의 남은체력 " + monHp);

                    caneHp = caneHp - caneDa;
                    if (caneHp <= 0) Debug.Log("!!!!!!!!마법지팡이가 파괴되어 주먹으로 때립니다!!");
                    else Debug.Log("    +>마법지팡이 내구도가  " + caneHp + " 남았습니다.");
                }
                else
                {
                    Debug.Log("    ++일반공격. " + humDa);
                    monHp = monHp - humDa;
                    Debug.Log("    XX" + monNam + "의 남은체력 " + monHp);

                    caneHp = caneHp - caneDa;
                    if (caneHp <= 0) Debug.Log("!!!!!!!!마법지팡이가 파괴되어 주먹으로 때립니다!!");
                    else Debug.Log("    +>마법지팡이 내구도가  " + caneHp + " 남았습니다.");
                }
                
            }
            else
            {
                humPer = Random.Range(1, 101);
                humCheck = humPer % 4 == 0;
                if (humCheck)
                {
                    humCri = Random.Range(30, 50);
                    Debug.Log("    ++크리티컬!!!!!! " + (humPu + (humPu * humCri / 100)));
                    monHp = monHp - (humPu + (humPu * humCri / 100));
                    Debug.Log("    XX" + monNam + "의 남은체력 " + monHp);
                }
                else
                {
                    Debug.Log("    ++주먹공격. " + humPu);
                    monHp = monHp - humPu;
                    Debug.Log("    XX" + monNam + "의 남은체력 " + monHp);
                }
            }


            //인간 승리 여부
            if (monHp <= 0) { Debug.Log("++휴먼승리!!!!"); }
            else
            {
                //몬스터 회복
                monPer = Random.RandomRange(1, 101);
                monCheck = monPer % 4 == 0;
                if (monCheck)
                {
                    Debug.Log("    XX" + monNam + "이 회복합니다.");
                    monHp = monHp + monHill;
                    Debug.Log("    XX" + monNam + "의 남은체력 " + monHp);
                }
                //몬스터 공격
                Debug.Log("   XX" + i + "회차 ->" + monNam + "이 " + humNam + "을 공격합니다.");
                monPer = Random.RandomRange(1, 101);
                monCheck = monPer % 10 == 0;
                if (monCheck)
                {
                    monCri = Random.Range(1, 26);
                    Debug.Log("    XX크리티컬!!!!!! " + (monDa + (monDa * monCri / 100)));
                    humHp = humHp - (monDa + (monDa * monCri / 100));
                    Debug.Log("    ++" + humNam + "의 남은체력 " + humHp);
                }
                else
                {
                    Debug.Log("    XX일반공격. " + monDa);
                    humHp = humHp - monDa;
                    Debug.Log("    ++" + humNam + "의 남은체력 " + humHp);
                }
                //몬스터 승리 여부
                if (humHp <= 0)
                {
                    Debug.Log("XX 몬스터 승리   ㅜ.ㅠ");
                }
                else
                {
                    //휴먼 회복
                    humPer = Random.RandomRange(1, 101);
                    humCheck = monPer % 3 == 0;
                    if (humCheck)
                    {
                        Debug.Log("    ++" + humNam + "이 회복합니다.");
                        humHp = humHp + humHill;
                        Debug.Log("    ++" + humNam + "의 남은체력 " + humHp);
                    }
                }
                
            }
            Debug.Log("***************************************");
        }