簡體   English   中英

切換或其他東西

[英]Switch or something else

我正在制作一些有關Janitors的游戲應用程序。 它處於早期階段,到目前為止,我為此感到自豪,但是隨着時間的推移,我的代碼變得非常混亂,所以我決定過來請求任何幫助以另一種方式解決/重制/實現此代碼這么多案子。 我正在考慮實現一些設計模式,但我不確定是哪一個。 任何幫助表示贊賞。

bool JanitorApp::key(unsigned char key)
{
if (MainApp::key(key)) return true;

switch(key) {
case 'Q': case 'q':
    current[0] = NULL;
    status[0] = "Stationary";
    return true;
case 'W': case 'w':
    current[0] = &cleans[0];
    status[0] = "Cleaning";
    return true;
case 'E': case 'e':
    current[0] = &eats[0];
    status[0] = "Eating";
    return true;
case 'R': case 'r':
    current[0] = &guards[0];
    status[0] = "Guarding";
    return true;

case 'A': case 'a':
    current[1] = NULL;
    status[1] = "Stationary";
    return true;
case 'S': case 's':
    current[1] = &cleans[1];
    status[1] = "Cleaning";
    return true;
case 'D': case 'd':
    current[1] = &eats[1];
    status[1] = "Eating";
    return true;
case 'F': case 'f':
    current[1] = &guards[1];
    status[1] = "Guarding";
    return true;

      case 'Z': case 'z':
    current[2] = NULL;
    status[2] = "Stationary";
    return true;
case 'X': case 'x':
    current[2] = &cleans[2];
    status[2] = "Cleaning";
    return true;
case 'C': case 'c':
    current[2] = &eats[2];
    status[2] = "Eating";
    return true;
case 'V': case 'v':
    current[2] = &guards[2];
    status[2] = "Guarding";
    return true;
}

return false;}

您可以從查看Command模式開始。 替換條件與多態重構也可能是有意義的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM