오늘의 학습 키워드

문자열

 

공부한 내용

문자열 형식 지정

string.format(string format, string args[]);

문자열 대소 비교

string str1 = "Apple";
string str2 = "Banana";
// compare < 0 일 땐 str1 < str2, compare == 0 일 땐 str1 == str2, compare > 0 일 땐 str1 > str2
// A가 B보다 작으므로 음수 나옴
int compare = string.Compare(str1, str2);

문자열 갱신

boardUI가 갱신이 되지 않는 버그 수정

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace sparta
{
    class 틱택토_게임
    {
        static void Main(string[] args)
        {
            int[] board = new int[9];
            int player = 1;
            int enemy = 2;
            Random random = new Random();

            string boardUI = $"-------\n-{board[0]}-{board[1]}-{board[2]}-\n-{board[3]}-{board[4]}-{board[5]}-\n-{board[6]}-{board[7]}-{board[8]}-\n-------";

            Console.WriteLine(boardUI);
            int user = 0;
            bool result = false;

            while (true)
            {
                int tempNum = -1;
                tempNum = ChooseNum(board);
                // 1 : 012 036 048
                // 2 : 012 147
                // 3 : 012 258 246
                // 4 : 345 036
                // 5 : 345 147 048 246
                // 6 : 345 258
                // 7 : 678 036 246
                // 8 : 678 147
                // 9 : 678 258 048

                // 012 345 678 036 147 258 048 246
                board[tempNum] = player;
                boardUI = $"-------\n-{board[0]}-{board[1]}-{board[2]}-\n-{board[3]}-{board[4]}-{board[5]}-\n-{board[6]}-{board[7]}-{board[8]}-\n-------";
                Console.WriteLine(boardUI);
                result = CheckBingo(board, tempNum);

                if (result)
                {
                    user = player;
                    break;
                }

                tempNum = SelectRandomNum(random, board);
                board[tempNum] = enemy;
                boardUI = $"-------\n-{board[0]}-{board[1]}-{board[2]}-\n-{board[3]}-{board[4]}-{board[5]}-\n-{board[6]}-{board[7]}-{board[8]}-\n-------";
                Console.WriteLine(boardUI);
                result = CheckBingo(board, tempNum);

                if (result)
                {
                    user = enemy;
                    break;
                }
            }

            WriteResult(user);
        }
    }
}

바보 같이 string을 갱신해주지 않아서 생긴 문제였다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace sparta
{
    class 틱택토_게임
    {
        static void Main(string[] args)
        {
            int[] board = new int[9];
            int player = 1;
            int enemy = 2;
            Random random = new Random();

            string boardUI = $"-------\n-{board[0]}-{board[1]}-{board[2]}-\n-{board[3]}-{board[4]}-{board[5]}-\n-{board[6]}-{board[7]}-{board[8]}-\n-------";

            Console.WriteLine(boardUI);
            int user = 0;
            bool result = false;

            while (true)
            {
                int tempNum = -1;
                tempNum = ChooseNum(board);
                // 1 : 012 036 048
                // 2 : 012 147
                // 3 : 012 258 246
                // 4 : 345 036
                // 5 : 345 147 048 246
                // 6 : 345 258
                // 7 : 678 036 246
                // 8 : 678 147
                // 9 : 678 258 048

                // 012 345 678 036 147 258 048 246
                board[tempNum] = player;
                boardUI = $"-------\n-{board[0]}-{board[1]}-{board[2]}-\n-{board[3]}-{board[4]}-{board[5]}-\n-{board[6]}-{board[7]}-{board[8]}-\n-------";
                Console.WriteLine(boardUI);
                result = CheckBingo(board, tempNum);

                if (result)
                {
                    user = player;
                    break;
                }

                tempNum = SelectRandomNum(random, board);
                board[tempNum] = enemy;
                boardUI = $"-------\n-{board[0]}-{board[1]}-{board[2]}-\n-{board[3]}-{board[4]}-{board[5]}-\n-{board[6]}-{board[7]}-{board[8]}-\n-------";
                Console.WriteLine(boardUI);
                result = CheckBingo(board, tempNum);

                if (result)
                {
                    user = enemy;
                    break;
                }
            }

            WriteResult(user);
        }
    }
}

 

오늘의 회고

 오늘은 12시간 중 10~11시간 정도는 몰입한 것 같다. 구현이 오래 걸리는 문제나 내가 모르는 부분이 있어 정보를 찾는데 시간이 오래 걸렸는데 그 과정이 순탄치는 않았지만 새로 알게된 내용이 많아 재밌었던 것 같다.

 내일은 과제로 있는 스네이크 게임과 블랙잭 구현을 마무리 할 것이다.

+ Recent posts