私はもっと学ぶために小さなプログラムを作ろうとしていますが、ランダムを使用することになると行き詰まります。
これが私がやっていることの例です https://trinket.io/Python/3338c954
私は、random.randrange、random.choice、random.randomをすべてに使用してみましたが、ランダムにはrandrange、choice、またはrandomの関数がないことを示すエラーコードが送信されます。
import turtle, math, random, time
wn = turtle.Screen()
wn.bgcolor('grey')
Rocket = turtle.Turtle()
Rocket.speed(0)
Rocket.color('red') ## this is what i want to randomize
rotate=int(90)
def drawCircles(t,size):
for i in range(15):
t.circle(size)
size=size-10
def drawSpecial(t,size,repeat):
for i in range(repeat):
drawCircles(t,size)
t.right(360/repeat)
drawSpecial(Rocket,100,10)
最終的には、サイズや配置などのランダム化されたプロセスを実装したいのですが、ここでは色に焦点を当てています。
追加のインポートを使用しなくても、かなり簡単です。
_turtle.colormode(255) # sets the color mode to RGB
R = random.randrange(0, 256, 100) # last value optional (step)
B = random.randrange(0, 256)
G = random.randrange(0, 256)
# using step allows more control if needed
# for example the value of `100` would return `0`, `100` or `200` only
Rocket.color(R, G, B) ## randomized from values above
_
(_200
_、_255
_、_23
_)のランダム値を使用:
[〜#〜] edit [〜#〜]:「について、タートル。カラーモード()をロケット。カラーモード()次の?"
私がそれを行うことをお勧めする方法は、関数を作成することです:
_def drawColor():
turtle.colormode(255)
R = random.randrange(0, 256)
B = random.randrange(0, 256)
G = random.randrange(0, 256)
return R, G, B
Rocket.color(drawColor())
_
これにより、新しい色が必要なときにいつでもdrawColor()
を呼び出すことができます。
これで、図面の色をランダム化する基本ができたので、素晴らしい外観の値(整数を好みに合わせて調整)の値を使用して非常に独創的にすることができます。
_#!/usr/bin/python
import turtle, math, random, time
def drawColor(a, b, o):
turtle.colormode(255)
R = random.randrange(a, b, o) # last value is step (optional)
B = random.randrange(a, b, o)
G = random.randrange(a, b, o)
# print(R, G, B)
return R, G, B
def drawRocket(offset):
Rocket = turtle.Turtle()
Rocket.speed(0)
Rocket.color(drawColor(20, 100, 1)) # start (0-256), end (0-256), offset
rotate=int(random.randrange(90))
drawSpecial(Rocket,random.randrange(0, 10), offset)
def drawCircles(t,size):
for i in range(30):
t.circle(size)
size = size - 20
def drawSpecial(t,size,repeat):
for i in range(repeat):
drawCircles(t,size)
t.right(360/repeat)
def drawMain(x, y):
wn = turtle.Screen()
wn.bgcolor(drawColor(0, 20, 2))
for i in range(3): # iterations
drawRocket(x)
x+=y
# print(x)
drawMain(2, 10) # offset, step
input("Press ENTER to exit")
_
256の範囲内でランダムな色(RGBを想定)を生成する1つの方法は、 np.random.choice
。
import numpy as np
color = Tuple(np.random.choice(range(256), size=3))
print(color)
Jpmc26のコメントに従って、Numpyを必要としない別の方法は random.choices
Python 3.6+を使用している場合。3つのランダムな整数を作成するためだけにNumpyをインポートするのはやり過ぎなので、これはおそらくより良いオプションです。
import random
color = Tuple(random.choices(range(256), k=3))
print(color)
ランダムRGB出力の例
(248、88、28)
(165、248、150)
(188、29、135)
random.choice
は、シーケンスからランダムな要素を返します。選択する値を含むリストを渡すだけです。
Rand_color = random.choice(['blue', 'red'])
Rocket.color(Rand_color)