婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > python編寫五子棋游戲

python編寫五子棋游戲

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

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

游戲代碼及部分注釋

import pygame        #導(dǎo)入pygame游戲模塊
import time           #調(diào)用time庫
import sys
from pygame.locals import *

initChessList = []          #保存的是棋盤坐標(biāo)
initRole = 1                #1:代表白棋; 2:代表黑棋
resultFlag = 0              #結(jié)果標(biāo)志

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

def initChessSquare(x,y):     #初始化棋盤
    for i in range(15):       # 每一行的交叉點(diǎn)坐標(biāo)
        rowlist = []
        for j in range(15):   # 每一列的交叉點(diǎn)坐標(biāo)
            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:#事件類型為退出時(shí)
            pygame.quit()
            sys.exit()
        if event.type == MOUSEBUTTONDOWN: #當(dāng)點(diǎn)擊鼠標(biāo)時(shí)
            x,y = pygame.mouse.get_pos()  #獲取點(diǎn)擊鼠標(biāo)的位置坐標(biāo)
            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:   #當(dāng)棋盤位置為空;棋子類型為白棋
                            point.value = 1             #鼠標(biāo)點(diǎn)擊時(shí),棋子為白棋
                            judgeResult(i,j,1)
                            initRole = 2                #切換角色
                        elif point.value == 0 and initRole ==2:  #當(dāng)棋盤位置為空;棋子類型為黑棋
                            point.value = 2             #鼠標(biāo)點(diǎn)擊時(shí),棋子為黑棋
                            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連(在邊緣依次逐一遍歷,是否五個(gè)棋子的類型一樣)
        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連(在邊緣依次逐一遍歷,是否五個(gè)棋子的類型一樣)
        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

    # 先判斷東北方向的對(duì)角下輸贏 x 列軸, y是行軸 , i 是行 j 是列(右斜向)(在邊緣依次逐一遍歷,是否五個(gè)棋子的類型一樣)
    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、判斷西北方向的對(duì)角下輸贏 x 列軸, y是行軸 , i 是行 j 是列(左斜向)(在邊緣依次逐一遍歷,是否五個(gè)棋子的類型一樣)
    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)建游戲窗口 # 第一個(gè)參數(shù)是元組:窗口的長和寬
    pygame.display.set_caption("陳曉超五子棋")                # 添加游戲標(biāo)題
    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")#加載 贏 時(shí)的圖片
    rect = blackStorn.get_rect()

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

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

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

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

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

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

