最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2021年12月02日 09:05:23   作者:夢(mèng)幻精靈_cq  
這篇文章通過詳細(xì)的python代碼實(shí)現(xiàn)尼姆游戲,小編覺得挺不錯(cuò)的?,F(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?gravis庫實(shí)現(xiàn)圖形數(shù)據(jù)可視化實(shí)例探索

    python?gravis庫實(shí)現(xiàn)圖形數(shù)據(jù)可視化實(shí)例探索

    這篇文章主要為大家介紹了python?gravis庫實(shí)現(xiàn)圖形數(shù)據(jù)可視化實(shí)例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-02-02
  • 如何運(yùn)用python讀寫CSV文件

    如何運(yùn)用python讀寫CSV文件

    本文通過講解使用基礎(chǔ)Python代碼來讀寫和處理CSV文件,點(diǎn)進(jìn)來的小伙伴一起來學(xué)習(xí)吧
    2021-08-08
  • Pytorch 實(shí)現(xiàn)自定義參數(shù)層的例子

    Pytorch 實(shí)現(xiàn)自定義參數(shù)層的例子

    今天小編就為大家發(fā)信息一篇Pytorch 實(shí)現(xiàn)自定義參數(shù)層的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 用python實(shí)現(xiàn)刷點(diǎn)擊率的示例代碼

    用python實(shí)現(xiàn)刷點(diǎn)擊率的示例代碼

    今天小編就為大家分享一篇用python實(shí)現(xiàn)刷點(diǎn)擊率的示例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Python?PaddleGAN實(shí)現(xiàn)照片人物性別反轉(zhuǎn)

    Python?PaddleGAN實(shí)現(xiàn)照片人物性別反轉(zhuǎn)

    PaddleGAN中的styleganv2editing.py是支持性別編輯的。所以本文將介紹如何通過調(diào)整參數(shù),來試著實(shí)現(xiàn)一下照片的性別翻轉(zhuǎn)。感興趣的小伙伴可以學(xué)習(xí)一下
    2021-12-12
  • python二維列表一維列表的互相轉(zhuǎn)換實(shí)例

    python二維列表一維列表的互相轉(zhuǎn)換實(shí)例

    今天小編就為大家分享一篇python二維列表一維列表的互相轉(zhuǎn)換實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 詳解安裝mitmproxy以及遇到的坑和簡(jiǎn)單用法

    詳解安裝mitmproxy以及遇到的坑和簡(jiǎn)單用法

    mitmproxy 是一款工具,也可以說是 python 的一個(gè)包,在命令行操作的工具。這篇文章主要介紹了詳解安裝mitmproxy以及遇到的坑和簡(jiǎn)單用法,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Python使用kombu連接信息中包含#號(hào)問題排查方式

    Python使用kombu連接信息中包含#號(hào)問題排查方式

    文章描述了在部署Python項(xiàng)目到生產(chǎn)環(huán)境時(shí)遇到的一個(gè)錯(cuò)誤,即端口號(hào)無法正確轉(zhuǎn)換為整數(shù)值,該錯(cuò)誤在測(cè)試環(huán)境和本地調(diào)試中沒有出現(xiàn),但在生產(chǎn)環(huán)境中才出現(xiàn),通過分析錯(cuò)誤信息和代碼,作者發(fā)現(xiàn)問題出在URL解析過程中,特別是在處理包含特殊字符(如#號(hào))的URL時(shí)
    2024-12-12
  • 如何將Python腳本打包成exe應(yīng)用程序介紹

    如何將Python腳本打包成exe應(yīng)用程序介紹

    大家好,本篇文章主要講的是如何將Python腳本打包成exe應(yīng)用程序介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • Python并發(fā)編程實(shí)例教程之線程的玩法

    Python并發(fā)編程實(shí)例教程之線程的玩法

    編程的樂趣之一是想辦法讓程序執(zhí)行的越來越快,代碼越寫越優(yōu)雅,這篇文章主要給大家介紹了關(guān)于Python并發(fā)編程實(shí)例教程之線程的相關(guān)資料,需要的朋友可以參考下
    2021-06-06

最新評(píng)論

海城市| 武乡县| 凤城市| 长宁县| 德兴市| 元朗区| 二连浩特市| 常宁市| 广元市| 元朗区| 泊头市| 民丰县| 剑阁县| 敦化市| 安陆市| 肇州县| 苏尼特左旗| 浦江县| 星子县| 孟连| 方山县| 泾源县| 昌邑市| 永兴县| 新宁县| 盘山县| 额尔古纳市| 内江市| 阳泉市| 莆田市| 焉耆| 辛集市| 湟源县| 平邑县| 富裕县| 临漳县| 牡丹江市| 南木林县| 盘山县| 桐乡市| 文登市|