一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python實現尼姆游戲

python實現尼姆游戲

2022-03-11 10:01夢幻精靈_cq Python

這篇文章通過詳細的python代碼實現尼姆游戲,小編覺得挺不錯的。現在分享給大家,也給大家做個參考,需要的朋友可以收藏下。一起跟隨小編過來看看吧

題目

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

 

代碼運行效果

python實現尼姆游戲

python實現尼姆游戲

python實現尼姆游戲

python實現尼姆游戲

python實現尼姆游戲

python實現尼姆游戲

python實現尼姆游戲

 

 

python代碼

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



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


def optimal(n):
  '''機器最優拿法'''
  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('任意鍵繼續……'.rjust(20))


#Main Codes
cl = clear
s = '''
    尼姆游戲,這是一個著名的游戲,
有很多變種玩法。
    兩個玩家輪流從一堆物品中拿走
一部分。在每一步中,玩家可以自由
選擇拿走多少物品,但是必須拿走一個
并且最多只能拿走一半物品,然后輪到
下一個玩家。
    拿走最后一個物品的玩家輸掉游戲。
    先手隨機。
'''
#規則打印
cl()
print('\n\n%s'%'“尼姆”游戲規則'.rjust(20))
print()
print('﹊'*21)
print(s)
print('﹊'*21)
input('任意鍵繼續……'.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'%('物品總數', n)).rjust(22))
print('﹊'*21)
input('任意鍵繼續……'.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('任意鍵繼續……'.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實現尼姆游戲的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/m0_57158496/article/details/121645399

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99久久免费国产特黄 | www.片| 我的漂亮朋友在线观看全集免费 | 91无套极品外围在线播放 | 人人艹在线视频 | 国产一级一级片 | 精品国产影院 | 秋霞宅宅236理论片 秋霞一级黄色片 | 俄罗斯bbbbbbxxxxxx| 亚洲高清国产拍精品动图 | 果冻传媒在线播放1 | 亚洲视频在线观看不卡 | 欧美在线视频免费播放 | 全黄毛片| 欧美人做人爱a全程免费 | 欧亚尺码专线欧洲s码wmy | 日本免费一区二区三区 | 亚洲第一区欧美日韩精品 | 亚洲高清无码在线 视频 | 日本护士厕所xxx | 久热这里只有精品99国产6 | 精品无码乱码AV | 91在线亚洲综合在线 | 男人的天堂视频在线 | 国产成人亚洲精品乱码在线观看 | 久久精品嫩草影院免费看 | www红色一片在线观看版 | 日本视频在线免费播放 | 东京干福利 | 国产乱子伦一区二区三区 | 成人榴莲视频 | 欧美yw193.c㎝在线观看 | 嫩草影院精品视频在线观看 | 99精品视频在线观看 | brazzersvideo欧美最新 | 国产免费又粗又猛又爽视频国产 | 国产精品www视频免费看 | 国产亚洲欧美在线中文bt天堂网 | 亚洲欧洲日产v特级毛片 | 日本一区二区不卡久久入口 | 亚洲欧美日韩精品久久亚洲区 |