日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

编写五子棋的完整python代码_python实现五子棋游戏

發布時間:2024/7/23 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编写五子棋的完整python代码_python实现五子棋游戏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

話不多說,直接上代碼:

全部工程文件,在GitHub:五子棋

效果預覽:

#!/usr/bin/env python3

#-*- coding:utf-8 -*-

import pygame

from pygame.locals import *

from sys import exit

import numpy

background_image = 'qipan.png'

white_image = 'white.png'

black_image = 'black.png'

def WhoWin(x,y,darray):

num1,num2,num3,num4 = 0,0,0,0

#判斷上下左右左上右上左下右下8個方向

i = x-1

while(i>=0):

if darray[i][y] == 1:

num1+=1

i -= 1

else:

break

i = x+1

while i= 0):

if darray[x][j] == 1:

num2 += 1

j -= 1

else:

break

j = y + 1

while j < 19:

if darray[x][j] == 1:

num2 += 1

j += 1

else:

break

i,j = x-1,y-1

while(i>=0 and j>=0):

if darray[i][j] == 1:

num3 += 1

i -= 1

j -= 1

else :

break

i, j = x + 1, y + 1

while (i < 19 and j < 19):

if darray[i][j] == 1:

num3 += 1

i += 1

j += 1

else:

break

i, j = x + 1, y - 1

while (i >= 0 and j >= 0):

if darray[i][j] == 1:

num4 += 1

i += 1

j -= 1

else:

break

i, j = x - 1, y + 1

while (i < 19 and j < 19):

if darray[i][j] == 1:

num4 += 1

i -= 1

j += 1

else:

break

#五子勝

if num1>=4 or num2>=4 or num3 >= 4 or num4 >= 4:

return True

else:

return False

#初始化

pygame.init()

#屏幕、背景圖、白黑子轉換

screen = pygame.display.set_mode((584, 584), RESIZABLE, 32)

background = pygame.image.load(background_image).convert()

white = pygame.image.load(white_image).convert_alpha()

black = pygame.image.load(black_image).convert_alpha()

#標題畫圖字體

screen.blit(background, (0,0))

font = pygame.font.SysFont("arial", 40);

pygame.display.set_caption('五子棋')

#zeros()返回19行19列的數組

white_luodian = numpy.zeros((19,19))

black_luodian = numpy.zeros((19,19))

#設置棋盤的所有點的坐標

qipan_list = [(30+i*29-12,30+j*29-12) for i in range(19) for j in range(19)]

#默認黑子先手,轉換下棋

transW_B = True

#游戲主循環

while True:

for event in pygame.event.get():

if event.type == QUIT:

exit()

if event.type == MOUSEBUTTONDOWN:

x,y = pygame.mouse.get_pos()

if 30 <= x <= 554 and 30 <= y <= 554 and ((x - 30) % 29 = 17) and (

(y - 30) % 29 = 17):

#四舍五入

m = int(round((x-30)/29))

n = int(round((y-30)/29))

#結果分析

if transW_B:

transW_B = not transW_B

screen.blit(black, qipan_list[19*m+n])

black_luodian[n][m] = 1

if WhoWin(n,m,black_luodian):

screen.blit(font.render('Black chess player wins!', True, (0, 0, 0),(0,229,238)), (120, 280))

else:

transW_B = not transW_B

screen.blit(white, qipan_list[19 * m + n])

white_luodian[n][m] = 1

if WhoWin(n,m,white_luodian):

screen.blit(font.render('White chess player wins!', True, (255, 255, 255),(0,229,238)), (120, 280))

qipan_list[19*m+n] = ''

pygame.display.update()

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

總結

以上是生活随笔為你收集整理的编写五子棋的完整python代码_python实现五子棋游戏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。