您可能感興趣的文章:
  • python游戲?qū)崙?zhàn)項(xiàng)目之智能五子棋
  • Python五子棋小游戲?qū)嵗窒?/li>
  • python實(shí)現(xiàn)網(wǎng)絡(luò)五子棋
  • python實(shí)現(xiàn)雙人五子棋(終端版)
  • Python tkinter制作單機(jī)五子棋游戲
  • python實(shí)現(xiàn)簡單的五子棋游戲
  • python游戲?qū)崙?zhàn)項(xiàng)目之智能五子棋簡易版

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python編寫五子棋游戲》,本文關(guān)鍵詞  python,編寫,五子棋,游戲,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python編寫五子棋游戲》相關(guān)的同類信息!
  • 本頁收集關(guān)于python編寫五子棋游戲的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美精品乱码久久久久久按摩| 国产精品免费视频一区| 成人精品免费看| 日本乱人伦aⅴ精品| 日韩一级大片在线| 中文字幕一区二区三区不卡在线| 亚洲影院免费观看| 一区二区三区.www| 91麻豆123| 一区二区三区在线影院| 国产伦精一区二区三区| 精品久久久久一区二区国产| 日韩精品福利网| 中文字幕一区二区三区在线观看| 午夜精品福利久久久| 91蝌蚪porny成人天涯| 日韩欧美国产综合在线一区二区三区 | 亚洲精品日韩专区silk| 一本大道av一区二区在线播放| 亚洲国产精品成人综合色在线婷婷| 美国十次了思思久久精品导航| 色综合天天做天天爱| 亚洲成人tv网| 国产精品毛片高清在线完整版| 欧美日韩在线直播| 国产精品一区免费视频| 亚洲福利电影网| 久久久www免费人成精品| 色综合中文字幕| 国产成人免费av在线| 一区二区三区在线观看视频| 日韩片之四级片| 91传媒视频在线播放| 国内精品免费**视频| 久久精品国产久精国产| 亚洲国产aⅴ天堂久久| 国产精品乱人伦一区二区| 欧美日本在线观看| 欧美人体做爰大胆视频| 色又黄又爽网站www久久| 日本韩国欧美三级| 91一区二区在线观看| 美国毛片一区二区三区| 亚洲国产精品成人综合色在线婷婷| 日韩女优电影在线观看| 国产偷v国产偷v亚洲高清 | 福利电影一区二区三区| 99视频一区二区三区| 国产1区2区3区精品美女| 91一区二区在线| 欧美群妇大交群的观看方式| 91毛片在线观看| 本田岬高潮一区二区三区| 91偷拍与自偷拍精品| 在线观看成人小视频| 国内成人精品2018免费看| 国产成人精品在线看| 91麻豆.com| 久久综合九色综合欧美98| 国产欧美一区二区精品久导航| 国产精品欧美综合在线| 日本va欧美va精品| 国产精品一区二区三区网站| 首页国产欧美日韩丝袜| 成人a区在线观看| 欧美tickle裸体挠脚心vk| 欧美一级精品在线| 久久精品日韩一区二区三区| 午夜亚洲福利老司机| 色先锋久久av资源部| 久久久午夜精品| 日日骚欧美日韩| 成人黄页在线观看| 精品国产不卡一区二区三区| 午夜成人免费电影| 欧美精品黑人性xxxx| 亚洲精品国产一区二区精华液| 亚洲成人av一区二区| 国产精品一品视频| 26uuu久久天堂性欧美| 久久99久久久久久久久久久| 91福利在线观看| 亚洲午夜久久久| 美国精品在线观看| 久久综合色鬼综合色| 国产精品亚洲综合一区在线观看| 欧美老年两性高潮| 蜜臀91精品一区二区三区 | 亚洲第一搞黄网站| 91国内精品野花午夜精品| 肉色丝袜一区二区| 精品福利一二区| 91丝袜美腿高跟国产极品老师 | 毛片av中文字幕一区二区| 日本道免费精品一区二区三区| 亚洲电影第三页| 337p亚洲精品色噜噜| 日本不卡一区二区三区高清视频| 久久先锋影音av鲁色资源| 成人爱爱电影网址| 天天综合天天做天天综合| 久久久影院官网| 91精品国产aⅴ一区二区| 国产一区二区三区高清播放| 亚洲电影在线播放| 国产欧美精品国产国产专区| 99亚偷拍自图区亚洲| 国产资源在线一区| 精品一区二区三区欧美| 另类小说综合欧美亚洲| 亚洲v精品v日韩v欧美v专区| 亚洲欧洲国产日韩| 夜夜亚洲天天久久| 亚洲黄色av一区| 亚洲va欧美va人人爽| 亚洲永久免费av| 日本午夜一本久久久综合| 亚洲综合免费观看高清完整版 | 欧美日韩精品二区第二页| 在线视频欧美区| 8v天堂国产在线一区二区| 69堂成人精品免费视频| 久久一区二区视频| 国产欧美一区二区精品忘忧草| 26uuu精品一区二区在线观看| 国产精品三级av在线播放| 亚洲va欧美va国产va天堂影院| 亚洲国产cao| 国产盗摄视频一区二区三区| 不卡的av在线| 欧美一级免费大片| 亚洲欧美另类在线| 国产成a人无v码亚洲福利| 色一情一乱一乱一91av| 久久先锋影音av鲁色资源| 亚洲一区二区三区四区在线免费观看| 久久se精品一区二区| 色综合久久久久久久| 久久综合九色欧美综合狠狠| 亚洲欧美日韩国产成人精品影院| 国产做a爰片久久毛片| 欧美区视频在线观看| 亚洲精品第一国产综合野| 国产资源在线一区| 日韩一级片在线观看| 18成人在线视频| 国产mv日韩mv欧美| 国产日韩欧美精品综合| 国产精品一区二区黑丝| 国产亚洲精品中文字幕| 激情欧美一区二区| 国产欧美日韩视频一区二区| 黄色小说综合网站| 日韩精品一区二区三区四区视频 | 中文字幕中文字幕在线一区 | 日韩欧美一区二区久久婷婷| 亚洲福利电影网| 日韩欧美国产电影| 国产做a爰片久久毛片| 欧美变态tickle挠乳网站| 国产精品一区免费在线观看| 国产精品无人区| 欧美婷婷六月丁香综合色| 亚洲午夜成aⅴ人片| 精品久久久久久无| 97精品超碰一区二区三区| 亚洲国产一区二区在线播放| 欧美这里有精品| 国产真实乱子伦精品视频| 亚洲欧洲在线观看av| 欧美tickling挠脚心丨vk| 在线观看网站黄不卡| 激情综合色丁香一区二区| 亚洲国产aⅴ成人精品无吗| 国产精品欧美一区喷水| 亚洲男同性恋视频| 8x福利精品第一导航| 国产一区二区三区电影在线观看| 成人性生交大片免费看在线播放| 色婷婷国产精品综合在线观看| 国产精品麻豆一区二区| 国产福利一区二区| 一区二区视频免费在线观看| 国产精品自在欧美一区| 91精品啪在线观看国产60岁| 成+人+亚洲+综合天堂| 午夜视频久久久久久| 亚洲午夜视频在线观看| 亚洲人成伊人成综合网小说| 亚洲国产美国国产综合一区二区| 亚洲一区在线看| 欧美v国产在线一区二区三区| 中文字幕制服丝袜成人av| 国产在线精品一区二区三区不卡| 亚洲欧美日韩国产综合在线| 久久久99精品免费观看不卡| 91麻豆精品国产91久久久久| 色屁屁一区二区| zzijzzij亚洲日本少妇熟睡| 国产精品一二三四|