python實(shí)現(xiàn)雙人五子棋(終端版)
五子棋還是有很多大佬發(fā)的,今天我也發(fā)一篇萌新寫的小五子棋,這個(gè)是終端版的,如果有問題請大家指出,我去修改
代碼如下:
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("黑方請輸入你想填下子的坐標(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)有棋子了,請重新輸入') continue screen[width_num][high_num] = ' ' + '@' + ' |' break screen_print() def user_white(): while True: coordinate = input("白方請輸入你想填下子的坐標(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)有棋子了,請重新輸入') 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('請輸入你設(shè)定的棋盤大小:')) into() screen_print() while eeferee(): user_black() if not eeferee(): break user_white() print('游戲結(jié)束') if __name__=='__main__': main()
效果圖如下:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)刪除重復(fù)視頻文件的方法詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)刪除重復(fù)視頻文件功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下2022-10-10python實(shí)現(xiàn)可下載音樂的音樂播放器
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)可下載音樂的音樂播放器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02Python運(yùn)行報(bào)錯(cuò)UnicodeDecodeError的解決方法
本文給大家分享的是在Python項(xiàng)目中經(jīng)常遇到的關(guān)于編碼問題的一個(gè)小bug的解決方法以及分析方法,有相同遭遇的小伙伴可以來參考下2016-06-06Python操作SQLite數(shù)據(jù)庫的方法詳解【導(dǎo)入,創(chuàng)建,游標(biāo),增刪改查等】
這篇文章主要介紹了Python操作SQLite數(shù)據(jù)庫的方法,簡單說明了sqlite數(shù)據(jù)庫的相關(guān)概念,并結(jié)合實(shí)例形式較為詳細(xì)的分析了Python針對sqlite數(shù)據(jù)庫的導(dǎo)入,創(chuàng)建,游標(biāo),增刪改查等操作技巧,需要的朋友可以參考下2017-07-07OpenCV連通域數(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)我們在注冊一個(gè)網(wǎng)頁時(shí),有的網(wǎng)頁會(huì)讓必須要短信驗(yàn)證、郵箱驗(yàn)證,才可以進(jìn)行賬號(hào)的注冊,下面這篇文章主要給大家介紹了關(guān)于用Python實(shí)現(xiàn)短信驗(yàn)證碼發(fā)送的相關(guān)資料,需要的朋友可以參考下2022-12-12Django中反向生成models.py的實(shí)例講解
今天小編就為大家分享一篇Django中反向生成models.py的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05Python3遠(yuǎn)程監(jiān)控程序的實(shí)現(xiàn)方法
今天小編就為大家分享一篇Python3遠(yuǎn)程監(jiān)控程序的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07