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



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.101467への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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