欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實現(xiàn)尼姆游戲

 更新時間:2021年12月02日 09:05:23   作者:夢幻精靈_cq  
這篇文章通過詳細的python代碼實現(xiàn)尼姆游戲,小編覺得挺不錯的?,F(xiàn)在分享給大家,也給大家做個參考,需要的朋友可以收藏下。一起跟隨小編過來看看吧

題目

尼姆游戲,這是一個著名的游戲,有很多變種玩法。兩個玩家輪流從一堆物品中拿走一部分。在每一步中,玩家可以自由選擇拿走多少物品,但是必須拿走一部并且最多只能拿走一半物品,然后輪到下一個玩家。拿走最后一個物品的玩家輸?shù)粲螒颉O仁蛛S機。

代碼運行效果

python代碼

#/sur/bin/nve python
# coding: utf-8
import os #用os.system(r'clear')清屏
import random #用random.randint()隨機取數(shù)



def clear():
    '''#Linux清屏'''
    clear = os.system(r'clear')


def optimal(n):
    '''機器最優(yōu)拿法'''
    if n in (1, 2, 3, 4):
        return 1
    take = int(n/2)
    m = 1
    for i in range(take):
        if m>take:
            break
        m *= 2
    take = n-m+1
    if take>int(n/2):
        take = random.randint(1, int(n/2))
    return take


def common(n):
    '''機器一般拿法'''
    while True:
        if n==1:
            return 1
        return random.randint(1, int(n/2))


def effect(first, take, n):
    '''結果輸出'''
    cl()
    print('\n'*6)
    flag_s = ('簡單', '困難')[flag-1]
    print('%s\n'%('【%s】'%flag_s).rjust(20))
    print('﹊'*21)
    print(' '*4, end='')
    print('%s已取走%s。物品堆物品還剩%s。'%(first, take, n))
    print('﹊'*21)


def show_error():
    '''報錯信息打印'''
    print('\n\n%s'%error)
    print('輸入錯誤!請重試。'.rjust(20))
    print('﹊'*21)
    input('任意鍵繼續(xù)……'.rjust(20))


#Main Codes
cl = clear
s = '''
      尼姆游戲,這是一個著名的游戲,
  有很多變種玩法。
      兩個玩家輪流從一堆物品中拿走
  一部分。在每一步中,玩家可以自由
  選擇拿走多少物品,但是必須拿走一個
  并且最多只能拿走一半物品,然后輪到
  下一個玩家。
      拿走最后一個物品的玩家輸?shù)粲螒颉?
      先手隨機。
'''
#規(guī)則打印
cl()
print('\n\n%s'%'“尼姆”游戲規(guī)則'.rjust(20))
print()
print('﹊'*21)
print(s)
print('﹊'*21)
input('任意鍵繼續(xù)……'.rjust(20))
#難度選擇
while True:
    cl()
    print('\n'*6)
    print('\n%s'%'【難度選擇】'.rjust(20))
    print()
    print('﹊'*21)
    print('1. 簡單  2. 困難'.rjust(24))
    print('﹊'*21)
    try:
        flag = int(input('請選擇:'.rjust(12)))
        if flag not in (1, 2):
            error()
            continue
        break
    except Exception as error:
        show_error()

#開始游戲
p = '小可愛'
cl()
print('\n'*6)
while True:
    try:
        c = input('給對手命名:'.rjust(12))
        break
    except Exception as error:
        error()
        continue
if flag==2:
    n = random.randint(1, 500)
else:
    n = random.randint(1, 100)
cl()
print('\n'*6)
print('﹊'*21)
print('%s\n'%'【本局游戲物品堆】'.rjust(21))
print(('%s:%3d'%('物品總數(shù)', n)).rjust(22))
print('﹊'*21)
input('任意鍵繼續(xù)……'.rjust(20))
#隨機先手選擇
first = random.choice((c, p))
while n>0:
    #機器取
    if flag==2 and first==c:
        take = optimal(n)
        n = n-take
    if flag==1 and first==c:
        take = common(n)
        n = n-take
    if first==c:
        effect(first, take, n)
    if n==0:
        break
    first = p #轉換玩家先手
    #玩家取
    if first==p:
        while True:
            try:
                take = int(input('\n%s'%'您取物:'.rjust(12)))
                if take==1 and (n in (1, 2, 3)):
                    break
                if take>int(n/2) or take<1:
                    error()
                    continue 
                break
            except Exception as error:
                show_error()
        n = n-take
    if first==p:
        effect('您', take, n)
        input('任意鍵繼續(xù)……'.rjust(20))
    if n==0:
        break
    first = c #轉換機器先手
    
#結果輸出
if first==p:
    first = '您'
cl()
print('\n'*6)
print('﹊'*21)
print(('%s輸了!'%first).rjust(20))
print('﹊'*21)

到此這篇關于python實現(xiàn)尼姆游戲的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關文章

  • Python爬蟲框架Scrapy安裝使用步驟

    Python爬蟲框架Scrapy安裝使用步驟

    這篇文章主要介紹了Python爬蟲框架Scrapy的安裝和使用步驟,重點在解決依賴問題上,需要的朋友可以參考下
    2014-04-04
  • Python基于smtplib模塊發(fā)送郵件代碼實例

    Python基于smtplib模塊發(fā)送郵件代碼實例

    這篇文章主要介紹了Python基于smtplib模塊發(fā)送郵件代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Flask框架路由和視圖用法實例分析

    Flask框架路由和視圖用法實例分析

    這篇文章主要介紹了Flask框架路由和視圖用法,結合實例形式分析了Flask路由和視圖相關原理、定義與使用方法,需要的朋友可以參考下
    2019-11-11
  • tensorflow模型繼續(xù)訓練 fineturn實例

    tensorflow模型繼續(xù)訓練 fineturn實例

    今天小編就為大家分享一篇tensorflow模型繼續(xù)訓練 fineturn實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • .dcm格式文件軟件讀取及python處理詳解

    .dcm格式文件軟件讀取及python處理詳解

    今天小編就為大家分享一篇.dcm格式文件軟件讀取及python處理詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 關于Pycharm配置翻譯插件Translation報錯更新TTK失敗不能使用的問題

    關于Pycharm配置翻譯插件Translation報錯更新TTK失敗不能使用的問題

    這篇文章主要介紹了關于Pycharm配置翻譯插件Translation報錯更新TTK失敗不能使用的問題,本文通過圖文并茂的形式給大家分享解決方案,需要的朋友可以參考下
    2022-04-04
  • python中pytest收集用例規(guī)則與運行指定用例詳解

    python中pytest收集用例規(guī)則與運行指定用例詳解

    這篇文章主要介紹了python中pytest收集用例規(guī)則與運行指定用例詳解,天會講解一下pytest是如何收集我們寫好的用例?我們又有哪些方式來運行單個用例或者批量運行用例呢,需要的朋友可以參考下
    2019-06-06
  • Mac下PyCharm快捷鍵分享

    Mac下PyCharm快捷鍵分享

    這篇文章主要介紹了Mac下PyCharm快捷鍵,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Django組件cookie與session的具體使用

    Django組件cookie與session的具體使用

    這篇文章主要介紹了Django組件cookie與session的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • python機器學習實戰(zhàn)之K均值聚類

    python機器學習實戰(zhàn)之K均值聚類

    這篇文章主要為大家詳細介紹了python機器學習實戰(zhàn)之K均值聚類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12

最新評論