2011-05-16 106 views
0

好吧,这里是故事...如何实现这个逻辑流?

我有3个文本框,让用户选择....

[文本框A] [文本框B] [文本框C]

和确认按钮,用户需要添加三个文本框,之后,用户需要点击确认按钮....但是根据不同的选择顺序,结果不同,例如: A> B> C,我会显示红。 当用户按以下顺序选择时: B> A> C我会显示绿色。 当用户按该顺序选择: C> B> AI将显示颜色蓝色....

基于不同的用户选择的订单上,它会显示不同的颜色.... 但问题是,当我添加越来越多的文本框时,我该如何实现这个逻辑? 首先,我设计了一个数组,当用户选择一个文本字段时,我将textfield id存储到数组中,当用户选择第二个时,我将存储在数组中,直到用户单击确认,我读回数组以显示颜色.... 但我认为它会变得非常大,&凌乱时,越来越多的文本框被添加,任何更好的想法?谢谢。

+0

这是不大不小的问题,但由于一般有N = N *(N-1)* ... * 1个排列n个元素!这意味着,对于n = 4,你将有24个排列,对于n = 5 120 ... – ascanio 2011-05-16 12:22:34

回答

2

这有点破解,但我倾向于将选择存储在一个字符串中,该字符串会被附加到每个时间(当然是从空字符串开始),然后修剪到最右边的x个字符。然后你可以做一个简单的开关/案例语句来确定颜色。例如(C#片段,差不多)

string selectStr = string.Empty; 

void Select(string btn) { 
    selectStr += btn; 
    selectStr = selectStr.Remove(0, btn.Length - 3); 
} 

void Confirm() { 
    switch (selectStr) { 
    case "ABC" : /* make red */ break; 
    case "BAC" : /* make green */ break; 
    // etc. 
    } 
}