2014-10-20 4 views
0

나는 메모리 게임 (일치하는 게임)을 만들고 있는데, 플레이어가 모든 타일을 매치했을 때 플레이어가 얻는 시간을 절약하려고합니다. 내 streamwriter가 작동하고, 난 골동품이야. 같은스톱워치 시간을 텍스트 파일로 저장

private void Save(string time) 
    { 
     StreamWriter write = new StreamWriter(path, true); 
     write.WriteLine(time); 
     write.Close(); 
    } 

private void CheckForWinner() 
     { 
      foreach (Control control in tableLayoutPanel1.Controls) 
      { 
       Label iconLabel = control as Label; 
       { 
        if(iconLabel != null) 
        { 
         if (iconLabel.ForeColor == iconLabel.BackColor) 
         { 
          return; 
         } 
        } 
       } 

      } 
      MessageBox.Show("You finished the game, your time was: " + timeLabel.Text); 
      Save(); 
      //Close(); is outcommented because I want to see if it works. 
     } 
+1

코드에서 '저장'기능을 호출하지 않은 것처럼 보입니다. 오류 메시지가 나타나거나 단순히 파일에 출력되지 않습니까? – Sander

+0

죄송합니다. 코드 니프를 놓쳤습니다. 저장이라고 부르지 만 다음과 같이 말합니다 : 메서드 저장에 과부하가 없습니다. 나는 프로그래밍에 익숙하지 않아 아마 뭔가 빠져있을 것이다. – Fredrik

+0

절대적으로 방대한 양이 아닌 한 전체 코드를 게시하면 잘못 될 수있는 부분을 쉽게 찾아 낼 수 있습니다. – Sander

답변

1

Save을 호출 할 때 time 매개 변수를 지정하지 않는 것처럼 보입니다. 함수 호출에 timeLabel.Text을 추가하십시오.

편집 : StreamWriter을 사용하는 것이 좋습니다. using 명령을 사용할 수 있습니다. StreamWriter은 일회용이므로 using 안에 사용법을 감쌀 수 있으므로 걱정하지 않아도됩니다. 업데이트 된 저장 기능을 참조하십시오.

private void Save(string time) 
    { 
     using(StreamWriter write = new StreamWriter(path, true)){ 
      write.WriteLine(time); 
     } 
    } 

private void CheckForWinner() 
     { 
      foreach (Control control in tableLayoutPanel1.Controls) 
      { 
       Label iconLabel = control as Label; 
       { 
        if(iconLabel != null) 
        { 
         if (iconLabel.ForeColor == iconLabel.BackColor) 
         { 
          return; 
         } 
        } 
       } 

      } 
      MessageBox.Show("You finished the game, your time was: " + timeLabel.Text); 
      Save(timeLabel.Text); 
      //Close(); is outcommented because I want to see if it works. 
     } 
1

저장 보인다해야합니다 : 당신이 전화를해야

private void Save(string time) 
{ 
    File.WriteAllText(path, time); // Or AppendAllText, depends on what you want. 
} 

그리고 CheckForWinner 내부 (저장)하지만 저장되지 여기에 모든 타일이 일치하는 경우 찾을 저장 방법 및이 방법에 대한 내 코드는 (timeLabel.Text).

+0

에 전달해야하는 이유 StreamWriter를 사용하지 않는 이유는 무엇입니까? – Sander

+0

MS는 이러한 메서드 내에서 StreamWriter를 구현 했으므로 쓰기 작업을 더 이상 제어 할 필요가없는 경우 (스트림 작성기를 제공하는 것) 및 위의 녀석이 필요하지 않은 경우 더 짧은 변형을 사용하지 않는 이유는 무엇입니까? –

+0

무언가를 편집하여 내 downvote를 취소 할 수 있습니다. 더 자세한 내용이나 서식을 추가하십시오. – Shaharyar

관련 문제