2016-06-13 10 views
0

私はSwiftの言語を改良して少しゲームを作っているので、Swiftのすべての機能に慣れていません。文字列を使ってBool型の値を変更する

私が持っている:私はこれを求めています理由です

var Playedcardone: Bool = false 
var Playedcardtwo: Bool= false 
ect ect ect 

私のIBAction、これは52枚のカードにフックアップされています機能で

@IBAction func Tappedoncard(card: UIButton) { 
     if tapped == true{ //nvm this 
     checkcard(card) 
    } 
    } 

、私が持っている:

func checkcard(Card: UIButton) { 
     ("Playedcard" + Card.currentTitle!) = true 
    } 

この機能はうまくいきません。私がコールしたカードに応じて、私が作成したvarをどのように参照できますか?カードがチェックされると、ブールは真に変わる必要があります。私は52のvarsと51のelse if文を作成することでこれを行うことができますが、より速いオプションが必要でしょうか?あなたは歓迎です:)。

/offtopic:クラスを使用して、カードの値、UIIMageview、およびbool自体を定義することができます。私はちょうど最適なクラスを理解していない、私は使用する私の次のアプリの多分。あなたが私のコードを見たいと思っていて、私に手を差し伸べたいのであれば、ここでコードをドロップします。

+0

あなたがしようとしていることを明確にすることはできますか?関数がvarをtrueに変更しますか? –

+0

@Jhonnyjammerコードを投稿して目標を明確にしてください。他人と私があなたを助けることができるように。 – Ike10

+0

私の投稿を更新しました。もう一度見てください。 – Nahaku

答えて

0

文字列を使用して変数にアクセスすることはできません。そのような変数を更新するには、何らかのタイプの条件チェックを実行する必要があります。

func checkcard(Card: UIButton) { 
    if Card.currentTitle! == "one" { 
     Playedcardone = true 
    } else if Card.currentTitle! == "two" { 
     Playedcardtwo = true 
    } 
} 

さまざまなソリューションがあります。たとえば、カードごとに2つの別々のIBActionsを作成してみましょう。また、大会の問題として、小文字を使用して変数を開始することをお勧めします。

+0

このように、52の変数と51のelse if文を追加して、カードの現在のタイトルが何かを判断する必要があります。別のオプションはありませんか? 2つの別々のIBActionを作成することができますが、他のIBActionを含めるべきことは何ですか? – Nahaku

+0

@Jhonnyjammerあなたがカードを保管するための別のアプローチが必要な場合は、配列の使用を検討してください –

関連する問題