程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> python語句-Python求大神教,急大作業編的掃雷游戲

python語句-Python求大神教,急大作業編的掃雷游戲

編輯:編程解疑
Python求大神教,急大作業編的掃雷游戲

self.ROW = 8
self.LINE = 8
self.SCORE = 0 #掃雷得分
self.MineNum = 15 #地雷總數
self.xy_list= [[0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0]]

def iniData(self):
    '''x,y坐標初始狀態值函數
       0-沒有地雷;1-有地雷
    '''

    #游戲開始前所有數值歸零
    for l in range(self.LINE):
        for r in range(self.ROW):
            self.xy_list[l][r]= 0

    Max = self.MineNum
    for x in range(self.LINE):
        for y in range(self.ROW):
            if 0 > Max:
                self.xy_list[x][y]= 0
            else:
                #為了增加地雷分布范圍,選擇0到4隨機數
                if 1 == random.randint(0,4): 
                    self.xy_list[x][y]= 1
                    Max = Max - 1

求解釋一下

最佳回答:


這個有注釋很好理解啊!

 for x in range(self.LINE):
        for y in range(self.ROW):
            if 0 > Max:
                self.xy_list[x][y]= 0
            else:
                #為了增加地雷分布范圍,選擇0到4隨機數
                if 1 == random.randint(0,4): 
                    self.xy_list[x][y]= 1
                    Max = Max - 1

這段代碼  range(5)   # 0,1,2,3,4; 你這裡是8即0至7;用來生成一個等差數組,作為標記地雷的二維數組的下標

if Max < 0  是判斷雷有沒有布晚,如果沒有布完則繼續布雷,沒有雷則賦0值。
這段判斷寫的不是很好,可以替換一下
 if MAX > 0:
     if 1 == random.randint(0,4): 
           self.xy_list[x][y]= 1
            Max = Max - 1
else:
    break;

畢竟在一開始將所有的值都賦成0了,這裡沒必要重復。

``` if 1 == random.randint(0,4):
self.xy_list[x][y]= 1
Max = Max - 1

這個使用 該判斷是為了將地雷分散開來不至於都(0,0)的角落連續分布。




  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved