int common_check(int direction)
{
    int ii,kk,ff;
    int[,] tristmp = new int[MAPY,MAPX];

    for(ii=0; ii<MAPY; ii++)
    for(kk=0; kk<MAPX; kk++)
    {
        tristmp[ii,kk]=tris[ii,kk]; }

    for(ii=0; ii<ARR; ii++)
    for(kk=0; kk<ARR; kk++)
    {
        //Index Array Exception//Index Array Exception//Index Array Exception
        if(ypos+ii >MAPY-1) continue;

        if(xpos+kk > MAX-1) continue;
        if(xpos+kk < 0) continue;

        if(design[ii,kk]==1) tristmp[ypos+ii,xpos+kk]=0; }

    if(direction==D_RIGHT) xpos++;
    if(direction==D_LEFT) xpos--;
    if(direction==D_DOWN) ypos++;

    for(ii=0; ii<ARR; ii++)
    for(kk=0; kk<ARR; kk++)
    {
        //Index Array Exception//Index Array Exception//Index Array Exception

        if(ypos+ii >MAPY-1) continue;
         if(xpos+kk > MAX-1) continue;
         if(xpos+kk < 0) continue;


        if(design[ii,kk]==1) tristmp[ypos+ii,xpos+kk] += 1; }

    ff=0;
    for(ii=0; ii<ARR; ii++)
    for(kk=0; kk<ARR; kk++)
    {
        //Index Array Exception//Index Array Exception//Index Array Exception
        if(ypos+ii >MAPY-1) continue;

        if(xpos+kk > MAX-1) continue;
        if(xpos+kk < 0) continue;

        if(tristmp[ypos+ii,xpos+kk] > 1) ff++;
    }
    if(ff>0)
    {
        if(direction==D_RIGHT) xpos--;
        if(direction==D_LEFT) xpos++;
        if(direction==D_DOWN) ypos--;

        return(FAIL);
    }
    else
    {
        for(ii=0; ii<MAPY; ii++)
        for(kk=0; kk<MAPX; kk++)
        { tris[ii,kk]=tristmp[ii,kk] }
    }
    return(SUCC);
}

Ex)
void tris_time_tick(object sender, ElapsedEventArgs e)
{
    int rc;

    draw();
    rc= common_check(D_DOWN);
    if(rc == FAIL) 
    {
        if(ypos== 0) stop();
        else
        {
            while(true)
            {
                if(check_horizon()==FAIL) break;
            }
            ____init("L");
        }
    }
}

 

'c# 언어' 카테고리의 다른 글

TrisPackage.Tris/delete_column();  (0) 2021.11.19
TrisPackage.Tris/definition/variables/controls  (0) 2021.11.17
TrisPackage.Tris/check_horizon();  (0) 2021.11.17
TrisPackage.Tris/tris_time_tick();  (0) 2021.11.17
TrisPackage.Tris/direct_check();  (0) 2021.11.17

int check_horizon()
{
    int ii,kk,ff;
    for(ii=0; ii<MAPY-1; ii++)
    {
        ff=0;
        for(kk=1; kk<MAPX-2; kk++)
        {
            if(tris[ii,kk] != 0)
            {
                if(tris[ii,kk] == tris[ii,kk+1]) ff++;
                else break;
            }
        }
        if(ff==MAPX-3)
        {
            for(kk=1; kk<MAPX-1; kk++) delete_column(ii,kk);
            score++;
            return(SUCC);
        }
    }
    return(FAIL);
}

'c# 언어' 카테고리의 다른 글

TrisPackage.Tris/definition/variables/controls  (0) 2021.11.17
TrisPackage.Tris/common_check();  (0) 2021.11.17
TrisPackage.Tris/tris_time_tick();  (0) 2021.11.17
TrisPackage.Tris/direct_check();  (0) 2021.11.17
TrisPackage.Tris/common_init();  (0) 2021.11.17

void tris_time_tick(object sender, ElapsedEventArgs e)
{
    int rc;   
    draw();
    rc=common_check(D_DOWN);
    if(rc==FAIL)
    {
        if(ypos==0) stop();
        else
        {
            while(true)
            {
                if(check_horizon()==FAIL) break;
            }
            common_init(FAIL);
        }
    }
}

