¡¡I/O 2006ǯ 4·î¹æ

¥µ¥Ý¡¼¥È¾ðÊó

ºÇ½ª¹¹¿·2006ǯ03·î17Æü


¢£P129 VistaÀ¤Âå¤Î3D¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç(2006ǯ03·î17Æü¡Ë

¡¡­¢Direct3D¤Î½é´ü²½Form1.cs ¥½¡¼¥¹¡¦¥³¡¼¥É¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£

¡¡¢¨É½¼¨ÍÑ¥½¡¼¥¹¤Î¤¿¤áÀµ¤·¤¤¥½¡¼¥¹¤Ï¡¢²¼µ­¤è¤ê¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£

¡¡¢£­¢Direct3D¤Î½é´ü²½Form1.cs ¥½¡¼¥¹¡¦¥³¡¼¥É£±
¡¡¡¡
namespace Quiz¡¡¡¡
{¡¡¡¡
¡¡ public partial class Form1 : Form¡¡
¡¡ {¡¡
¡¡¡¡ /// ¡ãsummary¡ä
¡¡¡¡/// »Ò¥Õ¥©¡¼¥à
¡¡¡¡ /// ¡ã/summary¡ä
¡¡¡¡private Canvas canvas;
¡¡¡¡public Form1()
¡¡¡¡ {
¡¡¡¡¡¡InitializeComponent();
¡¡¡¡ }
¡¡¡¡ private void Form1_Load(objectsender, EventArgs e)
¡¡¡¡{
¡¡¡¡¡¡canvas = new Canvas();
¡¡¡¡¡¡ canvas.MdiParent = this;
¡¡¡¡¡¡ canvas.Show();
¡¡¡¡¡¡ }
¡¡¡¡ }
¡¡ }¡¡
}¡¡¡¡
¡¡¡¡

