c# 입문자 연습중입니다 질문드립니다 고수님들 부탁드립니다.

타이머를 사용해서 카운트 다운을 하고있습니다. 텍스트박에 숫자를 입력하고(ex10)을 입력하면 10초부터 0초까지 카운트다운되고 다시 10부터 시작하는 방식으로 하고있습니다.

그리고 지금은 버튼을 하나 더만들어서 시간만바꾸기란 버튼을 만들어서 똑같은 텍스트 박스에 입력후 바꾸기 버튼을 누르면 (ex 10 에서 7로 바꾸고 바꾸기 버튼 클릭시) 바로 7초부터 카운트 다운을 하는데 저는 10초에서 5초까지 카운트 다운이 되고있을때 텍스트 박스에 7로 고쳐쓰고 바꾸기 버튼을 누르면 10초에 대한 카운트다운이 0까지 다이루어지고 다음꺼 부터 7초로 시작하고 싶은데 도저히 방법이 안떠올라서 도움을 요청합니다 ㅠㅠㅠ

1개의 좋아요

프로그래밍 방법에 대한 것 보다는 우선 어떤 목적의 프로그램을 만드실 것인지를 좀 더 잘 설명해주셔야 원하는 답을 얻으실 수 있을 것 같아요. :sweat_smile:

질문해 주신 내용을 제 나름대로 해석해보면 이런 뜻이 되는 것 같은데, 혹시 제가 오해한 것이면 추가로 말씀 부탁드립니다.

Q: 기본적으로 10초에서 시작하여 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 순으로 카운트가 줄어드는 카운트 다운 프로그램을 만들었습니다. 카운트 다운이 진행 중인 상황에서 버튼을 누르면, 지금 진행 중인 카운트 다운에 영향을 주지 않고, 카운트 다운이 다 끝나면 다시 7, 6, 5, 4, 3, 2, 1, 0 순으로 카운트 다운을 하도록 만들고 싶은데 방법을 모르겠어요.

카운트 다운이 시작되는 값을 하나 이상 보관하셔야 하는 요구 사항이라면, 저는 내부적으로 큐나 리스트 같은 자료 구조를 사용해서 다음번 카운트 다운을 어디서부터 시작해야 할지 저장하고, 타이머가 종료될 때마다 그 값을 꺼내와서 읽는 식으로 구현할 것 같네요. :slightly_smiling_face:

참고로 닷넷에서는 System.Collections.Generic 네임스페이스 안에 기본적인 자료 구조들 (리스트, 큐, 스택, 사전)이 이미 제공되는 것이 있고, 대개 이 네임스페이스 안의 자료 구조로 거의 모든 상황에 대응할 수 있습니다.

1개의 좋아요

좋은팁 감사합니다 . 고수님께서 이해하신게 맞습니다. 그런데 제가 자료구조는 공부해본적이 없어서 답을 주신걸 이해를 전혀 못하겠습니다 ㅠㅠ 목적은 자꾸 카운트 다운을 텍스트박스에 입력받은 정수로 카운트 다운을 하는건데 말씀하신거처럼 예를 들어서 10을 적고 시작을 누르면 10부터 9,8,7,6,5,4,3,2,1,0 되고 다시 10부터 9,8,7,6,5,4,3,2,1,0 을 반복적으로 이루워지고 있는데 제가 텍스트박스에 7을 넣고 시간만바꾸기 버튼을 만들어 클릭하면 10초에서 카운트 다운하던게 0까지 끝나고 다음 이벤트 부터 7초부터 시작되게 하고 싶다는거 입니다 . 좀 도와주세요 ㅠㅠ 부탁드립니다.

1개의 좋아요

죄송하지만 포럼에서는 소스 코드를 대신 구현해드릴 분을 찾는 것이 쉽지 않을 것입니다. 독학으로 공부하는 상황이 아니라면, 팀 동료나 튜터 분과 함께 코칭 세션을 만드는 것이 좋지 않을까 싶습니다.

2개의 좋아요

책사서 공부하고있습니다 ㅠㅠ 네 한번 더 해보겠습니다 감사합니다.

1개의 좋아요

코드가 있으면 그에 맞게 가이드를 해 드릴텐데, 없어서 제가 상상한대로 알려드리자면 타이머가 0으로 끝난 시점 혹은 다시 리셋되는 시점의 이벤트가 있을 거에요.

그때 입력한 값으로 타이머를 다시 셋팅하는 방법이 있습니다.

1개의 좋아요

코딩으로 전개하기 앞서서 흐름도를 작성해 보시길 권합니다. 꼭 흐름도의 틀에 맞출 필요는 없고 나름의 방식으로 도식화를 하시면 됩니다.

문제에 대한 해결은 언어와 상관이 없는 경우가 대부분인데요, 타이머를 이용한 카운트 다운 문제의 경우 상태를 어떻게 처리하느냐에 따름입니다.

예) 최대 카운트다운(초), 현재 카운트다운(초), 카운트다운(유무), 카운트다운 명령(유무)

이정도의 상태만 있어도 원하시는 처리를 할 수 있습니다. 참고 바랄께요.

2개의 좋아요