好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > python編寫五子棋游戲

python編寫五子棋游戲

熱門標簽:手機網(wǎng)頁嵌入地圖標注位置 天津電話機器人公司 地圖標注線上如何操作 400電話辦理哪種 開封語音外呼系統(tǒng)代理商 應電話機器人打電話違法嗎 河北防封卡電銷卡 電銷機器人的風險 開封自動外呼系統(tǒng)怎么收費

本文實例為大家分享了python編寫五子棋游戲的具體代碼,供大家參考,具體內容如下

游戲代碼及部分注釋

import pygame        #導入pygame游戲模塊
import time           #調用time庫
import sys
from pygame.locals import *

initChessList = []          #保存的是棋盤坐標
initRole = 1                #1:代表白棋; 2:代表黑棋
resultFlag = 0              #結果標志

class StornPoint():
    def __init__(self,x,y,value):
        '''
        :param x: 代表x軸坐標
        :param y: 代表y軸坐標
        :param value: 當前坐標點的棋子:0:沒有棋子 1:白子 2:黑子
        '''
        self.x = x            #初始化成員變量
        self.y = y
        self.value = value

def initChessSquare(x,y):     #初始化棋盤
    for i in range(15):       # 每一行的交叉點坐標
        rowlist = []
        for j in range(15):   # 每一列的交叉點坐標
            pointX = x+ j*40
            pointY = y+ i*40
            sp = StornPoint(pointX,pointY,0)
            rowlist.append(sp)
        initChessList.append(rowlist)

def eventHander():            #監(jiān)聽各種事件
    for event in pygame.event.get():
        global initRole
        if event.type == QUIT:#事件類型為退出時
            pygame.quit()
            sys.exit()
        if event.type == MOUSEBUTTONDOWN: #當點擊鼠標時
            x,y = pygame.mouse.get_pos()  #獲取點擊鼠標的位置坐標
            i=0
            j=0
            for temp in initChessList:
                for point in temp:
                    if x>=point.x-10 and x=point.x+10 and y>=point.y-10 and y=point.y+10:
                        if point.value == 0 and initRole == 1:   #當棋盤位置為空;棋子類型為白棋
                            point.value = 1             #鼠標點擊時,棋子為白棋
                            judgeResult(i,j,1)
                            initRole = 2                #切換角色
                        elif point.value == 0 and initRole ==2:  #當棋盤位置為空;棋子類型為黑棋
                            point.value = 2             #鼠標點擊時,棋子為黑棋
                            judgeResult(i,j,2)
                            initRole = 1                #切換角色
                        break
                    j+=1
                i+=1
                j=0

def judgeResult(i,j,value):   #橫向判斷
    global resultFlag
    flag = False
    for  x in  range(j - 4, j + 5):  # 橫向有沒有出現(xiàn)5連(在邊緣依次逐一遍歷,是否五個棋子的類型一樣)
        if x >= 0 and x + 4  15 :
            if initChessList[i][x].value == value and \

                initChessList[i][x + 1].value == value and \

                initChessList[i][x + 2].value == value and \

                initChessList[i][x + 3].value == value and \

                initChessList[i][x + 4].value == value :
                flag = True
                break
                pass
    for x in range(i - 4, i + 5):  # 縱向有沒有出現(xiàn)5連(在邊緣依次逐一遍歷,是否五個棋子的類型一樣)
        if x >= 0 and x + 4  15:
            if initChessList[x][j].value == value and \

                    initChessList[x + 1][j].value == value and \

                    initChessList[x + 2][j].value == value and \

                    initChessList[x + 3][j].value == value and \

                    initChessList[x + 4][j].value == value:
                flag = True
                break
                pass

    # 先判斷東北方向的對角下輸贏 x 列軸, y是行軸 , i 是行 j 是列(右斜向)(在邊緣依次逐一遍歷,是否五個棋子的類型一樣)
    for x, y in zip(range(j + 4, j - 5, -1), range(i - 4, i + 5)):
        if x >= 0 and x + 4  15 and y + 4 >= 0 and y  15:
            if initChessList[y][x].value == value and \

                    initChessList[y - 1][x + 1].value == value and \

                    initChessList[y - 2][x + 2].value == value and \

                    initChessList[y - 3][x + 3].value == value and \

                    initChessList[y - 4][x + 4].value == value:
                flag = True

    # 2、判斷西北方向的對角下輸贏 x 列軸, y是行軸 , i 是行 j 是列(左斜向)(在邊緣依次逐一遍歷,是否五個棋子的類型一樣)
    for x, y in zip(range(j - 4, j + 5), range(i - 4, i + 5)):
        if x >= 0 and x + 4  15 and y >= 0 and y + 4  15:
            if initChessList[y][x].value == value and \

                    initChessList[y + 1][x + 1].value == value and \

                    initChessList[y + 2][x + 2].value == value and \

                    initChessList[y + 3][x + 3].value == value and \

                    initChessList[y + 4][x + 4].value == value:
                flag = True


    if flag:               #如果條件成立,證明五子連珠
        resultFlag = value #獲取成立的棋子顏色
        print("白棋贏" if value ==1 else "黑棋贏")

