python實(shí)現(xiàn)雙人五子棋(終端版)
五子棋還是有很多大佬發(fā)的,今天我也發(fā)一篇萌新寫的小五子棋,這個(gè)是終端版的,如果有問(wèn)題請(qǐng)大家指出,我去修改
代碼如下:
screen = []
screen_change=0
def into():#初始空白棋盤
for i in range(screen_change):
list_width=[]
for j in range(screen_change):
list_width.append(' '+' |')
screen.append(list_width)
def user_black():
while True:
coordinate = input("黑方請(qǐng)輸入你想填下子的坐標(biāo) 例1,2或者5,5")
coordinate=coordinate.split(',')
width_num = int(coordinate[0]) - 1
high_num = int(coordinate[1]) - 1
if screen[width_num][high_num][1]!=' ':
print('你輸入的地方已經(jīng)有棋子了,請(qǐng)重新輸入')
continue
screen[width_num][high_num] = ' ' + '@' + ' |'
break
screen_print()
def user_white():
while True:
coordinate = input("白方請(qǐng)輸入你想填下子的坐標(biāo) 例1,2或者5,5")
coordinate = coordinate.split(',')
width_num = int(coordinate[0]) - 1
high_num = int(coordinate[1]) - 1
if screen[width_num][high_num][1] != ' ':
print('你輸入的地方已經(jīng)有棋子了,請(qǐng)重新輸入')
continue
screen[width_num][high_num] = ' ' + '#' + ' |'
break
screen_print()
def eeferee():#判斷輸贏
#判斷行
for i in range(screen_change):
for j in range(screen_change-4):
if screen[i][j][1]==screen[i][j+1][1]==screen[i][j+2][1]==screen[i][j+3][1]==screen[i][j+4][1] and screen[i][j][1]!=' ':
return False
for i in range(screen_change - 4):
for j in range(screen_change):
if screen[i][j][1]==screen[i+1][j][1]==screen[i+2][j][1]==screen[i+3][j][1]==screen[i+4][j][1] and screen[i][j][1]!=' ':
return False
for i in range(screen_change - 4):
for j in range(screen_change - 4):
if screen[i][j][1]==screen[i+1][j+1][1]==screen[i+2][j+2][1]==screen[i+3][j+3][1]==screen[i+4][j+4][1] and screen[i][j][1]!=' ':
return False
for k in range(4,screen_change):
if k>=4:
if screen[i][k][1] == screen[i+1][k-1][1] == screen[i+2][k-2][1] == screen[i+3][k-3][1] == screen[i+4][k-4][1] and screen[i][k][1] != ' ':
return False
return True
def screen_print():#打印棋盤
print('——' * (screen_change*3+1))
for i in range(screen_change):
print('|',end=' ')
for j in range(screen_change):
print(screen[i][j],end=' ')
print()
print('——'*(screen_change*3+1))
def main():
global screen_change
screen_change = int(input('請(qǐng)輸入你設(shè)定的棋盤大?。?))
into()
screen_print()
while eeferee():
user_black()
if not eeferee():
break
user_white()
print('游戲結(jié)束')
if __name__=='__main__':
main()
效果圖如下:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)刪除重復(fù)視頻文件的方法詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)刪除重復(fù)視頻文件功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下2022-10-10
python實(shí)現(xiàn)可下載音樂(lè)的音樂(lè)播放器
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)可下載音樂(lè)的音樂(lè)播放器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
Python運(yùn)行報(bào)錯(cuò)UnicodeDecodeError的解決方法
本文給大家分享的是在Python項(xiàng)目中經(jīng)常遇到的關(guān)于編碼問(wèn)題的一個(gè)小bug的解決方法以及分析方法,有相同遭遇的小伙伴可以來(lái)參考下2016-06-06
Python操作SQLite數(shù)據(jù)庫(kù)的方法詳解【導(dǎo)入,創(chuàng)建,游標(biāo),增刪改查等】
這篇文章主要介紹了Python操作SQLite數(shù)據(jù)庫(kù)的方法,簡(jiǎn)單說(shuō)明了sqlite數(shù)據(jù)庫(kù)的相關(guān)概念,并結(jié)合實(shí)例形式較為詳細(xì)的分析了Python針對(duì)sqlite數(shù)據(jù)庫(kù)的導(dǎo)入,創(chuàng)建,游標(biāo),增刪改查等操作技巧,需要的朋友可以參考下2017-07-07
OpenCV連通域數(shù)量統(tǒng)計(jì)學(xué)習(xí)示例
這篇文章主要為大家介紹了OpenCV連通域數(shù)量統(tǒng)計(jì)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
教你用Python實(shí)現(xiàn)短信驗(yàn)證碼的發(fā)送
當(dāng)我們?cè)谧?cè)一個(gè)網(wǎng)頁(yè)時(shí),有的網(wǎng)頁(yè)會(huì)讓必須要短信驗(yàn)證、郵箱驗(yàn)證,才可以進(jìn)行賬號(hào)的注冊(cè),下面這篇文章主要給大家介紹了關(guān)于用Python實(shí)現(xiàn)短信驗(yàn)證碼發(fā)送的相關(guān)資料,需要的朋友可以參考下2022-12-12
Django中反向生成models.py的實(shí)例講解
今天小編就為大家分享一篇Django中反向生成models.py的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Python3遠(yuǎn)程監(jiān)控程序的實(shí)現(xiàn)方法
今天小編就為大家分享一篇Python3遠(yuǎn)程監(jiān)控程序的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07