'c# 언어' 카테고리의 다른 글

TrisPackage.Tris/common_check();  (0) 2021.11.17
TrisPackage.Tris/check_horizon();  (0) 2021.11.17
TrisPackage.Tris/direct_check();  (0) 2021.11.17
TrisPackage.Tris/common_init();  (0) 2021.11.17
time_tick - keyboard hit(Auto)  (0) 2021.11.16

int direct_check()
{
    while(true)
    {
        if(common_check(D_DOWN)==FAIL) break;
        draw();
    }
    while(true)
    {
        if(check_horizon()==FAIL) break;
    }
    common_init(FAIL);
    return(SUCC);
}

'c# 언어' 카테고리의 다른 글

TrisPackage.Tris/check_horizon();  (0) 2021.11.17
TrisPackage.Tris/tris_time_tick();  (0) 2021.11.17
TrisPackage.Tris/common_init();  (0) 2021.11.17
time_tick - keyboard hit(Auto)  (0) 2021.11.16
Console.SetCursorPosition Method try & catch  (0) 2021.11.11

void common_init(int idx)
{
    int ii,kk;
    if(idx==SUCC)
    {
        score=0;
        hyun=rr.Next() % MAXDESIGN;
        next=rr.Next() % MAXDESIGN;
    }
    else if(idx==FAIL)
    {
        hyun=next;
        next=rr.Next() % MAXDESIGN;
    }
    for(ii=0; ii<ARR; ii++)
    for(kk=0; kk<ARR; kk++)
    {
        design[ii,kk]=realdesign[hyun,ii,kk];
        tris[ypos+ii,xpos+kk]=design[ii,kk];
    }
}

/*time_tick - keyboard hit(Auto)*/
/*time_tick - keyboard hit(Auto)*/
/*time_tick - keyboard hit(Auto)*/

using System;
using System.IO;
using System.Timers;
using System.Threading;
using System.Runtime.InteropServices; //DLL Import

namespace ConsoleNoLogin
{
class Program
{
[DllImport("user32.dll")]
public static extern void keybd_event(byte vk, byte scan, int flags, ref int extrainfo);

static System.Timers.Timer timer1;
static System.Timers.Timer timer2;

static int index1=0;
static int index2=0;

static int ____minus=0;

const byte EscKey=27;
const int KEY_UP=0x0002;

const int REMAINED_TIME=60000;
const int SECOND_USER_DEFINE=1000;

static void Main(string[] args)
{
int toggle=0;

timer1 = new System.Timers.Timer();
timer2 = new System.Timers.Timer();

timer1.Interval = REMAINED_TIME;
timer2.Interval = SECOND_USER_DEFINE;

timer1.Elapsed += new ElapsedEventHandler(__tick_time_1);
timer2.Elapsed += new ElapsedEventHandler(__tick_time_2);

timer1.Start();
timer2.Start();

ConsoleKey key = ConsoleKey.NoName;

Logging("Start Timer");
while(true)
{
key=Console.ReadKey(true).Key;
if(key==ConsoleKey.Enter)
{
if(toggle==0)
{
timer1.Stop();
timer2.Stop();

toggle=100;

Logging("Stop Timer");
}
else
{
Logging("Start Timer");

index1=0;
index2=0;

timer1.Start();
timer2.Start();

toggle=0;
}
}
else
if(key==ConsoleKey.Spacebar)
{
timer1.Stop();
timer2.Stop();

break;
}
}

timer1.Elapsed -= __tick_time_1;
timer2.Elapsed -= __tick_time_2;
}

static void __tick_time_1(object sender, ElapsedEventArgs e)
{
int info=0;

index2=0;
index1++;

if(index1 == 100) index1=0;

Logging("MAIN(KEYBOARD HIT)");

keybd_event(EscKey,0,0,ref info);
Thread.Sleep(10);
keybd_event(EscKey,0,KEY_UP,ref info);
}

static void __tick_time_2(object sender, ElapsedEventArgs e)
{
index2++;
____minus=REMAINED_TIME/SECOND_USER_DEFINE-index2;

Logging("SUB ");
}

static void Logging(string msg)
{
DateTime now = DateTime.Now;

if(msg=="Start Timer")
{
Console.WriteLine(">>>>[Start Timer]" + "    " + now.ToString("yyyy-MM-dd hh:mm:ss"));
Console.Title = ">>>>[Start Timer]" + "    " + now.ToString("yyyy-MM-dd hh:mm:ss");
}
else if(msg=="Stop Timer")
{
Console.WriteLine(">>>>[Stop Timer]" + "    " + now.ToString("yyyy-MM-dd hh:mm:ss"));
Console.Title = ">>>>[Stop Timer]" + "    " + now.ToString("yyyy-MM-dd hh:mm:ss");
}
else
{
Console.WriteLine(msg + ">>>>" + "    " + now.ToString("yyyy-MM-dd hh:mm:ss"));
Console.Title = msg + ">>>>" + "    " + now.ToString("yyyy-MM-dd hh:mm:ss");
}
}
}//end of class
}//end of namespace