¡¡¢£­¢Direct3D¤Î½é´ü²½Form1.cs ¥½¡¼¥¹¡¦¥³¡¼¥É£²
¡¡¡¡
namespace Quiz¡¡¡¡
{¡¡¡¡
¡¡ public partial class Form1 : Form¡¡
¡¡ {¡¡
¡¡¡¡ private Device device = null;¡¡¡¡
¡¡¡¡ private PresentParameters presentParameters = null;¡¡¡¡
¡¡¡¡¡¡¡¡
¡¡¡¡ public Canvas()¡¡¡¡
¡¡¡¡ {¡¡¡¡
¡¡¡¡¡¡ InitializeComponent();¡¡
¡¡¡¡¡¡ // ¾ï¤ËºÆÉÁ²è¤¹¤ë¤¿¤á¤Î¤ª¤Þ¤¸¤Ê¤¤¡¡
¡¡¡¡¡¡ this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.Opaque, true);¡¡
¡¡¡¡ }¡¡¡¡
¡¡¡¡¡¡¡¡
¡¡¡¡ // ¥°¥é¥Õ¥£¥Ã¥¯¥¹´ØÏ¢¤Î¥ê¥½¡¼¥¹¤ò½é´ü²½¡¡¡¡
¡¡¡¡ public void InitializeGraphics(bool bWindowed)¡¡¡¡
¡¡¡¡ {¡¡¡¡
¡¡¡¡¡¡ presentParameters = new PresentParameters();¡¡
¡¡¡¡¡¡ // ... ÅÓÃæ¾Êά¡ÊpresentParameters¤ËºÇŬ¤ÊÃͤò¥»¥Ã¥È¡Ë¡¡
¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ CreateFlags flags = CreateFlags.SoftwareVertexProcessing;¡¡
¡¡¡¡¡¡ // ... ÅÓÃæ¾Êά¡Êflags¤ËºÇŬ¤ÊÃͤò¥»¥Ã¥È¡Ë¡¡
¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ // Direct3D ¥Ç¥Ð¥¤¥¹¤ÎÀ¸À®¡¡
¡¡¡¡¡¡ this.device = new Device(0, DeviceType.Hardware,¡¡
¡¡¡¡¡¡¡¡ this.Handle,
¡¡¡¡¡¡¡¡ flags, presentParameters);
¡¡¡¡ }¡¡¡¡
¡¡¡¡¡¡¡¡
¡¡¡¡ // ¥°¥é¥Õ¥£¥Ã¥¯¥¹´ØÏ¢¥ê¥½¡¼¥¹¤ò²òÊü¡¡¡¡
¡¡¡¡ public void TerminateGraphics()¡¡¡¡
¡¡¡¡ {¡¡¡¡
¡¡¡¡¡¡ // Direct3D ¥Ç¥Ð¥¤¥¹¤Î¥ê¥½¡¼¥¹²òÊü¡¡
¡¡¡¡¡¡ if (this.device != null)¡¡
¡¡¡¡¡¡ {¡¡
¡¡¡¡¡¡¡¡ this.device.Dispose();
¡¡¡¡¡¡¡¡ this.device = null;
¡¡¡¡¡¡ }¡¡
¡¡¡¡ }¡¡¡¡
¡¡¡¡¡¡¡¡
¡¡¡¡ protected override void OnPaint(PaintEventArgs e)¡¡¡¡
¡¡¡¡ {¡¡¡¡
¡¡¡¡¡¡ // ÉÁ²èÆâÍƤòÇò¤Ç¥¯¥ê¥¢¤·¡¢£Ú¥Ð¥Ã¥Õ¥¡¤â¥¯¥ê¥¢¡£¡¡
¡¡¡¡¡¡ this.device.Clear(ClearFlags.ZBuffer | ClearFlags.Target,¡¡
¡¡¡¡¡¡¡¡ Color.White, 1.0f, 0);
¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ // ¡ÖBeginScene¡×¤È¡ÖEndScene¡×¤Î´Ö¤ËÉÁ²èÆâÍƤòµ­½Ò¤¹¤ë¡¡
¡¡¡¡¡¡ this.device.BeginScene();¡¡
¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ this.device.EndScene();¡¡
¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ // ¥·¡¼¥ó¤Î¹¹¿·¡¡
¡¡¡¡¡¡ try¡¡
¡¡¡¡¡¡ {¡¡
¡¡¡¡¡¡¡¡ this.device.Present();
¡¡¡¡¡¡ }¡¡
¡¡¡¡¡¡ // ¥Ç¥Ð¥¤¥¹¾Ã¼º¤Î¥Á¥§¥Ã¥¯¤È¥ê¥»¥Ã¥È¡¡
¡¡¡¡¡¡ catch (DeviceLostException)¡¡
¡¡¡¡¡¡ {¡¡
¡¡¡¡¡¡¡¡ int result;
¡¡¡¡¡¡¡¡ // ¥ê¥»¥Ã¥È²Äǽ¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯
¡¡¡¡¡¡¡¡ if (!this.device.CheckCooperativeLevel(out result))
¡¡¡¡¡¡¡¡ {
¡¡¡¡¡¡¡¡¡¡ // ¥ê¥»¥Ã¥È²Äǽ¤Ê¤é¥ê¥»¥Ã¥È
¡¡¡¡¡¡¡¡¡¡ if (result == (int)ResultCode.DeviceNotReset)
¡¡¡¡¡¡¡¡¡¡¡¡ this.device.Reset(presentParameters);
¡¡¡¡¡¡¡¡¡¡ // ¤Þ¤À¥ê¥»¥Ã¥È¤Ç¤­¤Ê¤±¤ì¤Ð¡¢¤·¤Ð¤é¤¯¥¹¥ê¡¼¥×
¡¡¡¡¡¡¡¡¡¡ else if (result == (int)ResultCode.DeviceLost)
¡¡¡¡¡¡¡¡¡¡¡¡ System.Threading.Thread.Sleep(20);
¡¡¡¡¡¡¡¡¡¡ }¡¡
¡¡¡¡¡¡¡¡ }¡¡
¡¡¡¡ }¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡
¡¡ }¡¡¡¡¡¡¡¡
}¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡

¢£P140 ´Êñ¡ª¥²¡¼¥à¡¦¥×¥í¥°¥é¥ß¥ó¥°Îý½¬Ä¢(2006ǯ03·î17Æü¡Ë

¡¡¤½¤Î£±¥µ¥ó¥×¥ë¡¦¥¹¥¯¥ê¥×¥È¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£

¡¡¢¨É½¼¨ÍÑ¥¹¥¯¥ê¥×¥È¤Î¤¿¤áÀµ¤·¤¤¥¹¥¯¥ê¥×¥È¤Ï¡¢²¼µ­¤è¤ê¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£

¡¡¢£­£15¥²¡¼¥à¤òºî¤ë¡¡¤½¤Î£± ¥µ¥ó¥×¥ë¡¦¥¹¥¯¥ê¥×¥È
¡¡¡¡¡¡¡¡¡¡¡¡
¡ãhtml¡ä¡¡¡¡¡¡¡¡¡¡¡¡
¡ãbody OnLoad="init()"¡ä¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡ãscript language="JavaScript"¡ä¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡ // ¥Þ¥¹¾õÂÖÊÝ»ýÇÛÎó¡¡¡¡¡¡¡¡¡¡
¡¡ aCell = new Array(17);¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡ function init() {¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡ // 1,2,3¡Ä15¤È¤Ê¤ë¤è¤¦ÇÛÎó¤ËÃͤòÀßÄê¡¡¡¡¡¡¡¡
¡¡¡¡ for (i = 1;i ¡ã= 16;i++) {¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ aCell[i] = i;¡¡¡¡¡¡
¡¡¡¡ }¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡ // È×Ì̤òɽ¼¨¡¡¡¡¡¡¡¡
¡¡¡¡ drawCell();¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡ }¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡ function cellClick(cell) {¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡ // ¥¯¥ê¥Ã¥¯¤µ¤ì¤¿ÛƤΰÜÆ°½èÍý¡¡¡¡¡¡¡¡
¡¡¡¡ move(cell);¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡ // È×Ì̤òºÆÅÙɽ¼¨¡¡¡¡¡¡¡¡
¡¡¡¡ drawCell();¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡ }¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡ function drawCell() {¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡ // ³Æ¾£ÌܤξõÂÖ¤òɽ¼¨¡¡¡¡¡¡¡¡
¡¡¡¡ for (i = 1;i ¡ã= 16;i++) {¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ if (aCell[i] == 16) {¡¡¡¡¡¡
¡¡¡¡¡¡¡¡ document.getElementById("cell" + String(i)).innerText = "";¡¡¡¡
¡¡¡¡¡¡ } else {¡¡¡¡¡¡
¡¡¡¡¡¡¡¡ document.getElementById("cell" + String(i)).innerText = String(aCell[i]);¡¡¡¡
¡¡¡¡¡¡ }¡¡¡¡¡¡
¡¡¡¡ }¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡ }¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡ function move(cell) {¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡ // ¾åÊý¸þ¤Ë°ÜÆ°¡¡¡¡¡¡¡¡
¡¡¡¡ if (cell ¡ä 4 && aCell[cell - 4] == 16) {¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ aCell[cell - 4] = aCell[cell];¡¡¡¡¡¡
¡¡¡¡¡¡ aCell[cell] = 16;¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡ }¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡ // ²¼Êý¸þ¤Ë°ÜÆ°¡¡¡¡¡¡¡¡
¡¡¡¡ if (cell ¡ã 13 && aCell[cell + 4] == 16) {¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ aCell[cell + 4] = aCell[cell];¡¡¡¡¡¡
¡¡¡¡¡¡ aCell[cell] = 16;¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡ }¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡ // º¸Êý¸þ¤Ë°ÜÆ°¡¡¡¡¡¡¡¡
¡¡¡¡ if (cell % 4 != 1 && aCell[cell - 1] == 16) {¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ aCell[cell - 1] = aCell[cell];¡¡¡¡¡¡
¡¡¡¡¡¡ aCell[cell] = 16;¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡ }¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡ // ±¦Êý¸þ¤Ë°ÜÆ°¡¡¡¡¡¡¡¡
¡¡¡¡ if (cell % 4 != 4 && aCell[cell + 1] == 16) {¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ aCell[cell + 1] = aCell[cell];¡¡¡¡¡¡
¡¡¡¡¡¡ aCell[cell] = 16;¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡ }¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡ }¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡ã/script¡ä¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡ãtable border="1"¡ä¡¡¡¡¡¡¡¡¡¡¡¡
¡¡ ¡ãtr¡ä¡¡¡¡¡¡¡¡¡¡
¡¡¡¡ ¡ãtd id="cell1" onClick="cellClick(1)"¡ä1¡ã/td¡ä¡¡¡¡¡¡¡¡
¡¡¡¡ ¡ãtd id="cell2" onClick="cellClick(2)"¡ä2¡ã/td¡ä¡¡¡¡¡¡¡¡
¡¡¡¡ ¡ãtd id="cell3" onClick="cellClick(3)"¡ä3¡ã/td¡ä¡¡¡¡¡¡¡¡
¡¡¡¡ ¡ãtd id="cell4" onClick="cellClick(4)"¡ä4¡ã/td¡ä¡¡¡¡¡¡¡¡
¡¡ ¡ã/tr¡ä¡¡¡¡¡¡¡¡¡¡
¡¡ ¡ãtr¡ä¡¡¡¡¡¡¡¡¡¡
¡¡¡¡ ¡ãtd id="cell5" onClick="cellClick(5)"¡ä5¡ã/td¡ä¡¡¡¡¡¡¡¡
¡¡¡¡ ¡ãtd id="cell6" onClick="cellClick(6)"¡ä6¡ã/td¡ä¡¡¡¡¡¡¡¡
¡¡¡¡ ¡ãtd id="cell7" onClick="cellClick(7)"¡ä7¡ã/td¡ä¡¡¡¡¡¡¡¡
¡¡¡¡ ¡ãtd id="cell8" onClick="cellClick(8)"¡ä8¡ã/td¡ä¡¡¡¡¡¡¡¡
¡¡ ¡ã/tr¡ä¡¡¡¡¡¡¡¡¡¡
¡¡ ¡ãtr¡ä¡¡¡¡¡¡¡¡¡¡
¡¡¡¡ ¡ãtd id="cell9" onClick="cellClick(9)"¡ä9¡ã/td¡ä¡¡¡¡¡¡¡¡
¡¡¡¡ ¡ãtd id="cell10" onClick="cellClick(10)"¡ä10¡ã/td¡ä¡¡¡¡¡¡¡¡
¡¡¡¡ ¡ãtd id="cell11" onClick="cellClick(11)"¡ä11¡ã/td¡ä¡¡¡¡¡¡¡¡
¡¡¡¡ ¡ãtd id="cell12" onClick="cellClick(12)"¡ä12¡ã/td¡ä¡¡¡¡¡¡¡¡
¡¡ ¡ã/tr¡ä¡¡¡¡¡¡¡¡¡¡
¡¡ ¡ãtr¡ä¡¡¡¡¡¡¡¡¡¡
¡¡¡¡ ¡ãtd id="cell13" onClick="cellClick(13)"¡ä13¡ã/td¡ä¡¡¡¡¡¡¡¡
¡¡¡¡ ¡ãtd id="cell14" onClick="cellClick(14)"¡ä14¡ã/td¡ä¡¡¡¡¡¡¡¡
¡¡¡¡ ¡ãtd id="cell15" onClick="cellClick(15)"¡ä15¡ã/td¡ä¡¡¡¡¡¡¡¡
¡¡¡¡ ¡ãtd id="cell16" onClick="cellClick(16)"¡ä¡ã/td¡ä¡¡¡¡¡¡¡¡
¡¡ ¡ã/tr¡ä¡¡¡¡¡¡¡¡¡¡
¡ã/table¡ä¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡ã/body¡ä¡¡¡¡¡¡¡¡¡¡¡¡
¡ã/html¡ä¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡

¡¡¥À¥¦¥ó¥í¡¼¥É¤Ï¡¢°Ê²¼¤«¤é¤´ÍøÍѤ¯¤À¤µ¤¤¡£

¡¡¡¡io0604s.lzh


¡¡¢¨¥Õ¥¡¥¤¥ë¤Ï¡¢¡Ölzh·Á¼°¡×¤Î°µ½Ì¥Õ¥¡¥¤¥ë¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¥Õ¥¡¥¤¥ë¤ò¥À¥¦¥ó¥í¡¼¥É¸å¡¢²òÅॽ¥Õ¥È¤ò»È¤Ã¤Æ²òÅष¤Æ¤«¤é¤´»ÈÍѤ¯¤À¤µ¤¤¡£

¡¡¢¨¥Õ¥¡¥¤¥ëÆâÍƤϡ¢ËÜʸ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£


¡Ê³ô¡Ë¹©³Ø¼Ò¡¡I/OÊÔ½¸Éô

¡ÎÃí°Õ¡Ï

¡¡¡ú¥½¡¼¥¹¡¦¥³¡¼¥É¡¢¥µ¥ó¥×¥ë¡¦¥¹¥¯¥ê¥×¥È¤Ê¤É¤Î±¿ÍѤˤĤ¤¤Æ¤Ï¡¢±¿ÍѼÔËܿͤÎȽÃǤǹԤʤäƤ¯¤À¤µ¤¤¡£¥×¥í¥°¥é¥à¾å¤Î¤¤¤«¤Ê¤ë¥Ð¥°¡¢Áàºî¾å¤Î¤¤¤«¤Ê¤ë¥ß¥¹¡¢¤¢¤ë¤¤¤Ï¥×¥í¥°¥é¥à¤½¤Î¤â¤Î¤Ë¤è¤ë¶âÁ¬ÅªÂ»¼º¤Ë¤Ä¤¤¤Æ¤âÌÈÀդȤµ¤»¤Æ¤¤¤¿¤À¤­¤Þ¤¹¡£


¡¡¤Ê¤ª¡¢Ëܽñ¤ÎÆâÍƤ˴ؤ¹¤ë¤´¼ÁÌä¡¿¤ªÌ䤤¹ç¤ï¤»¤Ï¡¢¼¡¤ÎÊýË¡¤ÇI/OÊÔ½¸Éô°¸¤Ë¤ª´ê¤¤¤·¤Þ¤¹¡£

  1. ÊÖ¿®ÍѤÎÀÚ¼ê¤òƱÉõ¤·¤¿¼ê»æ
  2. ±ýÉü¤Ï¤¬¤­
  3. FAX 03-5269-6031
  4. E-mail Ì䤤¹ç¤ï¤»¥Õ¥©¡¼¥à

¢¨¤´¼ÁÌä¡¿¤ªÌ䤤¹ç¤ï¤»¤ÎºÝ¡¢¤ªµÒÍͤλÈÍÑ¡¦Æ°ºî´Ä¶­¤Ê¤É¤Ëź¤¨¤Æ¡¢¶ñÂÎŪ¤Ê¾É¾õ¤ò¤Ç¤­¤ë¤À¤±¾Ü¤·¤¯¤ªÃΤ餻¤¯¤À¤µ¤¤¡£
¢¨FAX¤Ç¤Î¤´¼ÁÌä¡¿¤ªÌ䤤¹ç¤ï¤»¤Î¾ì¹ç¤Ï¡¢É¬¤º¤ªµÒÍͤÎFAXÈÖ¹æ¤òÌÀµ­¤·¤Æ¤¯¤À¤µ¤¤¡£