# 加載素材
def main():
    global initChessList,resultFlag
    initChessSquare(27,27)
    pygame.init()     # 初始化游戲環(huán)境
    screen = pygame.display.set_mode((620,620),0,0)          # 創(chuàng)建游戲窗口 # 第一個參數(shù)是元組:窗口的長和寬
    pygame.display.set_caption("陳曉超五子棋")                # 添加游戲標題
    background = pygame.image.load("D:/cxc/4.png")          #加載背景圖片
    whiteStorn = pygame.image.load("D:/cxc/2.png") #加載白棋圖片
    blackStorn = pygame.image.load("D:/cxc/1.png") #加載黑棋圖片
    resultStorn = pygame.image.load("D:/cxc/3.png")#加載 贏 時的圖片
    rect = blackStorn.get_rect()

    while True:
        screen.blit(background,(0,0))
        for temp in initChessList:
            for point in temp:
                if point.value == 1:          #當棋子類型為1時,繪制白棋
                    screen.blit(whiteStorn,(point.x-18,point.y-18))
                elif point.value == 2:        #當棋子類型為2時,繪制黑棋
                    screen.blit(blackStorn,(point.x-18,point.y-18))

        if resultFlag >0:
            initChessList = []                 # 清空棋盤
            initChessSquare(27,27)             # 重新初始化棋盤
            screen.blit(resultStorn,(200,200)) #繪制獲勝時的圖片
        pygame.display.update()                #更新視圖

        if resultFlag >0:
            time.sleep(3)
            resultFlag = 0                     #置空之前的獲勝結果
        eventHander()                          #調用之前定義的事件函數(shù)
if __name__ == '__main__':
    main()        #調用主函數(shù)繪制窗口
    pass

運行后就會出現(xiàn)游戲的窗口,像這樣:

我們可以任意的在棋盤上落子,像這樣:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • python游戲實戰(zhàn)項目之智能五子棋
  • Python五子棋小游戲實例分享
  • python實現(xiàn)網(wǎng)絡五子棋
  • python實現(xiàn)雙人五子棋(終端版)
  • Python tkinter制作單機五子棋游戲
  • python實現(xiàn)簡單的五子棋游戲
  • python游戲實戰(zhàn)項目之智能五子棋簡易版

標簽:常州 成都 六盤水 宿遷 蘭州 駐馬店 山東 江蘇

巨人網(wǎng)絡通訊聲明:本文標題《python編寫五子棋游戲》,本文關鍵詞  python,編寫,五子棋,游戲,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python編寫五子棋游戲》相關的同類信息!
  • 本頁收集關于python編寫五子棋游戲的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 秋霞午夜一区二区三区视频画质| 美女张开腿让男人捅| 被前上司绑缚~波多野结衣| 91精品国产综合aV蜜臀| 操女人的软件| 汗汗漫画| 一级二级A片无码高潮免费看欧美 公与两个熄中国高清BD免费看1 | a片| 污视频免费观看网站| 欧美精品一区二区三区使用方法| 97国产熟妇视频二区| 粉嫩的小缝好紧| jalapkino69| 边吻奶边挵进去gif动态图免费| 昭和のバツ熟女冢本精品hd| 久久综合久久精品| 欧美xxbb| 95后水嫩护士14p| 老湿地福利院体验| 三级《情欲春宵》在线观看| 国产尤蜜tv最新地址| 亚洲最大激情网| 色戒hd未删减版在线| chinesevideo人体私拍| 《甜性涩爱》未删减| 永久黄网站漫画免费app| 男女猛烈无遮挡性视频| 亚洲邪恶天堂影院在线观看| 欧美r级大尺度视频观看| 催眠全校的婬乱生活H| 飘雪影院免费版在线观看视频| 羞羞漫画撕开她的乳罩蹂| 娇小娇小与黑人tubevideos| 日本义子伦欲片中文mp4| 星辰影院电影高清在线观看| 幻女bbbwww| 国产精品亚洲小说| 免费的黄漫?18禁动漫app | 韩国三级在线| 掀起裙子挺进嫩嫩的地方电影| 男女爱爱是免费看|