亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

題目

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

代碼運(yùn)行效果

python代碼

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



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


def optimal(n):
    '''機(jī)器最優(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):
    '''機(jī)器一般拿法'''
    while True:
        if n==1:
            return 1
        return random.randint(1, int(n/2))


def effect(first, take, n):
    '''結(jié)果輸出'''
    cl()
    print('\n'*6)
    flag_s = ('簡(jiǎn)單', '困難')[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():
    '''報(bào)錯(cuò)信息打印'''
    print('\n\n%s'%error)
    print('輸入錯(cuò)誤!請(qǐng)重試。'.rjust(20))
    print('﹊'*21)
    input('任意鍵繼續(xù)……'.rjust(20))


#Main Codes
cl = clear
s = '''
      尼姆游戲,這是一個(gè)著名的游戲,
  有很多變種玩法。
      兩個(gè)玩家輪流從一堆物品中拿走
  一部分。在每一步中,玩家可以自由
  選擇拿走多少物品,但是必須拿走一個(gè)
  并且最多只能拿走一半物品,然后輪到
  下一個(gè)玩家。
      拿走最后一個(gè)物品的玩家輸?shù)粲螒颉?
      先手隨機(jī)。
'''
#規(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. 簡(jiǎn)單  2. 困難'.rjust(24))
    print('﹊'*21)
    try:
        flag = int(input('請(qǐng)選擇:'.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('給對(duì)手命名:'.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))
#隨機(jī)先手選擇
first = random.choice((c, p))
while n>0:
    #機(jī)器取
    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 #轉(zhuǎn)換玩家先手
    #玩家取
    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 #轉(zhuǎn)換機(jī)器先手
    
#結(jié)果輸出
if first==p:
    first = '您'
cl()
print('\n'*6)
print('﹊'*21)
print(('%s輸了!'%first).rjust(20))
print('﹊'*21)

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

相關(guān)文章

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

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

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

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

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

    Flask框架路由和視圖用法實(shí)例分析

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

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

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

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

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

    關(guān)于Pycharm配置翻譯插件Translation報(bào)錯(cuò)更新TTK失敗不能使用的問題

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

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

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

    Mac下PyCharm快捷鍵分享

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

    Django組件cookie與session的具體使用

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

    python機(jī)器學(xué)習(xí)實(shí)戰(zhàn)之K均值聚類

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

最新評(píng)論