Python learning
本文最后更新于:8 个月前
- python可以用来帮助我们做很多事情,比如说帮我们通过两张50*50的小图片随机生成一张好看的游戏地图
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| import cv2 import numpy as np import csv from typing import Tuple, List import random import os
def csv_read(csv_name): map_mat: List[List] = list() with open(csv_name)as f: f_csv = csv.reader(f) for row in f_csv: map_mat.append(list(map(lambda item: int(item), row))) return map_mat
def main() -> None: image_grass_list = list() bg_name_list = os.listdir("./newS/bg") image_soil_list = list() soil_name_list = os.listdir("./newS/soil") for bg_name in bg_name_list: image_grass_list.append(cv2.imread("./newS/bg/" + bg_name)) for soil_name in soil_name_list: image_soil_list.append(cv2.imread("./newS/soil/" + soil_name)) print(soil_name_list) csv_name_list = os.listdir("./mapCSVTemp")
for csv_name in csv_name_list: map_mat = np.array(csv_read("./mapCSVTemp/" + csv_name)) height, width = map_mat.shape map = np.zeros((height*50, width*50, 3), dtype=int) for i, row in enumerate(map_mat): for j, sign in enumerate(row): if sign: soil_sign = random.randint(0, len(soil_name_list)-1) map[i*50:(i*50+50), j*50:(j*50 + 50) ] = image_soil_list[soil_sign] else: bg_sign = random.randint(0, len(bg_name_list)-1) map[i*50:(i*50+50), j*50:(j*50 + 50) ] = image_grass_list[bg_sign] cv2.imwrite('./mapTemp/' + "map30.png", map, [int(cv2.IMWRITE_PNG_COMPRESSION), 9]) print("Map Ready Ok !") return None
if __name__ == "__main__": main()
|