プロフィール

カイロプラクター てん

Author:カイロプラクター てん


【趣味】
・自転車に乗って
 ヘロヘロになる事。
・カイロプラクティックで
 人を元気にする事。

カレンダー
03 | 2017/04 | 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
作ったiOS App

スポンサーサイト

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

iPhoneアプリをまねして作ってみよう!「じゃんけんゲーム#4」

今回は、相手(コンピューター)の動きを追加

人工知能を使用して、対戦相手の動きを・・・・。
というのは、無しで
乱数(ランダム)で、「ぐー」「ちょき」「ぱー」を出すようにする。

動作はこんな感じ
まずは、「ぐー」Buttonからプログラムしいていきます。
「ぐー」Buttonを押すと、乱数を発生させてMacが何を出すかを決める。
「ぐー」とMacを比較して勝敗を決める。
後だしジャンケンなので、絶対に勝てないプログラムもできるね。

今回は、わかりやすく「if」文を使用。
case使いたいなぁ〜。「ぐー」「ちょき」「ぱー」別々は、大変だなぁ〜 ←独り言

Macが、0、1、2をの乱数をだすようにして
0の時は、「ぐー」
1の時は、「ちょき」
2の時は、「ぱー」
を、lbl_aiteの所に表示させる。
1301037.png


うまく、いくかなぁ〜
シミュレータ Run!
1301038.png
「ぐー」を押したら
Macが「ぐー」を出したよ
とりあえず、エラー無く動いたみたいだ。

けど、結果は、「結果」のままで、
変だ!

次は、「結果」の部分に勝敗を表示
自分は「ぐー」なので
Macが「ぐー」の時は「あいこ」
Macが「ちょき」の時は「あなたの勝ち!」
Macが「ぱー」の時は「あなたの負け!」
と表示させる。
1301039.png
こんな感じ。

よし!
シミュレータ Run!
ぐーしかプログラミングしていないので
ぐ〜を、ぽちっと
1301040.png
あぁ〜!
「ぱー」だしやがった!
負けたよ。
連続で「ぐー」を押して、動きを確認

あっ!
なんか、動きが不自然だぞ!
こうしよう!
■あいこの時
 勝負は決まってないので、「ぐー」「ちょき」「ぱー」を表示したままに
■勝敗が決まった時
 勝負は終了なので「ぐー」Buttonが押せないようにして「もういっかい」
 Butoonで再勝負にする。
1301041.png

このままだと、勝敗が決まった後「ぐー」ボタンがず〜と、無効になったまま
なので、「もういっかい」のButtonを押すと「ぐー」Buttonが有効になるように追加
「もういっかい」Buttonを押すということは、再勝負になるので「相手」と「結果」の
表示部分を削除
1301042.png

これで、「ぐー」しか出せないジャンケンゲームだけど、勝負ができるようになった。
シミュレータ Run!
あれ!?
起動画面がちょと不自然。
1301043.png
「相手」「結果」「もういっかい」が表示されていて、見た目が不自然でかっこ悪い。
起動画面は、非表示にしよう。
起動時に - (void)viewDidLoad の部分が実行されるので
ここに
1301044.png

と、このままだと、「もういっかい」Buttonがず〜と非表示で
押せないままなので、勝負がついた時に「もういっかい」Buttonを表示
1301045.png

ついでに、もういっかいを押したら「もういっかい」ボタンを非表示にさせる。
1301046.png

ふぅ〜これで、完璧だぜ!
「ぐー」だけですけど・・・。

残りの「ちょき」と「ぱー」を同じ要領でプログラミングして
「ちょき」は、こんな感じ、同じ要領で「ぱー」もプログラミングして
1301047.png

「もういっかい」Buttonも追加して
1301048.png

これで、Macと対戦できるぜ!
シミュレータ Run!
1301049.png

やっぱり、みためがねぇ〜。
次回は、グラフィックを追加しま〜す。


-* じゃんけんゲーム まとめ *-
1.iPhoneアプリをまねして作ってみよう!「じゃんけんゲーム#1」
2.iPhoneアプリをまねして作ってみよう!「じゃんけんゲーム#2」
3.iPhoneアプリをまねして作ってみよう!「じゃんけんゲーム#3」
4.iPhoneアプリをまねして作ってみよう!「じゃんけんゲーム#4」
5.iPhoneアプリをまねして作ってみよう!「じゃんけんゲーム#5」
THEME:プログラミング | GENRE:コンピュータ |

COMMENT

承認待ちコメント

このコメントは管理者の承認待ちです

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

Re: No title

> 初めまして
> じゃんけんアプリで学習大変勉強になります。
> すみませんが、乱数発生でもしよろしければ
> ご回答いただけますと幸いです。
> srand(time(nil));のところで
> うっすらとガイドは以下のようにでてきて、
> srand(time(time t *));
> srand(time(nil));
> でビルドすると
> view controller.mが立ち上がり
>
> implicit conversion loses integer precision:'time_t'(aka 'long')
> と続きます。
> 環境はxcode5.1.1です。
> 何か解決策がございましたら、お教えいただきたくお願いいたします。

ブログを放置してしまっていました。
すみません。
もう返事が必要ないかもしれませんが・・・・。

srand(time(nil));のtime(nil)のがエラーを起こしているようです。
NSInteger値を入れてあげましょう。

Re: No title

> なんか
> return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
> っていうのが出てきて(緑の半透明でマーキングされてる感じ)
> シミュレータでRunしても黒い画面が出るだけになります。
> これじゃちゃんとできているのかわかりません。
> (☝確実にちゃんとできていないことはわかる)
> 教えてください。

ブログ放置しすぎました。
Xcodeも新しくなり、コードも古いかと・・・。最近思います。

完全にどこか値がnilになっているところありませんか?

最新の、xcode6.1とかで書き直そうかなと・・・。
答えになっていなくてすみません m(_ _)m

EDIT COMMENT

非公開コメント

 
検索フォーム
QRコード
QRコード
ブロとも申請フォーム
FC2カウンター
ビリリティピルズ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。