激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語(yǔ)言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Python 實(shí)現(xiàn)勞拉游戲的實(shí)例代碼(四連環(huán)、重力四子棋)

Python 實(shí)現(xiàn)勞拉游戲的實(shí)例代碼(四連環(huán)、重力四子棋)

2021-09-13 00:39Miku丨無(wú)形 Python

這篇文章主要介紹了Python 實(shí)現(xiàn)勞拉游戲的實(shí)例代碼(四連環(huán)、重力四子棋),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

游戲規(guī)則:雙方輪流選擇棋盤的列號(hào)放進(jìn)自己的棋子,
若棋盤上有四顆相同型號(hào)的棋子在一行、一列或一條斜線上連接起來(lái),
則使用該型號(hào)棋子的玩家就贏了!

程序?qū)崿F(xiàn)游戲,并將每局的數(shù)據(jù)保存到本地的文件中

首先我們要?jiǎng)?chuàng)建一個(gè)空白的棋盤

?
1
2
3
4
5
6
def into():#初始空白棋盤
  for i in range(6):
    list_width=[]
    for j in range(8):
      list_width.append(' '+'|')
    screen.append(list_width)

然后呢 我們?cè)賹?xiě)一個(gè)輸贏判斷

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def eeferee():#判斷輸贏
  #判斷行
  for i in range(6):
    for j in range(8-3):
      if screen[i][j][0]==screen[i][j+1][0]==screen[i][j+2][0]==screen[i][j+3][0] and screen[i][j][0]!=' ':
        return false
  #判斷列
  for i in range(6-3):
    for j in range(8):
      if screen[i][j][0]==screen[i+1][j][0]==screen[i+2][j][0]==screen[i+3][j][0] and screen[i][j][0]!=' ':
        return false
  #判斷斜線
  for i in range(6-3):
    for j in range(8-3):
      if screen[i][j][0]==screen[i+1][j+1][0]==screen[i+2][j+2][0]==screen[i+3][j+3][0] and screen[i][j][0]!=' ':
        return false
      if j>=3:
        if screen[i][j][0] == screen[i+1][j-1][0] == screen[i+2][j-2][0] == screen[i+3][j-3][0] and screen[i][j][0] != ' ':
          return false
  return true

下完每步棋,我們要顯示一下棋盤,下面寫(xiě)一下棋盤的顯示

?
1
2
3
4
5
6
7
8
9
10
11
12
13
def screen_print():#打印棋盤
  print('',1,2,3,4,5,6,7,8,sep=' ')
  print('', 1, 2, 3, 4, 5, 6, 7, 8, sep=' ', file=file, flush=true)
  for i in range(6):
    print('|',end='')
    print('|', end='', file=file, flush=true)
    for j in range(8):
      print(screen[i][j],end='')
      print(screen[i][j], end='', file=file, flush=true)
    print('')
    print('', file=file, flush=true)
  print('——'*(9))
  print('——' * (9), file=file, flush=true)

下面是勞拉的自動(dòng)下棋

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def lara(): # 勞拉
  global screen
  while true:
    coordinate=random.randint(0,7)
    flag = true
    high = 0
    for i in range(5,-1,-1):
      if screen[i][coordinate][0] == ' ':
        high = i
        break
      if i == 0 and screen[i][coordinate][0] != ' ':
        flag = false
    if flag:
      print('>>>輪到我了,我把o棋子放在第%d列...'%(coordinate+1))
      print('>>>輪到我了,我把o棋子放在第%d列...' % (coordinate + 1), file=file, flush=true)
      screen[high][coordinate] = 'o' + '|'
      break
  screen_print()

下棋中 我們還要判斷棋盤是否被下滿了

?
1
2
3
4
5
6
def full():
  for i in screen:
    for j in i:
      if j[0] == ' ':
        return true
  return false

