모든라인에 연속된 바둑돌을 체크하는 알고리즘을 짜고 출력하고싶은데
내가 짠 알고리즘이
바둑판을 arr[19][19]로 선언한 이차원배열로만들고
한 라인을 지정하여 검사할때
arr[지정한라인][0] 이 검은색이라면 그 다음돌이 검은색인동안 카운트를 증가시키고, 흰돌경우에도 같은방식으로 했어.
그리고 라인을 한꺼번에 출력했는데
만약 같은라인에 검은돌3개 흰돌3개씩 놓여있다면 2개다 출력하게 해주고싶은데 이게안되네
뭔가 검색 반복문을 한번 더 쓰는거나 저장된값에 따라서 출력문을 여러개만들어두는건 너무 비효율적같은데 어떻게해야할까 아직 사고력이부족하다,,
- dc official App
콘솔창 쓰는거면 커서 좌표 이동하는거 있을텐데
콘솔창쓰는거야 근데 그거랑 연속카운트랑 관련이있어?? - dc App
커서 좌표 이동하면 콘솔게임 만들때 출력 편해져서 .. 근데 카운트 하는 이유가 뭔데?
오목기능구현하려고 - dc App
연속된 바둑돌 체크인데 검정돌 흰돌 반복적으로 나오면 어케 됨?
OOOO@@@@O@O@O@O@@@ <- 이거면 어떻게 출력되어야함?
흰4검4라 치고 둘다출력되게 - dc App
왜? 흰4 검4야? 중간에 백흑백흑 번갈아나오는건 그렇다 쳐도 뒤에 흑3개 연속 있는데?
제일최대로 연속된것만출력되게하고싶어 - dc App
흰색 카운터랑 검은색 카운터 값이 같을 경우와 흰색이 먼저 카운트 된 경우와 검은색이 먼저 카운트 된 경우로 나눠서 출력하면 되는거 아니야?
흰색이 먼저카운트된경우와 검은색이먼저카운트된경우가 어떤의미야? 한 포문안에 조건문2개 써서물어보게해서 모르겠어 - dc App
___++++++++___++++_ 이거를 ____++++______++++_ 이렇게 출력하겠단거지? 검은색이 먼저 카운트 될테니 그걸 확인할 수 있는 변수를 만들어 두고 만약 검은색 최대 카운터랑 흰색 최대 카운터가 같을 경우엔 한줄 출력하기전에 조건문으로 체크 하란 소리야
오목 만드는 거였어? 한줄만 체크한다길레 몰랐네 내가 한소리 다 잊어버려도 됨
니가 원하는것은 한 라인에서 최대로 연속된 돌이 위치가 어디부터 어디인가를 찾고 싶은거지 만일 흑백 똑같다면 둘다 출력하고
ㅇㅇㅇㅇㅇㅇㅇ - dc App
바둑판에 돌이 전부 차있어? 아니면 비어있는것도 있어? _OOO@@@___OOOO@@@@_ 만일 이렇게 된다면 비어있는거 건너뛰고 4개짜리 출력해야하잖아
4방향으로 스트링을 만들면 그냥 strtok 처럼 쓸 수 있는 것. 방법은 여러가진데 그렇게 생각하면 알기 쉬울듯.
어차피 흑돌 백돌이 바뀌니 수직 수평과 양 대각선 의 경계를 포함한 심볼로 재정의하는거지.
지형상 벽, 공백, 내돌, 니돌 이렇게 존재하는 것.
아 그럼 가로경우에는 arr[19][19] 배열안에 값일부넣어놨을때 내가검사하고픈라인이 5면 arr[5]에서 strtok쓰면되는건가? - dc App
오목 만드는구나,,, 오목은 생각보다 만만찮을껄 패턴으로 하는게 가장 쉬울듯
그리고 오목판은 15 x 15야 19면 흑이 너무 유리함
ai알고리즘짜는거랑 백백x백백 검사가 너무어러워 패턴으로한다니? - dc App
예를들어 3를 찾는다 하면 , 오픈3인지 그냥3인지 판별이 필요함 , X_OOO_X <- 여기서 X는 O 돌이 아닌 경우이고 _ 는 공백인데 , 저거는 오픈3이 아니야 왜냐하면 백돌을 하나 두면 오픈4가 되지 않기 때문이야
일단 연속된 돌 출력검사부터 하고싶은데 어렵네 - dc App
내가 봤을때는 그걸 짜봐야 소용은 없는데 꼭 짜고 싶다면 색깔을 지정하도록 만들고 색깔별로 찾도록 해봐 작은기능부터 쌓아가는거야 레고조립처럼 , O_OO , OO_O 이런패턴들도 결국 3이니까 빼먹지 말고 OO_OO 이건 4인데 오픈4가 아니야 가운데 한군데만 막으면 되거든 , 이러한 경우의 수 생각해가면서 고민해보셈, 너무 복잡해서 도저히 안되겠으면 내가 라이브러리를 알려줄게
ㅇㅇ 일단좀더 해볼게 ㄱㅅㄱㅅ - dc App
패턴 까지 필요하겠냐? 가로세로대각선 전부 합해서 그중 가장 긴거 찾으면 되지. 코드로 4~7줄이면 될 듯?