HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2024
0328
きんむぎじゃんけんゲーム3未解決


きんむぎ

リンク

2024/3/28(Thu) 14:54:55|NO.101467

初心者です、じゃんけんゲームをつくろうとしています
bufferで仮想画面を定義し
celloadで画像を読み込み
gcopyで画像を表示させることはできましたがここからどうしたらよいのかわかりません

スタートボタンを押して3枚の画像をランダム表示させクリックで勝敗を決める動作させたいのですが何をどうすれば良いのかわからないので教えていただけると幸いです



この記事に返信する


ABATBeliever

リンク

2024/3/28(Thu) 16:07:46|NO.101469

ソース見てみないと実際の処理は描けませんが、

e=rnd(2)//相手の手を決める //0がグー,1がチョキ,2がパー objimage id,x1,y1,x2,y2,x3,y3 //id : カスタムボタンの参照バッファID //x1,y1 : カスタムボタンの参照座標1(通常時) //x2,y2 : カスタムボタンの参照座標2(押し下げ時) //x3,y3 : カスタムボタンの参照座標3(マウスオーバー時) pos x,y:button gosub "グーの画像を",*g pos x,y:button gosub "チョキの画像を",*c pos x,y:button gosub "パーの画像を",*p stop *g m=0 goto *check *c m=1 goto *check *p m=2 *check if m=e{mes "あいこ" }else:if m-e=-1{mes "あなたのかち" }else:if m-e=1{mes "あいてのかち" }else:if m=2 and e=0{mes "あなたのかち" }else{mes "あいてのかち"}



きんむぎ

リンク

2024/3/28(Thu) 16:36:58|NO.101470

;じゃんけん

buffer 1
celload "janken000.jpg",1
celload "janken005.jpg",2
celload "janken004.jpg",3
celload "janken006.jpg",4

// メインウィンドウを作成
screen 0, 300,400

pos 0, 0
gcopy 1, 0, 0, 300,300

pos 0,300
gcopy 2, 0, 0, 100, 100

pos 100,300
gcopy 3, 0, 0, 100, 100

pos 200,300
gcopy 4, 0, 0, 100, 100



沢渡

リンク

2024/3/28(Thu) 23:40:28|NO.101472

○乱数の求め方
 最初にrandomizeを実行し、以降はたとえば「a=rnd(3)」と実行すれば、
 aに0〜2の値がランダムで入ります。

○プレイヤーに入力してもらう方法
 button命令でボタンを配置してそれをクリックしてもらう手もありますが、
キーボードから入力してもらう方法もあります。
 キー入力を検出する方法は、stick、getkey、onkey等ありますが、
onkeyを使う場合ですと、onkeyのジャンプ先にて
システム変数wparamに、押されたキーの「仮想キーコード」が入ります。

・仮想キーコード
https://kts.sakaiweb.com/virtualkeycodes.html

たとえば左カーソルキーを押したのなら37が入ります。

○勝敗の判定
たとえば、グーを0、チョキを1、パーを2とした場合、
プレイヤーの手の番号からコンピュータの手の番号を引いた結果が
・1か-2なら負け
・-1か2なら勝ち
・0ならあいこ
と判定されます。

以下、テキストだけの簡便なものを作ってみました。

randomize sdim hands,64,3 hands="グー","チョキ","パー" onkey *key *ready //入力待ちフェイズ color 255,255,255 : boxf : color 0,0,0 : pos 0,0 phase=0 cpu=rnd(3) //コンピュータの手 you=0 //プレイヤーの手 mes "[←]グー [↑]チョキ [→]パー" stop *result //結果フェイズ phase=1 mes "コンピュータの手:"+hands(cpu) mes "あなたの手:"+hands(you) //判定 x=you-cpu if x=-1 | x=2 : mes "あなたの勝ち" if x=-2 | x=1 : mes "あなたの負け" if x=0 : mes "あいこ" mes "スペースキーを押してください" stop *key if phase=0 { //入力待ちフェイズの場合 if wparam>=37 & wparam<=39 { //←:37 ↑:38 →:39 you=wparam-37 goto *result } } if phase=1 { //結果フェイズの場合 if wparam=32 : goto *ready //スペース:32 } stop



ONION software Copyright 1997-2025(c) All rights reserved.