/*Console.SetCursorPosition Method try & catch*/

class TrisClass
{
//definition empty ,,,,,
//variables empty ,,,,,
//controls empty ,,,,,
void draw()
{
string formattext="";
string succsign="{}';
string failsign="..";
int ii,kk,positionx=0,positiony=0;

now=DateTime.Now;
formattext="";
formattext=formattext+"Time:[" + now.ToString("yyyy-MM-dd HH:mm:ss") + "]";
try
{
Console.SetCursorPosition(positionx,positiony+0);
Console.Write(formattext);
}
catch(ArgumentOutOfRangeException e)
{
Console.Clear();
Console.WriteLine(e.Message);
}


for(ii=0; ii<MAPY-1; ii++)
{
formattext="";
for(kk=1; kk<MAPX-1; kk++)
{
if(tris[ii,kk] == 1) formattext=formattext+succsign;
else formattext=formattext+failsign;
}

try
{
Console.SetCursorPosition(positionx,positiony+2+ii);
Console.Write(formattext);
}
catch(ArgumentOutOfRangeException e)
{
Console.Clear();
Console.WriteLine(e.Message);
}
}

formattext="";
formattext=formattext+"Score:[" + score.ToString("0000") + "]";
try
{
Console.SetCursorPosition(positionx,positiony+0);
Console.Write(formattext);
}
catch(ArgumentOutOfRangeException e)
{
Console.Clear();
Console.WriteLine(e.Message);
}
}//end of method
}//end of class








/*ShowDialog호출시 SubForm에서 데이타 받기(set,get)*/
/*ShowDialog호출시 SubForm에서 데이타 받기(set,get)*/
/*ShowDialog호출시 SubForm에서 데이타 받기(set,get)*/

/*FILENAME:UAPCFGM0151.cs*/

public class UAPCFGM0151
{
public string __query_1 = string.Empty;
public string __query_2 = string.Empty;
public string __query_3 = string.Empty;

public string Query_1
{
get { return __query_1; }
set { __query_1 = value; }
}
public string Query_2
{
get { return __query_2; }
set { __query_2 = value; }
}
public string Query_3
{
get { return __query_3; }
set { __query_3 = value; }
}

            public void running()
{
Query_1 = string.Foramt(@"INSERT INTO IMT_MST_LOGFILE({0},'{1}','{2}','{3}')",
itemIDInsertOnlyTxt.Text, filePath.Text, filePath.Text, filePath.Text);

Query_2 = string.Foramt(@"INSERT INTO IMT_MST_LOGFILE({0},'{1}','{2}','{3}')",
itemIDInsertOnlyTxt.Text, filePath.Text, filePath.Text, filePath.Text);

Query_3 = string.Foramt(@"INSERT INTO IMT_MST_LOGFILE({0},'{1}','{2}','{3}')",
itemIDInsertOnlyTxt.Text, filePath.Text, filePath.Text, filePath.Text);
}
}

/*FILENAME:UAPCFGM0150.cs*/

public class UAPCFGM0150
{
public static void Main()
{
UAPCFGM0151 subForm = new UAPCFGM0151();

if(subForm.ShowDialog() == DialogResult.OK)
{
MessageBox.Show(subForm.Query_1.ToString());
MessageBox.Show(subForm.Query_2.ToString());
MessageBox.Show(subForm.Query_3.ToString());
}
}
}



+ Recent posts