Tag Archives: 2048クローン

C#で2048ゲームのクローンを作る[その6]

2016年2月5日 (カテゴリ: C#:)

今回は、前回に作ったのセルのアニメーション処理を追加します。 アニメーションをさせるということは、各セルに対して定期的に再描画のUpdate処理をコールしてあげる必要があります。このためUpdate処理を実装します。 最初に、Updateメソッドだけを持つインターフェースを作ります。 public interface ITaskBehaviour { void Update(); } 作ったインターフェースをCellScriptクラスに適用します。Updateメソッドは、一旦デバッグメッセージの出力として実装しておきます。 class CellScript …


続きを読む

C#で2048ゲームのクローンを作る[その5]

2016年1月31日 (カテゴリ: C#:)

今回は、予定通り盤面に表示させる駒(セル)を管理するクラスを作成します。 これまでのゲームルール作成は一旦置いておき、描画寄りのプログラムになります。 今回作るプログラムで、以下のような盤面の表示を行えるようにします。 CellScriptクラスの作成(概要) まずは、セルを管理するCellScriptクラスを作成します。 大枠だけまず書くと、以下のような感じになります。 CellScript.cs using System.Windows.Forms; using System.Collections.Generic; using System.Drawing; using System; …


続きを読む

C#で2048ゲームのクローンを作る[その4]

2016年1月28日 (カテゴリ: C#:)

今日は、前回の予定通り盤面の管理を別クラスに分けてみました。 リファクタリングを行っただけなので、前回のプログラムとできることは全く同じです。 まずは、画面を管理しているForm1.csファイルです。 盤面管理をBoardManagerに逃がしたので、非常にシンプルになりました。 using System; using System.Collections.Generic; using System.Data; using System.Windows.Forms;   namespace Mock2048 { public partial class Form1 : Fo…


続きを読む

C#で2048ゲームのクローンを作る[その3]

2016年1月28日 (カテゴリ: C#:)

今回は、ゲームサイクルの作成を行いました。 以下の細々とした処理を追加し、1回分のゲーム開始->プレイ->ゲームオーバーまで、1周分のサイクルが作れました。 ゲーム状態の管理を追加(isGameOver変数) KeyDown()に、ゲームオーバー判定を追加 KeyDown()に、1手動かすたびに新セルの生成処理を追加 initBoard()に、盤面の初期化処理(ランダムで2セル生成)を追加 addCell()として、新セルの生成のメソッドを追加 slideCell()に、スライドした結果セルの移動があったか否かを取得できるよう修正 一通り遊べるのですが、スライドさせたときのアニメーションが無い…


続きを読む

C#で2048ゲームのクローンを作る[その2]

2016年1月27日 (カテゴリ: C#:)

前回は、上キーを押したときのみの処理を書いていましたが、上下左右のキーに対応しました。 これに伴って、上下左右のキーを押したとき、各セルの移動先を求める関数を切り出しました。 移動先を求めるのはgetDestPos()メソッドで、これを利用してセル移動を行うmoveCell()メソッドを実装しています。 他には、方向指定がC#のKeys列挙体の定義を流用していたため、専用のDIR列挙体を作っているなど、細かいところを修正しました。 using System; using System.Collections.Generic; using System.Data; using System.Wi…


続きを読む

C#で2048ゲームのクローンを作る[その1]

2016年1月21日 (カテゴリ: C#:)

これから勉強をかねて、2048というゲームのクローンをWinFormで作ってみようと思います。 2048って何? 一時期ブームになったスマホのゲームアプリで、パネルをスライドさせながら大きな数字を作っていくゲームです。ルールは説明するより、動画を見てもらったほうが早いです。 個人的にはこのゲーム、結構プレイしていて最高で8192まで行った事があります。 作成ルール 本当は一気に作ってしまいのですが、時間が無いので下記のルールで少しづつ進めていきます。 毎週何か作る。本当な毎日少しづつ進めたいけど仕事があるので、週に3回以上は最低目標とする。 作成中のプログラムをBlogにさらす。本当ならいった…


続きを読む