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

python實現(xiàn)簡單井字棋游戲

 更新時間:2020年03月04日 11:24:24   作者:無落  
這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)簡單井字棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

井字棋,英文名叫Tic-Tac-Toe,是一種在3*3格子上進行的連珠游戲,和五子棋類似,由于棋盤一般不畫邊框,格線排成井字故得名。游戲需要的工具僅為紙和筆,然后由分別代表O和X的兩個游戲者輪流在格子里留下標(biāo)記(一般來說先手者為X),任意三個標(biāo)記形成一條直線,則為獲勝。

游戲的難點在于,如何判斷連接成了一條線;橫、豎、斜三個方向;

游戲的代碼:

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
u'''
Created on 2019年4月13日

@author: wuluo
'''
__author__ = 'wuluo'
__version__ = '1.0.0'
__company__ = u'重慶交大'
__updated__ = '2019-04-13'


# 創(chuàng)建井字棋的程序
def initBoard():
 global board # 調(diào)用全局的board
 board = [None] * 3
 print("井字棋:")
 for i in range(len(board)):
  board[i] = ["+ "] * 3


# 打印井字棋的程序
def printBoard():
 global board
 for i in range(len(board)):
  for j in range(len(board[i])):
   print(board[i][j], end=" ")
  print("")


# 開始下棋的程序
def startGame():
 global board
 player = 0
 while isGameContinue():
  if player <= 8:
   if player % 2 == 0:
   # 甲方下棋
   print("==>黑方下棋")
   if not playChess("x"):
    continue
   else:
   # 乙方下棋
   print("==>白方下棋")
   if not playChess("○"):
    continue
   player += 1
  else:
   print("平局")
   break

def playChess(chess):
 # 獲取位置
 x = int(input("==> X=")) - 1
 y = int(input("==> Y=")) - 1
 if board[x][y] == "+ ":
  board[x][y] = chess
  printBoard()
  return True # 落子成功
 else:
  print("==> 已有棋子 請重新落子\a")
  printBoard()
  return False # 落子失敗


def isGameContinue():
 for i in range(len(board)):
  for j in range(len(board[i])):
   if board[i][j] != "+ ":
   # 橫向
   if j == 0:
    if board[i][j] == board[i][j + 1] == board[i][j + 2]:
     whoWin(i, j)
     return False
   # 豎向
   if i == 0:
    if board[i][j] == board[i + 1][j] == board[i + 2][j]:
     whoWin(i, j)
     return False
   # 正斜
   if i == 0 and j == 0:
    if board[i][j] == board[i + 1][j + 1] == board[i + 2][j + 2]:
     whoWin(i, j)
     return False
   # 反斜
   if i == 2 and j == 0:
    if board[i][j] == board[i - 1][j + 1] == board[i - 2][j + 2]:
     whoWin(i, j)
     return False
 return True


def whoWin(i, j):
 if board[i][j] == "x":
  print("黑方勝!")
 else:
  print("白方勝!")
 for i in range(3):
  print("win")


class main():
 board = []
 initBoard()
 printBoard()
 startGame()


if __name__ == "__main__":
 main()

游戲結(jié)果:

還有一種結(jié)果是平局:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python 輸出上個月的月末日期實例

    python 輸出上個月的月末日期實例

    下面小編就為大家分享一篇python 輸出上個月的月末日期實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python列表與列表算法詳解(2)

    python列表與列表算法詳解(2)

    這篇文章主要介紹了Python的列表和列表算法,小編感覺這篇文章具有一定參考價值,需要的朋友可以了解下,希望能給你帶來幫助
    2021-08-08
  • Python3中urlopen()的用法解讀

    Python3中urlopen()的用法解讀

    這篇文章主要介紹了Python3中urlopen()的用法解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Python處理json字符串轉(zhuǎn)化為字典的簡單實現(xiàn)

    Python處理json字符串轉(zhuǎn)化為字典的簡單實現(xiàn)

    下面小編就為大家?guī)硪黄狿ython處理json字符串轉(zhuǎn)化為字典的簡單實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • Selenium結(jié)合BeautifulSoup4編寫簡單的python爬蟲

    Selenium結(jié)合BeautifulSoup4編寫簡單的python爬蟲

    這篇文章主要介紹了Selenium結(jié)合BeautifulSoup4編寫簡單的python爬蟲,幫助大家更好的理解和學(xué)習(xí)python 爬蟲的相關(guān)知識,感興趣的朋友可以了解下
    2020-11-11
  • Python進制轉(zhuǎn)換用法詳解

    Python進制轉(zhuǎn)換用法詳解

    大家好,本篇文章主要講的是Python進制轉(zhuǎn)換用法詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Python基于回溯法子集樹模板解決m著色問題示例

    Python基于回溯法子集樹模板解決m著色問題示例

    這篇文章主要介紹了Python基于回溯法子集樹模板解決m著色問題,簡單描述了m著色問題并結(jié)合實例形式分析了Python使用回溯法子集樹模板解決m著色問題的具體步驟與相關(guān)操作注意事項,需要的朋友可以參考下
    2017-09-09
  • Pytorch矩陣乘法(torch.mul() 、 torch.mm() 和torch.matmul()的區(qū)別)

    Pytorch矩陣乘法(torch.mul() 、 torch.mm() 和torch.m

    在深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的世界里,矩陣乘法是一項至關(guān)重要的操作,本文主要介紹了Pytorch矩陣乘法,包含了torch.mul() 、 torch.mm() 和torch.matmul()的區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • 如何使用Python Dotenv庫管理環(huán)境變量

    如何使用Python Dotenv庫管理環(huán)境變量

    使用python-dotenv庫可以方便地管理環(huán)境變量,避免將敏感信息硬編碼在代碼中,這篇文章主要介紹了如何使用Python Dotenv庫管理環(huán)境變量,需要的朋友可以參考下
    2025-02-02
  • 在Python中處理列表之reverse()方法的使用教程

    在Python中處理列表之reverse()方法的使用教程

    這篇文章主要介紹了在Python中處理列表之reverse()方法的使用教程,是Python入門中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05

最新評論

阜城县| 巧家县| 邮箱| 德清县| 苏尼特左旗| 东莞市| 米脂县| 成安县| 天柱县| 都匀市| 天全县| 苍梧县| 贵溪市| 肥东县| 灵寿县| 凌海市| 肃宁县| 磐石市| 大新县| 东丽区| 咸宁市| 东辽县| 科尔| 鄂尔多斯市| 孙吴县| 绵阳市| 桂东县| 吉林市| 皮山县| 黄石市| 宜宾县| 读书| 独山县| 乌海市| 修文县| 日照市| 涞源县| 若尔盖县| 苏尼特右旗| 湘西| 新兴县|