最后 我們完成一下玩家的下棋

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def user():
  global screen
  while true:
    print(">>>輪到你了,你放x棋子,請(qǐng)選擇列號(hào)(1-8): ",end='')
    print(">>>輪到你了,你放x棋子,請(qǐng)選擇列號(hào)(1-8): ", end='', file=file, flush=true)
    coordinate = int(input())-1
    if coordinate not in range(7):
      print('輸入錯(cuò)誤的列號(hào),請(qǐng)重新輸入')
      print('輸入錯(cuò)誤的列號(hào),請(qǐng)重新輸入', file=file, flush=true)
      continue
    flag=true
    high=0
    for i in range(5,-1,-1):
      if screen[i][coordinate][0] == ' ':
        high=i
        break
      if i==0 and screen[i][coordinate][0] != ' ':
        flag = false
        print('你輸入的地方已經(jīng)有棋子了,請(qǐng)重新輸入')
        print('你輸入的地方已經(jīng)有棋子了,請(qǐng)重新輸入', file=file, flush=true)
    if flag:
      screen[high][coordinate] = 'x' + '|'
      break
  screen_print()

完整代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
import random
 
screen = [] #棋盤列表
 
def into():#初始空白棋盤
  for i in range(6):
    list_width=[]
    for j in range(8):
      list_width.append(' '+'|')
    screen.append(list_width)
 
def screen_print():#打印棋盤
  print('',1,2,3,4,5,6,7,8,sep=' ')
  print('', 1, 2, 3, 4, 5, 6, 7, 8, sep=' ', file=file, flush=true)
  for i in range(6):
    print('|',end='')
    print('|', end='', file=file, flush=true)
    for j in range(8):
      print(screen[i][j],end='')
      print(screen[i][j], end='', file=file, flush=true)
    print('')
    print('', file=file, flush=true)
  print('——'*(9))
  print('——' * (9), file=file, flush=true)
 
def eeferee():#判斷輸贏
  #判斷行
  for i in range(6):
    for j in range(8-3):
      if screen[i][j][0]==screen[i][j+1][0]==screen[i][j+2][0]==screen[i][j+3][0] and screen[i][j][0]!=' ':
        return false
  #判斷列
  for i in range(6-3):
    for j in range(8):
      if screen[i][j][0]==screen[i+1][j][0]==screen[i+2][j][0]==screen[i+3][j][0] and screen[i][j][0]!=' ':
        return false
  #判斷斜線
  for i in range(6-3):
    for j in range(8-3):
      if screen[i][j][0]==screen[i+1][j+1][0]==screen[i+2][j+2][0]==screen[i+3][j+3][0] and screen[i][j][0]!=' ':
        return false
      if j>=3:
        if screen[i][j][0] == screen[i+1][j-1][0] == screen[i+2][j-2][0] == screen[i+3][j-3][0] and screen[i][j][0] != ' ':
          return false
  return true
 
def full():
  for i in screen:
    for j in i:
      if j[0] == ' ':
        return true
  return false
 
def lara(): # 勞拉
  global screen
  while true:
    coordinate=random.randint(0,7)
    flag = true
    high = 0
    for i in range(5,-1,-1):
      if screen[i][coordinate][0] == ' ':
        high = i
        break
      if i == 0 and screen[i][coordinate][0] != ' ':
        flag = false
    if flag:
      print('>>>輪到我了,我把o棋子放在第%d列...'%(coordinate+1))
      print('>>>輪到我了,我把o棋子放在第%d列...' % (coordinate + 1), file=file, flush=true)
      screen[high][coordinate] = 'o' + '|'
      break
  screen_print()
 
def user():
  global screen
  while true:
    print(">>>輪到你了,你放x棋子,請(qǐng)選擇列號(hào)(1-8): ",end='')
    print(">>>輪到你了,你放x棋子,請(qǐng)選擇列號(hào)(1-8): ", end='', file=file, flush=true)
    coordinate = int(input())-1
    if coordinate not in range(7):
      print('輸入錯(cuò)誤的列號(hào),請(qǐng)重新輸入')
      print('輸入錯(cuò)誤的列號(hào),請(qǐng)重新輸入', file=file, flush=true)
      continue
    flag=true
    high=0
    for i in range(5,-1,-1):
      if screen[i][coordinate][0] == ' ':
        high=i
        break
      if i==0 and screen[i][coordinate][0] != ' ':
        flag = false
        print('你輸入的地方已經(jīng)有棋子了,請(qǐng)重新輸入')
        print('你輸入的地方已經(jīng)有棋子了,請(qǐng)重新輸入', file=file, flush=true)
    if flag:
      screen[high][coordinate] = 'x' + '|'
      break
  screen_print()
 
 
