パンダの休日

雑多な書き残し

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
mkwave.png
引きこもりがちな人間でも海を見たい時はあるのです。



「プログラミングでゲームでも作りたい。」
「これハッカーっぽいやつや!」
「ふむふむ、printf("HelloWorld!\n"); で、fってなんや。あとセミコロンはなぜいるの。」
「おっ、HelloWorld!が表示された。10000回表示させたろ。」
「ガンガンCPU回す感じが堪らん。」
「参照渡しってなんや・・・ 構造体ってなんや・・・ 整数の限界小さすぎ・・・ 」
「そういえば昔ShadeでPythonスクリプトっていうのあったな。あれも言語かな。」
「え、Pythonめっちゃ簡単やん。何このくそイケメン言語。オタク言語は見切ろう。」
「簡単なことは簡単に書ける。やりたいことだけ書ける。Pythonを相棒にすればゲームとか作れそう。」
「やっぱり外部ライブラリは要るか。作りたいものはないけど調べるか。」
「なんとなくゲームの作り方は分かった。そしてゲーム作りが思ったのと違う方向に大変なことも分かった。」
「やっぱりプログラムの本分は計算。ProjectorEulerやろう。」
「アルゴリズムって大事だな。計算能力のたかだか数十倍の差なんて小さい問題だ。」
「ああ、大体やりたいことはやった。自分用に欲しいスクリプトくらいなら作れる。ここから先は学習コスパが悪い。」
「GUI、あと音とか、もう少しやりたいことはあった。でももうつかれた。ああ海が見たい。」


「いや、海っていうか、波が見たい。ゆったりした合成波を眺めたい。」
「作ろう。」



import math,os
from time import sleep

Haba = 160
Takasa = 56
HalfT = Takasa//2
def main():
class Wave:
def __init__(self,A,T,v):
self.A = A
self.T = T
self.v = v
def y(self,x,t): #場所と時間を指定して高さを返す
return(self.A*math.sin(2*math.pi/self.T*(x-self.v*t)))

swav = Wave(0.4,7.9,1)
swav2 = Wave(0.07,0.7,0.2)
swav3 = Wave(0.23,1.7,-0.3)
swav4 = Wave(0.2,3.1,-1.7)
wavelist = [swav, swav2, swav3, swav4]
os.system("mode con:cols={}".format(Haba+2)) #表示する縦幅と横幅に合わせて画面を設定
os.system("mode con:lines={}".format(Takasa))
for t in range(10000):
t = t/5 #数を大きくすればスロー
tmtxt = []
for x in range(Haba): 1列毎に高さを求めて文字列にする
x = x/30 #数を大きくすれば拡大
wav = sum([w.y(x,t) for w in wavelist])
wav =(int(wav*20)+HalfT)
wavetxt = ("0"*wav + "1"*(HalfT-wav) +
"_"*(Takasa-(wav if HalfT < wav else HalfT)))
tmtxt.append(wavetxt)

ytp = ""
for i in range(Takasa): #転置して1文字列に
for j in range(Haba):
ytp += tmtxt[j][Takasa-1-i]
ytp += "\n"
print(ytp)
sleep(0.2) #速いと風情がないのでゆっくりに
os.system("CLS") #コンソールクリア

if __name__ == '__main__':
main()


「満足。」

⇒続きを読む

スポンサーサイト

shader

Author:shader
多趣味飽き性に振り回されて色々やってます。

直接連絡したい方は御気軽にメールしてください。 3日以内には返信させて頂きます。

名前:
メール:
件名:
本文:

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。