1. 24點遊戲規則及演算法
規則:給出4個自然數,找出能夠求出24的四則表示式,要求數字不能重複使用
分析:本演算法是一種暴力求解法:
給出任意兩個數字,可以進行6種四則運算,求出最多6個值。以數字a和b為例,有:
加(a+b)、減(a-b)、被減(b-a)、乘以(a*b)、除以(a/b)和除(b/a)
abcd共計四個數,如果順序固定,則有5種計算順序(★代表上面6種四則運算中的一種):
((a★b)★c)★d、(a★b)★(c★d)、(a★(b★c))★d、a★((b★c)★d)、a★(b★(c★d))
給出的四個數字,n1n2n3n4,有4*3*2=24種全排列的方法
2. 相關函式
///
/// 判斷abcd四個數進行任意四則運算後能不能得出24,每個數字只能用一次
///
/// 數字a
/// 數字b
/// 數字c
/// 數字d
///
///
private static bool try24(int a, int b, int c, int d, ref string expression)
///
/// 判斷指定順序的四個數abcd進行任意四則運算後能不能得出24,每個數字只能用一次
///
/// 數字1
/// 數字2
/// 數字3
/// 數字4
///
///
private static bool tryeach(int a, int b, int c, int d, ref string expression)
//2.運算順序:a和b,c和d,前面部分和後面部程式設計客棧分
//3.運算順序:b和c運算,再與a運算,再與d運算
//4.運算順序:b和c運算,再與d運算,再與a運算
//5.運算順序:c和d運算,再和b運算,再和a運算
}expression = "abandoned";
return false;
}///
/// 求兩數進行某一四則運算後的結果
///
/// 數字1
/// 數字2
/// (0-5分別代表:加、減、被減、乘以、除以、除)
/程式設計客棧// 返回的表示式
/// 數字1表示式
/// 數字2表示式
///
private static int resultof(int x, int y, int method,
ref string expression, string expressionleft = "", string expressionright = "")
int result = 0;
switch (method)
+",expressionleft == "" ? x.tostring() : expressionleft,
expressionright == "" ? y.tostring() : expressionright);
}break;
case 1:
-",expressionleft == "" ? x.tostring() : expressionleft,
expressionright == "" ? y.tostring() : expressionright);
}break;
case 2:
-",expressionleft == "" ? x.tostring() : expressionleft,
expressionright == "" ? y.tostring() : expressionright);
}break;
case 3:
)*()",
expressionleft == "" ? x.tostring() : expressionleft,
expressionright == "" ? y.tostring() : expressionright);
}break;
case 4:
)/()",
expressionleft == "" ? x.tostring() : expressionleft,
expressionright == "" ? y.tostring() : expressionright);
}else
}break;
case 5:
)/()",
expressionleft == "" ? x.tostring() : expressionleft,
expressionright == "" ? y.tostring() : expressionright);
}else
}break;
} //運算不合法,則返回-1,表示式為abandoned,
if (exprarotpmession == "abandoned")
return result;
}3. main函式呼叫
static void main(string args)
4. arotpm程式執行結果:
本文標題: c#實現的24點遊戲例項詳解
本文位址:
C 實現簡單24點遊戲
隨機生成4個代表撲克牌牌面的數字字母,程式自動列出所有可能算出24的表示式,用擅長的語言 c c j a或其他均可 實現程式解決問題。程式風格良好 使用自定義注釋模板 列出表示式無重複。以下為源 include include include include using namespace std ...
Python實現24點遊戲
24點遊戲是經典的紙牌益智遊戲。我的思路是把這4個數分成2部分,前兩個數一起,後兩個數一起,先計算除前兩個數所有可能的結果和後兩個數所有可能的結果。最後將它們的結果互相計算,結果與24比較,如果等於24則成功。建立使用者類,整個遊戲的體系就是建立乙個使用者類來儲存使用者的資訊,如姓名,生命值,分數等...
Javascript實現24點遊戲
你有 4 張寫有 1 到 9 數字的牌。你需要判斷是否能通過 的運算得到 241.除法運算子 表示實數除法,而不是整數除法。例如 4 1 2 3 12 2.每個運算子對兩個數進行運算。特別是我們不能用 作為一元運算子。例如,1,1,1,1 作為輸入時,表示式 1 1 1 1 是不允許的 3.你不能將...