2014-11-20 2 views
-1

방금이 응용 프로그램에 대한 내 코드를 일부 변경했지만 어떤 이유로 여전히 작동하지 않습니다. 내 재시작 버튼이 양식을 다시 시작하지 않고 점수 수치가 표시되지 않고 결과 결과가 표시되지 않고 주사위가 굴러 가지 않습니다. https://imageshack.com/i/kpdOTIAQp주사위 버튼으로 주사위를 굴릴 수 없습니까?

기본적으로 인간의 플레이어가 VB의 난수 발생기에 내장을 사용하여 컴퓨터에 재생 : 여기

내 GUI에 대한 링크입니다. 게임의 목적은 상대방이 1에서 최대 99의 일치 형식 (1, 3, 5, 7, 9, 11 등의 최상의 홀수)으로 게임에서 이기기 위해 상대방보다 높은 점수를 갖는 것입니다. 13 등).

문제는 버튼을 클릭 할 때 주사위 이미지가 나타나지 않는다는 것입니다.

Public Class DiceBattleForm 

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 

    End Sub 

    Private Sub ExitButton_Click(sender As Object, e As EventArgs) Handles ExitButton.Click 
     Dim RESPONSE As MsgBoxResult 
     RESPONSE = MsgBox("Do you want to exit?", MsgBoxStyle.YesNo Or MsgBoxStyle.Question) 
     If RESPONSE = MsgBoxResult.Yes Then 
      Me.Dispose() 
     End If 
    End Sub 

    Private Sub RollButton_Click(sender As Object, e As EventArgs) Handles RollButton.Click 
     If GameTextBox.Text <= "0" Then 
      MsgBox("Number of Games > 0", MsgBoxStyle.Critical) 
      Application.Restart() 
     End If 

     If GameTextBox.Text > "0" Then 
      GameTextBox = Convert.ToInt32(GameTextBox.Text) 
     End If 


     DisplayDie(PCDice1) 
     DisplayDie(PCDice2) 
     DisplayDie(PCDice3) 

     DisplayDie(YouDice1) 
     DisplayDie(YouDice2) 
     DisplayDie(YouDice3) 
    End Sub 

    Sub DisplayDie(diePictureBox As PictureBox) 
     'GENERATE random integer in range 1 to 6 
     Dim face As Integer = randomObject.Next(1, 7) 

     'retrieve specific die image from resources 
     Dim pictureResource = My.Resources.ResourceManager.GetObject(String.Format("die{0}", face)) 

     'Convert pictureResource to type Image and display in ImageBox 
     diePictureBox.Image = CType(pictureResource, Image) 
    End Sub ' DisplaDie 


    Private Sub GameTextBox_Validating(sender As Object, e As EventArgs) Handles GameTextBox.TextChanged 
     If GameTextBox.Text > "0" Then 
      Do 
       MsgBox(GameTextBox.Text + " round(s) will be played enjoy!") 
      Loop While GameTextBox.Text = "STOP" 
     End If 
     GameTextBox.Enabled = False 
    End Sub 

    Private Sub RestartButton_Click(sender As Object, e As EventArgs) Handles RestartButton.Click 
     ' Reset or clear any controls (recommended) 
     DiceBattleForm.Clear() 
     ' NOT recommended: 
     ' Application.Restart() 
    End Sub 
End Class 
+0

어쩌면 다시 시작할 때입니다. 언젠가 당신은 코드에서 caugh를 얻고 어떤 출구가 보이지 않습니다. 처음부터 다시 시작하고 응용 프로그램을 빌드/테스트 할 것을 제안합니다. 한 번에 모든 것을 만들지 마십시오. –

+0

좋아요, 우선 먼저 나가기 버튼이 작동한다는 것을 압니다. 그래서 제가 한 부분입니다. 내가 고치고 자하는 문제는 주사위를 굴리는 것이다. 내 코드를 보면 제 문제가 어디에 주사위를 굴려서 the_lotus를 굴리는 것을 막을 수 있습니까? – Anonymous

+1

귀하의 원래 질문은 너무 광범위하게 보류되었습니다. 이 질문은 더 이상 집중하지 않습니다. 보류중인 질문으로부터 배우고보다 명확한 질문을 제시하십시오. 이것은 말하기를, 당신의 어플리케이션은 당신이 성취하려는 것을 복잡하게 생각합니다. – djv

