python五子棋小遊戲

2021-09-12 07:58:13 字數 3510 閱讀 6016

話不多說,直接上**:

全部工程檔案,在github:五子棋

效果預覽:

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

i = x-1

while(i>=0):

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

num1+=1

i -= 1

else:

break

i = x+1

while i<19:

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

num1+=1

i += 1

else:

break

j =y-1

while (j >= 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 <= 12 or (x - 30) % 29 >= 17) and (

(y - 30) % 29 <= 12 or (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()

五子棋的小遊戲

感想 終於寫出人生中第乙個小遊戲來了 include include include include using namespace std const int x 21 棋盤行數 const int y 21 棋盤列數 char p x y 定義棋盤 int m 0 定義臨時點,儲存輸入座標 in...

c 小遊戲 五子棋

include include includeusing namespace std const int x 21 棋盤行數 const int y 21 棋盤列數 char p x y 定義棋盤 int m 0 定義臨時點,儲存輸入座標 int n 0 void display 輸出棋盤 else...

c 小遊戲 五子棋

include include includeusing namespace std const int x 21 棋盤行數 const int y 21 棋盤列數 char p x y 定義棋盤 int m 0 定義臨時點,儲存輸入座標 int n 0 void display 輸出棋盤 else...