合計 昨日 今日

ぷよぷよのおじゃまぷよ、相殺について

フォーラムルール
フォーラムルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

返信する

Advanced BBCode Box 3 :: ヘルプ ページ Advanced BBCode Box 3 (aka ABBC3)  
選択テキストを切り取る (カット) 選択テキストをコピー コピーしたテキストを貼り付け (ペースト) 選択したテキストから全ての BBCode タグを削除します。 箇条書きリスト 連番付き箇条書きリスト リスト項目 水平線 太字 斜体 下線 取り消し線 上付き文字 下付き文字 フェードイン / アウト テキスト グラデーション 正当テキスト 左揃え 中央ぞろえ 右揃え 整形済みテキスト
タブインデント挿入 コード 引用 本題と外れた内容を囲むオフトピックテキストを挿入します。 Web アドレス Eメール 画像を挿入します。 サムネイル画像を挿入します。 Youtube 動画 を挿入します。 ニコニコ動画を挿入します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF
トピックのレビュー
   

展開ビュー トピックのレビュー: ぷよぷよのおじゃまぷよ、相殺について

Re: ぷよぷよのおじゃまぷよ、相殺について

投稿記事 by white » 2017年10月09日(月) 16:02

すいません自己解決いたしました。

方法としては、3つの変数を用意して、あとは自分に降りそうか、降らなそうかで場合分けをし
降りそうであれば、相殺する(もし余ったら相手に送る)、降らなそうであれば、そのまま相手に送る感じにしました。


コード[C#]: 全て選択
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
31
32
33
34
35
36
37
 private int sendOjamaNum;  //相手に送るおじゃまぷよ数
 private int t_OjamaNum;    //自分に降ってくるおじゃまぷよ数(未確定)
 private int ojamaNum;      //自分に降ってくるおじゃまぷよ数(確定)
 
 //確定おじゃまぷよ数計算
        public void CalculateOjamaNum()
        {
            //もし自分におじゃまぷよが降りそうなら
            if(t_OjamaNum > 0)
            {
                //相殺
                t_OjamaNum -= sendOjamaNum;
 
                //相殺して、自分に降る数がマイナスになったら
                if(t_OjamaNum < 0)
                {
                    //相手におじゃまぷよをあげる
                    enemy.t_OjamaNum += -t_OjamaNum;
                    t_OjamaNum = 0;
                }
            }
            //自分におじゃまぷよが降りそうでなければ
            else
            {
                //そのままおじゃまぷよを送る
                enemy.t_OjamaNum += sendOjamaNum;
            }
 
            //送ったおじゃまぷよ数の初期化
            sendOjamaNum = 0;
 
            //自分に降る確定おじゃまぷよ数を設定
            ojamaNum = t_OjamaNum;
 
            //未確定のおじゃまぷよ数を初期化
            t_OjamaNum = 0;
        }

ぷよぷよのおじゃまぷよ、相殺について

投稿記事 by white » 2017年10月08日(日) 20:43

現在、C# + XNAにて、ぷよぷよを真似て作っています。
ゲームシステムは、ぷよぷよ通を真似ています。
自分はまだまだ、プログラミングに関しては初心者なので
いろいろなサイトを参考にしながら、
ぷよの出現、操作、連鎖、実際のスコアとほぼ同等のスコアの計算
(=連鎖した時の一時的なスコアも計算できています)
おじゃまぷよがあったらそれを落とす処理
まではできました。あとは、対人戦に対応させようと思って
1, 2Pまでの処理を書いているのですが

おじゃまぷよの相殺?の計算の考え方がよくわかりません。
自分は
計算用おじゃま変数P1, P2(それぞれ発生させた数)
確定用おじゃま変数P1, P2(それぞれ降らせる数)
を作っています。

また計算用おじゃま変数P1, P2には、連鎖が終わった時に、発生したおじゃまぷよ数を入れています。

確定用おじゃま変数は、例えばP1で考えると、計算用おじゃま変数p2がp1より大きい場合に
確定用おじゃま変数P1 = 計算用おじゃま変数P2 - 計算用おじゃま変数P1としています。


どうように、確定用おじゃま変数P2もそうしているのですが、うまく相殺ができません。
もしくは、この4つの変数だけじゃ足りないのでしょうか…。


説明下手ですいません。必要であればソースコードもあげます。
(ただ、少し長いので、どこらへんをあげればいいのか教えてもらえるとうれしいです…。)

ページトップ