kazumalab tech log

流行りとリラックマと嵐が大好きです。技術的ログ。

Python勉強〜番外編マップ生成〜

kazumaです。

昨年にPythonでコードを書いたことを思い出しました。

このコードは自動でマップを生成してくれるものとなっています。
for文を使っています。
ですが、今回はobject指向を使っているので今まで勉強したところとは少し違います。

コード実行時のプレビュー
f:id:kazumalab:20150423183715p:plain

#mapCreate.py

from random import randrange
from graphics import *

#windowの生成とサイズ
w = GraphWin("map",400,400)


cpointer01 = [(50,50),(100,50),(150,50),(200,50),(250,50),(300,50),(350,50)]
cpointer02 = [(50,100),(100,100),(150,100),(200,100),(250,100),(300,100),(350,100),
            (50,150),(100,150),(150,150),(200,150),(250,150),(300,150),(350,150),
            (50,200),(100,200),(150,200),(200,200),(250,200),(300,200),(350,200),
            (50,250),(100,250),(150,250),(200,250),(250,250),(300,250),(350,250),
            (50,300),(100,300),(150,300),(200,300),(250,300),(300,300),(350,300),
            (50,350),(100,350),(150,350),(200,350),(250,350),(300,350),(350,350)]

for (x,y) in cpointer01:
    Pointer = Circle(Point(x,y),5)
    Pointer.draw(w)   
    num = randrange(1,5)
    if num == 1:
        mpoint01 = Line(Point(x,y),Point(x,y-50))
        mpoint01.draw(w)
        
    if num == 2:
        mpoint02 = Line(Point(x,y),Point(x+50,y))
        mpoint02.draw(w)

    if num == 3:
        mpoint03 = Line(Point(x,y),Point(x,y+50))
        mpoint03.draw(w)

    if num == 4:
        mpoint04 = Line(Point(x,y),Point(x-50,y))
        mpoint04.draw(w)

for (x,y) in cpointer02:
    Pointer = Circle(Point(x,y),5)
    Pointer.draw(w)  
    num = randrange(1,4)
    if num == 1:
        mpoint11 = Line(Point(x,y),Point(x+50,y))
        mpoint11.draw(w)

    if num == 2:
        mpoint12 = Line(Point(x,y),Point(x,y+50))
        mpoint12.draw(w)

    if num == 3:
        mpoint13 = Line(Point(x,y),Point(x-50,y))
        mpoint13.draw(w)

まず、この2行から。

from random import randrange
from Graphics import *

1行目はpythonで乱数を使うために必要となります。
2行目はwindowを生成するために必要となります。

randomを使い、棒倒し法でマップを生成しています。


以上です。今回はただのメモです。