if __name__ == '__main__':
  file=open('四連環(huán)log-%d.txt'%random.randint(10000,99999),'w',encoding='utf-8')
  print("""hi,我是勞拉,我們來(lái)玩一局四連環(huán)。我用o型棋子,你用x型棋子。
游戲規(guī)則:雙方輪流選擇棋盤的列號(hào)放進(jìn)自己的棋子,
    若棋盤上有四顆相同型號(hào)的棋子在一行、一列或一條斜線上連接起來(lái),
    則使用該型號(hào)棋子的玩家就贏了!""")
  print("""hi,我是勞拉,我們來(lái)玩一局四連環(huán)。我用o型棋子,你用x型棋子。
  游戲規(guī)則:雙方輪流選擇棋盤的列號(hào)放進(jìn)自己的棋子,
      若棋盤上有四顆相同型號(hào)的棋子在一行、一列或一條斜線上連接起來(lái),
      則使用該型號(hào)棋子的玩家就贏了!""", file=file, flush=true)
  into()
  print('開(kāi)始了!這是棋盤的初始狀態(tài):')
  print('開(kāi)始了!這是棋盤的初始狀態(tài):', file=file, flush=true)
  screen_print()
  flag=true
  while eeferee() and full():
    lara()
    if not eeferee() and full():
      flag=false
      break
    user()
  if full():
    print('******* 難分勝負(fù)!@_@')
    print('******* 難分勝負(fù)!@_@', file=file, flush=true)
  if flag:
    print('******* 好吧,你贏了!^_^')
    print('******* 好吧,你贏了!^_^', file=file, flush=true)
  else:
    print('******* 耶,我贏了!^_^')
    print('******* 耶,我贏了!^_^', file=file, flush=true)

效果圖:

Python 實(shí)現(xiàn)勞拉游戲的實(shí)例代碼(四連環(huán)、重力四子棋)

到此這篇關(guān)于python 實(shí)現(xiàn)勞拉游戲的實(shí)例代碼(四連環(huán)、重力四子棋)的文章就介紹到這了,更多相關(guān)python 實(shí)現(xiàn)勞拉游戲內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/Miku_wx/article/details/111811663

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 夜添久久精品亚洲国产精品 | 日本免费大片免费视频 | 色视频欧美 | 国外成人在线视频网站 | 黄色av.com| 国产1区在线观看 | 久久久久免费电影 | 欧美一级毛片一级毛片 | 天天操天天干天天操 | 香蕉秀 | 欧美日韩经典在线 | 久久久久久免费免费 | 国产视频在线免费观看 | 亚洲日韩中文字幕一区 | 99久久精品免费看国产小宝寻花 | 成人精品aaaa网站 | 久草干| 久久国产精品久久精品国产演员表 | 国产亚洲精品久久久久久久久久 | 欧美性生活久久 | 欧美一级毛片免费观看视频 | 久草视频福利在线观看 | 一级电影在线免费观看 | av在线免费观看中文字幕 | japan护士性xxxⅹhd | av影院在线播放 | 久久国产精品二区 | 一级免费视频 | 欧美成人午夜 | xxxx69hd一hd72| 精品国产一区二区三区久久久 | 麻豆视频观看 | 久久精品视频首页 | 欧美亚成人 | 国产精品啪一品二区三区粉嫩 | 蜜桃视频观看麻豆 | 国产精品视频yy9299一区 | 一色屋任你操 | 成人午夜影院 | 久久视讯| 成年免费在线视频 |