空想曲線

吉里吉里2/KAG3でのゲーム制作に使える小ネタ置き場。ゲーム用素材も置いてます。

吉里吉里/KAG:じゃんけん作るよ! 番外編  

2012-06-29
2017-06-16
cm0
tb0

関数を作る練習の過程でなんかできたので、とりあえず置いていく(´・ω・)つ


ゲームの準備

[iscript]

/* じゃんけん判定用関数 */

function J (i,n,ans){

 i = tf.isono; // プレイヤーが出した手
 n = tf.nakajima; // 相手が出した手
 ans = ( i - n + 3) % 3; // 結果判定用の計算

 if(ans == 0){
  tf.result = 'DRAW';}

  else if(ans == 1){
   tf.result = 'YOU LOSE...';}

  else if(ans == 2){
   tf.result = 'YOU WIN !';}

  return tf.result;}


/* 変数の設定 */
tf.jun = []; // ぐーちーぱーの表示用
tf.jun = [' (`・ω・´)m ぐー',' (`・ω・´)v ちー',' (`・ω・´)w ぱー'];


/* プレイヤーと相手の名前 */
tf.player = ' イソノ';
tf.enemy = 'ナカジマ';


/* ベースレイヤ塗りつぶし */
kag.fore.base.fillRect(0,0,640,480,0x666699);

/* メッセージレイヤ0の枠の透明度を0に */
kag.fore.messages[0].FrameOpacity = 0;

[endscript]


ゲーム本体のスクリプト

*001
[delay speed=nowait]
[style align=center]
[locate y=150]

イソノ! じゃんけんしようぜ!(◯∀◯ )ノ[r][r]

;相手が出す手を決める
[eval exp="tf.nakajima = intrandom(0,2)"]

;プレイヤーが出す手を選ばせる
;ぐー
[link exp="tf.isono=0" target=*002][emb exp="tf.jun[0]"][endlink][r][r]
;ちょき
[link exp="tf.isono=1" target=*002][emb exp="tf.jun[1]"][endlink][r][r]
;ぱー
[link exp="tf.isono=2" target=*002][emb exp="tf.jun[2]"][endlink][r][s]

*002
[cm]
[style align=center]
[locate y=180]


;お互いが出した手を表示する
[emb exp="tf.player"]:[emb exp="tf.jun[tf.isono]"][r]
[emb exp="tf.enemy"]:[emb exp="tf.jun[tf.nakajima]"][r][r]


;関数を呼び出して、結果(tf.result)を表示する
[emb exp="J(tf.result)"]
[waitclick]
[cm]
[jump target=*001]
[s]

勝敗数や勝率を入れるのを忘れた。まぁいいか。
というか、ふたりとも野球しろ。じゃんけんは姉さんの役目だ。


※追記 

ans = (i - n + 3) % 3が分からんと言われたので解説。

グーなら0,チョキなら1、パーなら2。これが前提。
プレイヤーが出した手から相手の出した手を引き、そこへ3を足します。
で、その答を3で割った余りで勝ち負けの判定をしています。

【自分:ぐー、相手:ちー】ans = (0 - 1 + 3)%3 = 2
【自分:ちー、相手:ぐー】ans = (1 - 0 + 3)%3 = 1
【自分:ぱー、相手:ぱー】ans = (2 - 2 + 3)%3 = 0

というカンジです。
関連記事

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://kopacurve.blog33.fc2.com/tb.php/240-6038c409
この記事にトラックバックする(FC2ブログユーザー)

Author

Recent

Category

Link

Comment

Mailform

Twitter