0
87 76 67 58 49 40 31 22 13  4
77 68 59 50 41 32 23 14  5 -4
69 60 51 42 33 24 15  6 -3-12
61 52 43 34 25 16  7 -2-11-20
53 44 35 26 17  8 -1-10-19-28
45 36 27 18  9  0 -9-18-27-36
37 28 19 10  1 -8-17-26-35-44
29 20 11  2 -7-16-25-34-43-52
21 12  3 -6-15-24-33-42-51-60

この数字のグリッドを使用して、マップの pygame タイル ベースの辞書でレベルを定義しています。各数値は、2 次元リストである値を使用して、他のマップを参照してマップの場所を定義する辞書キーです。グリッド内の各数値が 0 から離れた非対角移動の数を返す関数が必要です。この数値を使用して難易度を計算します。したがって、プレーヤーが原点 0 から離れるほど、ゲームは難しくなります。これらの数値がどのように生成されるかをよりよく理解するには... 北に移動すると 8 増加し、南に移動すると -8 増加し、東に移動すると -9 増加し、西に移動すると 9 増加します。たとえば、マップ 17,-1 、1、および -17 は 2 に等しく、マップ 8、9、-9、-8 は 1 に等しくなります。私はまともなコードを書くための学習を進めていますが、必要な数学が私の能力を超えていることがあります。

4

1 に答える 1

0

わかりましたので、問題を解決するためのはるかに単純な方法を見つけました。2 つの値のリストを使用しました。北、南の移動では位置 0 を 1 ずつ増減し、西、東の移動ではそれぞれ位置 1 を 1 ずつ増減しました。次に、位置 0 の絶対値と位置 1 の絶対値を加算して、答えを返しました。これにより、0 からの正確な距離が得られるようです。

dif_list =[0,0]
if move == 'north':
  dif_list[0] += 1
if move == 'south':
  dif_list[0] -= 1
if move == 'west':
  dif_list[1] += 1
if move == 'east':
  dif_list[1] -= 1
  
def difficulty():
  num = abs(dif_list[0])+abs(dif_list[1])
  return num

于 2015-08-12T20:48:17.463 に答える