校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

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

python編寫五子棋游戲

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

本文實例為大家分享了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():            #監聽各種事件
    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):  # 橫向有沒有出現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):  # 縱向有沒有出現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()     # 初始化游戲環境
    screen = pygame.display.set_mode((620,620),0,0)          # 創建游戲窗口 # 第一個參數是元組:窗口的長和寬
    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()                          #調用之前定義的事件函數
if __name__ == '__main__':
    main()        #調用主函數繪制窗口
    pass

運行后就會出現游戲的窗口,像這樣:

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

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

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

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

巨人網絡通訊聲明:本文標題《python編寫五子棋游戲》,本文關鍵詞  python,編寫,五子棋,游戲,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python編寫五子棋游戲》相關的同類信息!
  • 本頁收集關于python編寫五子棋游戲的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    一区二区三区中文字幕精品精品| 久久成人免费电影| 国产午夜久久久久| 欧美一区二区三区免费观看视频 | 国产精品一区二区在线看| 午夜视频在线观看一区二区 | 在线观看一区二区视频| 91丝袜美腿高跟国产极品老师| 国模冰冰炮一区二区| 国产精品一级二级三级| 国产成人在线电影| 不卡一区中文字幕| 在线观看一区日韩| 欧美大度的电影原声| 久久午夜羞羞影院免费观看| 久久婷婷成人综合色| 中文字幕av一区 二区| 国产精品亲子伦对白| 亚洲男人的天堂在线观看| 一区二区三区鲁丝不卡| 日韩高清不卡一区二区三区| 久久99国产精品久久99 | 91蝌蚪porny| 欧美日韩一区在线观看| 日韩色视频在线观看| 国产欧美日韩综合| 亚洲最新视频在线观看| 久久精品国产秦先生| 成人av网站免费| 欧美丰满一区二区免费视频 | 亚洲午夜精品一区二区三区他趣| 日本不卡一区二区三区| 高清免费成人av| 欧美日韩国产首页| 国产亚洲综合在线| 一级精品视频在线观看宜春院| 日韩av在线免费观看不卡| 国产不卡在线一区| 欧美一区二区三区思思人| 国产精品免费人成网站| 日韩和的一区二区| 白白色 亚洲乱淫| 日韩欧美卡一卡二| 亚洲精品免费播放| 国内成人自拍视频| 777xxx欧美| 一个色在线综合| 99久久免费国产| 精品久久久久久久久久久久久久久 | 欧美丰满嫩嫩电影| 亚洲国产成人私人影院tom| 日韩二区在线观看| 日本乱人伦一区| 欧美激情综合五月色丁香小说| 亚洲成人av免费| 99麻豆久久久国产精品免费| 久久久欧美精品sm网站| 日韩激情av在线| 欧美最新大片在线看| 亚洲色图视频免费播放| 国产精品一区一区| 日韩欧美另类在线| 日本美女一区二区三区视频| 欧美中文字幕不卡| 一区二区三区国产精品| 色婷婷久久久亚洲一区二区三区| 久久青草欧美一区二区三区| 老司机午夜精品| 日韩精品专区在线影院重磅| 亚洲二区在线观看| 欧美日韩一区精品| 亚洲第一福利一区| 欧美日韩一区国产| 日本最新不卡在线| 欧美福利视频导航| 日本视频免费一区| 日韩无一区二区| 日韩成人一级大片| 91麻豆精品国产91久久久更新时间| 亚洲国产一区视频| 欧美嫩在线观看| 免费美女久久99| www国产精品av| 懂色一区二区三区免费观看| 欧美国产在线观看| 97久久超碰国产精品电影| 亚洲欧美在线高清| 欧美午夜宅男影院| 首页综合国产亚洲丝袜| 日韩天堂在线观看| 国产精品综合久久| 中文字幕一区二区三区色视频 | 亚洲激情六月丁香| 欧美日韩午夜精品| 蜜桃一区二区三区四区| 精品卡一卡二卡三卡四在线| 国产传媒一区在线| 亚洲欧美激情视频在线观看一区二区三区 | 欧美性一二三区| 天堂蜜桃一区二区三区| 精品国产一区二区三区不卡| 国产精品69毛片高清亚洲| 国产精品国产三级国产aⅴ原创| 91激情五月电影| 美女视频一区在线观看| 亚洲国产精品成人久久综合一区| av午夜一区麻豆| 日韩精品色哟哟| 国产欧美日韩在线| 欧美色图片你懂的| 国产精品99久久久久久久女警| 国产精品久久久久aaaa樱花 | 麻豆91在线观看| 欧美韩国日本综合| 欧美裸体一区二区三区| 国产在线不卡一卡二卡三卡四卡| 日韩一区中文字幕| 欧美xxx久久| 色丁香久综合在线久综合在线观看| 日韩电影一二三区| 亚洲女同一区二区| 国产亚洲精品福利| 欧美日韩另类国产亚洲欧美一级| 国产剧情一区在线| 午夜精品在线看| 国产精品私房写真福利视频| 欧美日韩国产精选| 波多野结衣一区二区三区| 日韩高清一区在线| 一级特黄大欧美久久久| 日本一区二区不卡视频| 在线成人高清不卡| 色噜噜狠狠一区二区三区果冻| 精品一区二区久久| 日韩有码一区二区三区| 亚洲少妇中出一区| 欧美国产综合色视频| 精品免费国产二区三区| 在线综合视频播放| 欧美综合久久久| 91亚洲精品一区二区乱码| 国产乱码字幕精品高清av| 亚洲福利电影网| 亚洲制服丝袜在线| 一区二区三区毛片| 亚洲精品伦理在线| 一区二区高清视频在线观看| 中文字幕一区二区三区在线播放 | 9191精品国产综合久久久久久| 色婷婷亚洲综合| 91国偷自产一区二区三区成为亚洲经典 | 日韩精品1区2区3区| 亚洲国产日日夜夜| 亚洲一区二区av在线| 一区二区三区欧美亚洲| 亚洲日本va在线观看| 18欧美乱大交hd1984| 国产精品久久国产精麻豆99网站| 久久久久久99精品| 国产偷国产偷精品高清尤物| 久久亚洲私人国产精品va媚药| 欧美成人猛片aaaaaaa| 精品美女一区二区| 精品久久久久99| 国产精品全国免费观看高清| 国产精品美女一区二区| 亚洲欧美电影一区二区| 亚洲综合一区二区三区| 一区二区三区免费| 日韩av一区二| 国产在线一区观看| eeuss鲁片一区二区三区在线看| 99在线精品观看| 欧美日韩免费一区二区三区| 欧美一区二区三区免费大片| 日韩欧美一区在线| 久久精品视频在线看| 亚洲人成精品久久久久久| 亚洲综合男人的天堂| 毛片不卡一区二区| av电影天堂一区二区在线| 欧美日韩激情一区二区| 亚洲精品在线免费观看视频| 亚洲国产成人午夜在线一区| 亚洲女性喷水在线观看一区| 日本一区中文字幕| 国产麻豆日韩欧美久久| 91福利资源站| 久久久天堂av| 视频精品一区二区| 国产福利精品一区| 欧美亚洲另类激情小说| 日韩免费观看高清完整版在线观看| 久久综合久久综合久久综合| 亚洲视频在线观看三级| 欧美aaaaaa午夜精品| 色综合久久99| 国产日韩欧美麻豆| 婷婷成人激情在线网| 国产成人aaaa|