カタン、Pythonでは?―― タイルの位置の保存
タイルの位置を外に保存したい。各六角形の頂点だけでなく、全部。
しかし、CSVに保存しようとしたら見事に失敗。
なんせ、3次元。CVSは2次元までしかダメ見たい。そうか、ダメか。毎回計算させなきゃいけないの?
いや、ズラーっと並べる形で保存して、読み込んだ後加工する形でも、少なくとも毎回計算するよりはましだろう、その時は、1次元?2次元でもできるはず、などといろいろ調べていたら、3次元でも保存できる方法を見つけた。拡張子npyなるファイルにするらしい。
へえ。
直接は見えないけど、実験。
import numpy as np
t1 = np.loadtxt(fname='dataC2.csv', dtype=float, delimiter=",", skiprows=1)
t3 = np.array([[0, 0], [-17.32, 10.00], [-17.32, 30.00], [0.00, 40.00],[17.32, 30.00],[17.32, 10.00]])
t4 = [ ]
for t0b in t1:
t0c = t0b + t3
t0d = t0c.tolist()
t4.append(t0d)
t4 = np.array(t4)
tile13 = np.array([100,-200])
tile11=t4*2
tile12=tile11+tile13
np.save('tileA.npy', tile12)
これで、tileA.npy というファイルに保存されたらしい。
呼び出しはnp.load。
絵は描けるかな。
import numpy as np
import pygame
tile12 = np.load('tileA.npy')
tile2 = np.loadtxt(fname='dataC.csv', dtype=float, delimiter=",", skiprows=1)
pygame.init()
screen = pygame.display.set_mode
gray = (237, 237, 237)
pygame.init()
screen = pygame.display.set_mode ( ( 1280, 720 ) )
myclock = pygame.time.Clock()
screen.fill(gray)
np.random.shuffle(tile2)
print(tile2)
for hec, token in zip(tile12, tile2):
poslist = hec
tok1 = token
pygame.draw.polygon(screen, tok1, poslist)
pygame.display.flip()
endflag = 0
while endflag ==0:
for event in pygame.event.get():
if event.type == pygame.QUIT: endflag = 1
myclock.tick(60)
pygame.quit()
出来た出来た。これで少しはすっきり。