【问题标题】:How do I shorten my code? [closed]如何缩短我的代码? [关闭]
【发布时间】:2013-03-27 00:20:01
【问题描述】:

我目前有一个巨大的代码来重新生成游戏中的某些东西。代码很大,我认为可以压缩,但我不知道该怎么做。这是代码 私有子 regen()

    '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

如你所见,它是一堆代码。

【问题讨论】:

  • 你听说过数组吗?
  • 看起来你很好地遵循了 DRY 原则
  • 我是新手,所以我需要帮助。我有点了解数组,但不是很好,我不知道如何让 z 变量每次都改变
  • 我认为 Codereview 更适合这个。 codereview.stackexchange.com
  • 我认为你真的需要先学会使用谷歌来学习编码,然后再在这里发帖。

标签: .net vb.net visual-studio-2010 organization


【解决方案1】:

创建一个函数并将硬币传递给它:

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)

您可能还想了解数组...

【讨论】:

  • 这似乎可以工作,但我在 (Byval z as coin) 突出显示表示类型 coin 未定义的单词 coin 时出现 1 个错误
  • 您需要创建一个硬币类。或根据需要修改此处建议的代码,使其适合您。
  • (z as coin) 更改为(z as <whatever data type z is>)
  • 我修好了!我将函数 z 作为对象,现在我的代码只有 50 行,谢谢!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-26
  • 1970-01-01
  • 1970-01-01
  • 2020-02-05
  • 2016-02-18
  • 2020-03-08
  • 2013-11-05
相关资源
最近更新 更多