重写代码以获得更好的结构

时间:2017-09-16 12:06:44

标签: pascal

program GameMain;
uses SwinGame, sgTypes; 

function buttonClicked(p1, Next_PARAM_thingie: Single; W, lastOne: Integer): Boolean; 
var blah, blee: Single; _r_, BTMOB: Single; 
begin blah := MouseX(); blee := MouseY(); _r_ := p1 + W; BTMOB := Next_PARAM_thingie + lastOne; result := false; 
    if MouseClicked( LeftButton ) then 
    begin 
        if (blah >= p1) and (blah <= _r_) then 
        begin result := true; 
        end; 
    end; 
end;

procedure Main();
var
  clr: Color;
begin
  OpenGraphicsWindow('Test Program for Button Click Code', 800, 600); 
  ShowSwinGameSplashScreen(); 
  clr := ColorWhite;

  repeat 
    clearScreen(clr); 
    drawframerate(0,0);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
    fillRectangle(ColorGrey, 50, 50, 100, 30); 
    drawtext('Click Me', ColorBlack, 'arial.ttf', 14, 55, 55);

    RefreshScreen(); 
    Processevents();

    if buttonClicked(50, 50, 100, 30) then 
    begin 
      clr := RandomRGBcolor(255);
    end;  
until WindowCloseRequested();
end;

begin 
   main(); 
end.

我一直试图弄清楚什么是什么,但它不会很好。我可以使用一些帮助试图找出每个随机单词的作用,这样我就可以更改名称,以便代码更加理解

1 个答案:

答案 0 :(得分:0)

我要做的第一件事就是去掉那些不需要的东西。在给出的代码示例中,BTMOB完全未使用,因此我将删除它以及设置其值的代码。删除BTMOB后,不再需要lastOne参数,因此它就会消失。

继续削减完全不属于的东西,并使用任何上下文线索来提供使用更有意义的名称的东西。有些事情你可能无法通过分析代码来猜测,甚至可能通过运行时调试,但你应该能够使它更具可读性。下面是一个关于buttonClicked在第一次传递之后的样子的示例(您还必须更改调用它的代码,不再传递已删除的未使用参数)。

function buttonClicked(p1: Single; W: Integer): Boolean; 
    var posX: Single; _r_: Single; 
    begin posX := MouseX(); _r_ := p1 + W; result := false; 
        if MouseClicked( LeftButton ) then 
        begin 
            if (posX >= p1) and (posX <= _r_) then 
                begin result := true; 
        end; 
    end; 
end;