/*********************************************/
/*★ 乱数で設定した山の石を描画 前田 稔 ★*/
/*********************************************/
using System;
using System.Drawing;
using System.Windows.Forms;
public class MyForm : Form
{
Miyama App;
public MyForm()
{
Text = "三山くずしゲーム";
Width = 600;
Height = 400;
App = new Miyama(@"c:\data\test\jewel.gif");
App.Settbl();
Paint += new PaintEventHandler(MyHandler);
MouseDown += new MouseEventHandler(OnMyMouseDown);
}
private void MyHandler(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
if (App.bmp == null) Application.Exit();
App.View(g);
}
private void OnMyMouseDown(object sender, MouseEventArgs e)
{
App.Settbl();
Invalidate();
}
}
//☆ 三山 Object Class
class Miyama
{
public Bitmap bmp;
Random rand = new Random();
public int[] T = new int[3]; //山の石数
static Point bas = new Point(50, 240); //石の左上座標
static int xsiz = 180; //山の横幅
// Constructor
public Miyama(string file)
{
try
{ bmp= new Bitmap(file); }
catch
{ MessageBox.Show("イメージが取得できません", "Error"); }
}
// 山の石を表示
public void View(Graphics g)
{ int i,j,x,y;
if (bmp==null) return;
for(i=0; i<3; i++) // 山番号
for(j=0; j<T[i]; j++) // 山の石数
{ x= i*xsiz+(j/5)*50+bas.X;
y= bas.Y-(j%5)*50;
g.DrawImage(bmp,x,y);
}
}
// 山に乱数で石を設定
public void Settbl()
{ int i;
while(true)
{ for(i=0; i<3; i++) T[i]= rand.Next(15)+1;
if (T[0]!=T[1] && T[0]!=T[2] && T[1]!=T[2]) return;
}
}
}
class form01
{
public static void Main()
{
MyForm mf = new MyForm();
Application.Run(mf);
}
}
|