質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift Playground

Swift Playgroundは、Swiftをインタラクティブに習得できるiPad向けのアプリケーション。コーディングの知識は一切必要なく、Swift Playgrounds上でプログラミングしたコードによりドローン・ロボットを自在に動かすことが可能です。

Q&A

解決済

1回答

662閲覧

図形の色を3色の中からランダムに表示したい。

nizimo

総合スコア5

Swift Playground

Swift Playgroundは、Swiftをインタラクティブに習得できるiPad向けのアプリケーション。コーディングの知識は一切必要なく、Swift Playgrounds上でプログラミングしたコードによりドローン・ロボットを自在に動かすことが可能です。

0グッド

0クリップ

投稿2020/03/03 09:39

前提・実現したいこと

図形を赤・緑・青の3色の中からランダムに表示したいのですが
やり方がわかりません。

該当のソースコード

let circle = Circle(radius:7) circle.color = .white circle.center.y += 0

補足情報

.whiteというところに何かを書けばいいとは思うんですが調べてもわかりません。
.random() は全ての色の中からランダム表示なのでやりたいこととは違うんです。
他にはArrayとかいうのを使ってやろうと思いましたが失敗しました。
使いたい色は red, green, blue です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TsukubaDepot

2020/03/03 10:59

該当のソースコードは何を参考に作られましたか? 具体的な書籍名、Webページのアドレスなどがわからないと、アドバイスもつかないと思います。 あと、タグは「Swift playground」ですが、Xcode のplaygroundでSwiftを使って実行しているのでしょうか。
nizimo

2020/03/03 12:00

Xcodeではなく、Mac版のSwift Playgrounds というアプリを使っています。 コードはテンプレート→図形→作成→// 1. 円を作成します というのをコピペして少しいじってます。
guest

回答1

0

ベストアンサー

Swift playgroundは全くの初めてなので、今インストールして試してみました。
Mac版ではなくて、iPad版ということで間違いありませんか?

.whiteというところに何かを書けばいいとは思うんですが調べてもわかりません。

ここにランダムで選ばれた色を指定すればいいわけですよね。

.random() は全ての色の中からランダム表示なのでやりたいこととは違うんです。

.random()だと準備されている色がランダムに出てくるみたいです。

他にはArrayとかいうのを使ってやろうと思いましたが失敗しました。
使いたい色は red, green, blue です。

はい、おそらくご推察の通りです。
Array(配列)にあらかじめ3つの色に相当する値(enum値)を入れておき、ランダムでその色を選べば実行するたびに色が変わると思います。

とりあえず、これで動くと思います。

swift

1import foundation 2let circle = Circle() 3let random = Int(arc4random_uniform(3)) 4let color: [Color] = [.red, .green, .blue] 5circle.color = color[random]

3行目で乱数を発生させています。Xcodeのplaygroundなどでは、arc4random_uniform()はもはや使わない関数ですが、Swift playground では Int.random()が使えないようなのでこちらを使っています(arc4random_uniform()も、1行目のimport foundationを入れないと使えません)。

3色なので引数を3にしていますが、色数を増やすのであれば、それに応じてこの引数の値を変えればいいです。

3行目で色の情報を入れた配列を作っています。
色数を増やすのであれば、ここに追加します。

投稿2020/03/03 13:44

TsukubaDepot

総合スコア5086

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nizimo

2020/03/03 14:12

できました!すごい!ありがとうございます!
TsukubaDepot

2020/03/03 14:18

私も iPad の Swift playgrounds を使う機会ができてよかったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問