C 實現的24點遊戲例項詳解

2022-10-06 15:45:16 字數 2641 閱讀 2012

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.你不能將...