fork download
  1. import random
  2. import numpy as np
  3. import collections
  4. from pprint import pprint
  5.  
  6. # サイコロの準備
  7. Dice=[i for i in range(1,12)]
  8. # MAP
  9. #l=[['0' for i in range(9)] for j in range(9)]
  10. l=[
  11. ['0', '0', '0', '0', '0', '0', '0', '0', '0'],
  12. ['0', '0', '0', '0', '0', '0', '0', '0', '0'],
  13. ['0', '0', '0', '0', '0', '0', '0', '0', '0'],
  14. ['0', '0', '0', '0', 'A', '0', '0', '0', '0'],
  15. ['0', '0', '0', 'B', '0', 'D', '0', '0', '0'],
  16. ['0', '0', '0', '0', 'C', '0', '0', '0', '0'],
  17. ['0', '0', '0', '0', '0', '0', '0', '0', '0'],
  18. ['0', '0', '0', '0', '0', '0', '0', '0', '0'],
  19. ['0', '0', '0', '0', '0', '0', '0', '0', '0']]
  20.  
  21.  
  22. # ユーザー情報 ポイント
  23. USE=[5,5,5,5]
  24.  
  25. # 回転済み ブロック
  26. Warehouse_Slot=[[[['1', '0', '0'], ['0', '0', '0'], ['0', '0', '0']], [['0', '0', '1'], ['0', '0', '0'], ['0', '0', '0']], [['0', '0', '0'], ['0', '0', '0'], ['0', '0', '1']], [['0', '0', '0'], ['0', '0', '0'], ['1', '0', '0']]], [[['2', '2', '0'], ['0', '0', '0'], ['0', '0', '0']], [['0', '0', '2'], ['0', '0', '2'], ['0', '0', '0']], [['0', '0', '0'], ['0', '0', '0'], ['0', '2', '2']], [['0', '0', '0'], ['2', '0', '0'], ['2', '0', '0']]], [[['2', '0', '2'], ['0', '0', '0'], ['0', '0', '0']], [['0', '0', '2'], ['0', '0', '0'], ['0', '0', '2']], [['0', '0', '0'], ['0', '0', '0'], ['2', '0', '2']], [['2', '0', '0'], ['0', '0', '0'], ['2', '0', '0']]], [[['2', '0', '0'], ['0', '2', '0'], ['0', '0', '0']], [['0', '0', '2'], ['0', '2', '0'], ['0', '0', '0']], [['0', '0', '0'], ['0', '2', '0'], ['0', '0', '2']], [['0', '0', '0'], ['0', '2', '0'], ['2', '0', '0']]], [[['0', '3', '0'], ['3', '3', '3'], ['0', '0', '0']], [['0', '3', '0'], ['0', '3', '3'], ['0', '3', '0']], [['0', '0', '0'], ['3', '3', '3'], ['0', '3', '0']], [['0', '3', '0'], ['3', '3', '0'], ['0', '3', '0']]], [[['3', '3', '0'], ['3', '0', '0'], ['0', '0', '0']], [['0', '3', '3'], ['0', '0', '3'], ['0', '0', '0']], [['0', '0', '0'], ['0', '0', '3'], ['0', '3', '3']], [['0', '0', '0'], ['3', '0', '0'], ['3', '3', '0']]], [[['0', '5', '0'], ['0', '5', '0'], ['5', '5', '5']], [['5', '0', '0'], ['5', '5', '5'], ['5', '0', '0']], [['5', '5', '5'], ['0', '5', '0'], ['0', '5', '0']], [['0', '0', '5'], ['5', '5', '5'], ['0', '0', '5']]], [[['6', '6', '0'], ['6', '0', '0'], ['6', '6', '0']], [['6', '6', '6'], ['6', '0', '6'], ['0', '0', '0']], [['0', '6', '6'], ['0', '0', '6'], ['0', '6', '6']], [['0', '0', '0'], ['6', '0', '6'], ['6', '6', '6']]], [[['0', '7', '7'], ['7', '7', '0'], ['7', '0', '0']], [['7', '7', '0'], ['0', '7', '7'], ['0', '0', '7']], [['0', '0', '7'], ['0', '7', '7'], ['7', '7', '0']], [['7', '0', '0'], ['7', '7', '0'], ['0', '7', '7']]]]
  27. # ブロックの費用と報酬
  28. Warehouse_Slot_Bloku=[1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 12, 12, 12, 12, 9, 9, 9, 9, 25, 25, 25, 25, 30, 30, 30, 30, 35, 35, 35, 35]
  29.  
  30.  
  31. # サイコロの値
  32. def Sample_Demo_New_Bloku_Random_Number():
  33. global Dice
  34. return random.choice(Dice)
  35.  
  36.  
  37. # x=座標x y=座標y z=埋め込む配列 Warehouse_Slot[][]
  38. def Sample_Demo01(x,y,z):
  39. for i_r, i_l in enumerate(range(x, min((x+3, 9)))):
  40. for j_r, j_l in enumerate(range(y, min((y+3, 9)))):
  41. if l[j_l][i_l]=='0':l[j_l][i_l]=z[j_r][i_r]
  42. else:pass
  43. pprint(l)
  44.  
  45.  
  46. # 各MAP要素の合計
  47. def Sample_Demo_New_Bloku_Initialization(xyz):
  48. c=[]
  49. for i in range(len(xyz)):
  50. c.append(collections.Counter(xyz[i]))
  51. for j in range(len(c)-1):
  52. c[0]+=c[j+1]
  53. return c[0]
  54.  
  55.  
  56. # ブロックの中央座標から隣接マスの取得
  57. INDEX01=[]
  58. INDEX02=[]
  59. # ブロックの置ける中央座標を取得
  60. def Sample_Demo00_index01(xyz):
  61. for k,v in enumerate(l):
  62. if xyz in v:INDEX01.append([k,v.index(xyz)])
  63. Sample_Demo00_index02()
  64. # ブロックの置ける周囲座標を取得
  65. def Sample_Demo00_index02():
  66. global INDEX01
  67. INDEX02.append([[INDEX01[0][0]-1,INDEX01[0][1]-1],[INDEX01[0][0]-1,INDEX01[0][1]],[INDEX01[0][0]-1,INDEX01[0][1]+1],[INDEX01[0][0],INDEX01[0][1]-1],INDEX01[0],[INDEX01[0][0],INDEX01[0][1]+1],[INDEX01[0][0-1],INDEX01[0][1]-1],[INDEX01[0][0]+1,INDEX01[0][1]],[INDEX01[0][0]+1,INDEX01[0][1]+1]])
  68.  
  69. pprint(l)
  70.  
  71. # ユーザーAが置ける範囲のindexを取得
  72. Sample_Demo00_index01('A')
  73. print(INDEX02),print()
  74.  
  75. # ブロックを置く ユーザーIDが未定
  76. Sample_Demo01(0,0,Warehouse_Slot[8][0])
  77.  
  78. # 要素のカウント
  79. print(Sample_Demo_New_Bloku_Initialization(l))
  80.  
Success #stdin #stdout 0.13s 24684KB
stdin
Standard input is empty
stdout
[['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', 'A', '0', '0', '0', '0'],
 ['0', '0', '0', 'B', '0', 'D', '0', '0', '0'],
 ['0', '0', '0', '0', 'C', '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']]
[[[2, 3], [2, 4], [2, 5], [3, 3], [3, 4], [3, 5], [4, 3], [4, 4], [4, 5]]]

[['0', '7', '7', '0', '0', '0', '0', '0', '0'],
 ['7', '7', '0', '0', '0', '0', '0', '0', '0'],
 ['7', '0', '0', '0', '0', '0', '0', '0', '0'],
 ['0', '0', '0', '0', 'A', '0', '0', '0', '0'],
 ['0', '0', '0', 'B', '0', 'D', '0', '0', '0'],
 ['0', '0', '0', '0', 'C', '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']]
Counter({'0': 72, '7': 5, 'D': 1, 'B': 1, 'C': 1, 'A': 1})