2013-03-27 5 views
-4

현재 게임에서 몇 가지를 재생성하기위한 거대한 코드가 있습니다. 코드가 매우 커서 압축 할 수 있다고 생각하지만 어떻게해야할지 모르겠다. 이 코드 개인 서브 리젠()내 코드는 어떻게 단축합니까?

'regen coins 
    z = coin1 



    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 


    z = coin2 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin3 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin4 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin5 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin6 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin7 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin8 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin9 

    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin10 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin11 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin12 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin13 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin14 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin15 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin16 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin17 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin18 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin19 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin20 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin21 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin22 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin23 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin24 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin25 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin26 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin27 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin28 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin29 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin30 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin31 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    z = coin32 


    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 

    'regen medcoins 

    p = medcoin1 


    p.Location = ploc 
    p.Hide() 
    ploc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If ploc.Y > 595 Then 
     ploc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    p.Location = ploc 
    p.Show() 

    p = medcoin2 

    p.Location = ploc 
    p.Hide() 
    ploc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If ploc.Y > 595 Then 
     ploc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    p.Location = ploc 
    p.Show() 

    p = medcoin3 


    p.Location = ploc 
    p.Hide() 
    ploc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If ploc.Y > 595 Then 
     ploc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    p.Location = ploc 
    p.Show() 

    p = medcoin4 


    p.Location = ploc 
    p.Hide() 
    ploc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If ploc.Y > 595 Then 
     ploc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    p.Location = ploc 
    p.Show() 

    p = medcoin5 


    p.Location = ploc 
    p.Hide() 
    ploc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If ploc.Y > 595 Then 
     ploc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    p.Location = ploc 
    p.Show() 

    p = medcoin6 


    p.Location = ploc 
    p.Hide() 
    ploc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If ploc.Y > 595 Then 
     ploc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    p.Location = ploc 
    p.Show() 

    p = medcoin7 


    p.Location = ploc 
    p.Hide() 
    ploc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If ploc.Y > 595 Then 
     ploc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    p.Location = ploc 
    p.Show() 



    'regens hcoins 

    h = hcoin1 


    h.Location = hloc 
    h.Hide() 
    hloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If hloc.Y > 595 Then 
     hloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    h.Location = hloc 
    h.Show() 

    h = hcoin2 



    h.Location = hloc 
    h.Hide() 
    hloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If hloc.Y > 595 Then 
     hloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    h.Location = hloc 
    h.Show() 

    h = hcoin3 


    h.Location = hloc 
    h.Hide() 
    hloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If hloc.Y > 595 Then 
     hloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    h.Location = hloc 
    h.Show() 



End Sub 

당신이 코드의 무리입니다 볼 수 있듯이이다.

+0

당신은 들었습니다 배열의? –

+1

DRY 원칙을 잘 따르고있는 것처럼 보입니다. –

+0

임 새 기능이므로 도움이 필요합니다. 나는 배열을 알고 있지만별로 좋지 않다. 그리고 나는 언제든지 z 변수가 매번 바뀌는 방법을 모른다. – Ashley

답변

0

함수를 만들고 그것으로 동전을 전달합니다

Sub DoStuff(z as coin) 
    z.Location = zloc 
    z.Hide() 
    zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    If zloc.Y > 595 Then 
     zloc = New Point(RandomNumber(playspace.Width), RandomNumber(playspace.Height)) 
    End If 
    z.Location = zloc 
    z.Show() 
End Sub 

을 다음 당신은 또한 배열에 대해 읽고 할 수 있습니다 다른

DoStuff (coin1) 
DoStuff (coin2) 
DoStuff (coin3) 

에서 호출 ...

+0

이것은 작동하지만 나는 동전 (Byval z as coin)에 동전이 정의되지 않았다고 말하는 동전을 강조 표시하여 오류가 발생합니다. – Ashley

+0

동전 클래스를 만들어야합니다. 또는 여기에 제시된 코드를 수정하여 적절하게 사용할 수 있도록하십시오. –

+0

'(z as coin)'을'(z는 <어떤 데이터 형이든>으로)'로 변경하십시오. –

관련 문제