From 4ff6c6d204e635453738cfaad0533101ed967f10 Mon Sep 17 00:00:00 2001 From: Arity-T Date: Thu, 14 Nov 2024 15:29:14 +0300 Subject: [PATCH] =?UTF-8?q?=D0=90=D0=BB=D1=8C=D1=82=D0=B5=D1=80=D0=BD?= =?UTF-8?q?=D0=B0=D1=82=D0=B8=D0=B2=D0=BD=D1=8B=D0=B9=20=D0=9D=D1=8D=D1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab2/prisoner/game.hs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lab2/prisoner/game.hs b/lab2/prisoner/game.hs index ddeb426..fe241d5 100644 --- a/lab2/prisoner/game.hs +++ b/lab2/prisoner/game.hs @@ -21,13 +21,12 @@ nashEquilibriumStrategy opponentMoves generatedMoves n = nashEquilibriumStrategy (tail opponentMoves) (generatedMoves ++ [nextStep]) (n + 1) else generatedMoves where - cases = [['П', 'С'], ['П', 'П']] - results = [[0, 10], [5, 5]] - result = - [ min (results !! 0 !! 1) (results !! 1 !! 1), - max (results !! 0 !! 0) (results !! 1 !! 0) - ] - nextStep = cases !! indexOf results result !! 1 + cases = [['С', 'С'], ['С', 'П'], ['П', 'С'], ['П', 'П']] + results = [[1, 1], [10, 0], [0, 10], [5, 5]] + p_years = min (results !! 1 !! 1) (results !! 3 !! 1) + s_years = min (results !! 0 !! 1) (results !! 2 !! 1) + nextStep | p_years <= s_years = 'П' + | otherwise = 'С' getScore :: [Char] -> [Char] -> Int -> Int -> (Int, Int) getScore moves1 moves2 score1 score2 = @@ -47,7 +46,8 @@ game playerMoves gameStrategy playerMoves = ['С', 'П', 'С', 'С', 'П', 'П', 'С', 'С', 'П', 'П'] -gameStrategy = forgivingStrategy -- forgivingStrategy, nashEquilibriumStrategy +-- gameStrategy = forgivingStrategy +gameStrategy = nashEquilibriumStrategy computerMoves = game playerMoves gameStrategy (score1, score2) = getScore playerMoves computerMoves 0 0