답변

0

아니라, 다시 시작 버튼,

대신 Form1.Clear()는 텍스트 상자를 취소해야하는에

TextBox1.Clear() 
TextBox2.Clear() 
TextBox3.Clear() 
TextBox4.Clear() 

등을 시도하고에있다. 그러나 실제로, 나는 무엇이 잘못되었는지 보지 않는다. Application.Restart()

+0

좋습니다, AlwaysAStudent, APPLICATION.Restart() 만 시도해 봤는데 저에게 맞습니다. 자, 내가 주사위 굴림을 못 보는 이유는 무엇입니까? 계속 저를 도와 주실 수 있다면, 좋을 것입니다. 고마워하고 곧 소식을 듣기를 바랍니다. – Anonymous

+0

제 말은 더 많은 것을 기꺼이 도와 드리 겠지만 참고 자료로 사용할 책이나 책이 있습니까? 나는 다른 대답에 대한 코멘트를 내려다 보았는데, 당신은 꽤 많은 질문을하는 것 같다. – Aaron

+0

헤이 AlwaysStudentent, 만약 당신이 다시이 게시물에 다시 내 게임에 대한 지침입니다 그리고 나는 또한 당신에게 현재 게시물에 대한 링크를 제공 할 것입니다, 당신이 나를 도와 주셔서 감사합니다, 그게 정말 내게 스트레스되었습니다 : http : //stackoverflow.com/questions/27113632/visual-basic-loading-images-into-picturebox-from-imagelist? noredirect = 1 # comment42730143_27113632 – Anonymous

1

나는 약간 다르게 할 것이다. 주사위 이미지를 리소스에서로드하는 대신 imagelist에서로드하여 색인 (Random 결과로 표시)이 이미지를 찾는 데 필요합니다. 리소스와 리소스를 함께 사용하여 정수와 이름을로드하는 것이 문제 일 수 있습니다. 리소스에서 다이 이미지의 이름이 무엇인지 알 수 없기 때문에 알 수 없습니다.

또한, 이러한 유형의 문제를 디버깅하는 방법을 배울 이상적인이다 : 그것은 작동하지 않는 이유를 참조 DisplayDie에 중단 점을 설정 : 예를 들어, 이미지 이름에 맞는 String.Format 결과입니까?

롤 주사위, ImageList에서 디스플레이 이미지 :

Private Sub btnRoll_Click(sender As Object, e As EventArgs) Handles btnRoll.Click 
    ' pbC1 etc are MY picturebox names - use yours 
    DisplayDie(pbC1) 
    DisplayDie(pbC2) 
    DisplayDie(pbC3) 

End Sub 

Private Sub DisplayDie(diePictureBox As PictureBox) 

    Dim face As Integer = randomObject.Next(1, 7) 

    ' adjust pip count to image index by subtracting one 
    diePictureBox.Image = ImageList1.Images(face - 1) 

End Sub 

이미지가 PIP 순서로 ImageList에 나와있는, 그래서 단지 변환 색인에 핍 (1-6)에서 변환하는 것입니다된다 (0- 5).

enter image description here

+0

좋아요. 시도해 볼게요. 나 또는 아닙니다. 내 애플 리케이션의 그 부분에서 일하는 동안, 내가 추적되는 점수를 보지 못하게하는 원인과 어떻게 "당신이 승리했다" "PC가이기는"등의 결과 메시지를 만들 수 있습니까? – Anonymous

+0

다른 질문입니다. 나는 당신의 앱이 메시지를 평가하고 표시하기 위해 각각을위한 pips를 저장하는 곳을 볼 수 없으므로 이유를 말할 수 없다. – Plutonix

+0

좋아요. Plutonix, 지금 저는 현재 이미지리스트에서 이미지를로드하는 방법을 알아 내려고 노력하고 있습니다. 그런 다음 어떻게 작동하는지 곧 알려 드리겠습니다. 또한이 앱과 관련하여 더 궁금한 점이 있으면 대신 새 질문을 만들어야합니까? – Anonymous

관련 문제