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

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

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

題目

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

代碼運行效果

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?gravis庫實現(xiàn)圖形數(shù)據(jù)可視化實例探索

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

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

    如何運用python讀寫CSV文件

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

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

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

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

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

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

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

    python二維列表一維列表的互相轉換實例

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

    詳解安裝mitmproxy以及遇到的坑和簡單用法

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

    Python使用kombu連接信息中包含#號問題排查方式

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

    如何將Python腳本打包成exe應用程序介紹

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

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

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

最新評論

阿图什市| 泊头市| 旬邑县| 屏边| 开江县| 绩溪县| 合山市| 塘沽区| 宜阳县| 宁明县| 信阳市| 苍梧县| 井研县| 平安县| 隆回县| 广水市| 沅陵县| 灌阳县| 扎赉特旗| 南昌市| 绩溪县| 芷江| 图木舒克市| 曲麻莱县| 越西县| 资源县| 涞源县| 肥西县| 平安县| 交城县| 佛教| 余姚市| 鞍山市| 枝江市| 辽宁省| 怀安县| 遂溪县| 多伦县| 惠来县| 丰台区| 海南省|