カタン、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()

 

出来た出来た。これで少しはすっきり。