다음을 통해 공유


7단계: 쌍 표시

플레이어가 서로 일치하지 않는 아이콘 쌍을 클릭하는 경우 게임이 제대로 실행됩니다.그러나 일치하는 쌍을 클릭할 경우에는 어떻게 되는지 고려해야 합니다.타이머를 설정(Start() 메서드 사용)하여 아이콘이 사라지게 하는 대신 firstClicked 및 secondClicked 참조 변수를 사용하여 클릭한 두 레이블의 색을 다시 설정하는 것이 아니라 레이블을 더 이상 추적하지 않도록 게임 자체를 다시 설정해야 합니다.

쌍을 표시하려면

  1. 타이머를 시작하는 문 바로 위의 거의 끝에서 label_Click() 이벤트 처리기 메서드에 다음 if 문을 추가합니다.프로그램에 추가하는 동안 코드를 자세히 검토하고코드가 어떻게 실행되는지 살펴보십시오.

            ' If the player gets this far, the timer isn't 
            ' running and firstClicked isn't Nothing, 
            ' so this must be the second icon the player clicked
            ' Set its color to black
            secondClicked = clickedLabel
            secondClicked.ForeColor = Color.Black
    
            ' If the player clicked two matching icons, keep them 
            ' black and reset firstClicked and secondClicked 
            ' so the player can click another icon
            If firstClicked.Text = secondClicked.Text Then
                firstClicked = Nothing
                secondClicked = Nothing
                Exit Sub
            End If
    
            ' If the player gets this far, the player 
            ' clicked two different icons, so start the 
            ' timer (which will wait three quarters of 
            ' a second, and then hide the icons)
            Timer1.Start()
        End If
    End Sub
    
            // If the player gets this far, the timer isn't
            // running and firstClicked isn't null,
            // so this must be the second icon the player clicked
            // Set its color to black
            secondClicked = clickedLabel;
            secondClicked.ForeColor = Color.Black;
    
            // If the player clicked two matching icons, keep them 
            // black and reset firstClicked and secondClicked 
            // so the player can click another icon
            if (firstClicked.Text == secondClicked.Text)
            {
                firstClicked = null;
                secondClicked = null;
                return;
            }
    
            // If the player gets this far, the player 
            // clicked two different icons, so start the 
            // timer (which will wait three quarters of 
            // a second, and then hide the icons)
            timer1.Start();
        }
    }
    

    방금 추가한 if 문의 첫 번째 줄은 플레이어가 클릭하는 첫 번째 레이블의 아이콘이 두 번째 레이블의 아이콘과 같은지 여부를 검사합니다.두 아이콘이 같은 경우 중괄호 사이의 세 문(C#의 경우) 또는 if 문 내의 세 문(Visual Basic의 경우)이 실행됩니다.처음 두 문은 firstClicked 및 secondClicked 참조 변수를 다시 설정하여 레이블을 추적하지 않도록 합니다.타이머의 Tick 이벤트 처리기에서 이러한 두 문을 인식할 수 있습니다. 세 번째 문은 프로그램에서 메서드의 나머지 문을 실행하지 않고 건너뛰도록 지시하는 return 문입니다.

    Visual C# 프로그래밍의 경우 코드 일부에서는 단일 등호(=)가 사용되고 다른 문에서는 이중 등호(==)가 사용되는 것을 알 수 있습니다.일부 상황에서는 =가 사용되지만 다른 상황에서는 ==가 사용되는 이유를 알아야 합니다.

    다음은 이러한 차이를 보여 주는 좋은 예제입니다.if 문에서 괄호 사이의 코드를 주의 깊게 살펴보십시오.

    firstClicked.Text = secondClicked.Text
    
    firstClicked.Text == secondClicked.Text
    

    그런 다음 if 문 뒤에 나오는 코드 블록에서 첫 번째 문을 검토하십시오.

    firstClicked = Nothing
    
    firstClicked = null;
    

    이러한 두 문 중 첫 번째 문은 두 아이콘이 같은지 여부를 검사합니다.두 값이 비교되므로 Visual C# 프로그램에서 == 같음 연산자를 사용합니다.두 번째 문은 실제로 값을 변경(할당)하고 firstClicked 참조 변수를 null로 설정하여 다시 설정합니다.이 때문에 = 할당 연산자가 대신 사용됩니다.Visual C#에서는 = 기호를 사용하여 값을 설정하고 == 기호를 사용하여 값을 비교합니다.Visual Basic에서는 할당과 비교에 둘 다 = 기호를 사용합니다.

  2. 프로그램을 저장 및 실행하고 폼에서 클릭을 시작합니다.일치하지 않는 쌍을 클릭하면 타이머의 Tick 이벤트가 트리거되고 두 아이콘이 모두 사라집니다.일치하는 쌍을 클릭할 경우에는 새 if 문이 실행되고 return 문은 메서드가 타이머를 시작하는 코드를 건너뛰게 하므로 다음 그림과 같이 아이콘이 계속 표시됩니다.

    아이콘 쌍이 표시된 일치 게임

    이 자습서에서 만드는 게임

계속하거나 검토하려면