/*--------------------------------------------------------------------*/
/*--------------------------------------------------------------------*/
FILENAME:TrisProblem.java
Compile:javac TrisProblem.java
Execution: java TrisProblem.class
/*--------------------------------------------------------------------*/
/*--------------------------------------------------------------------*/

/*--------------------------------------------------------------------*/
package Tris.TrisPackage

/*--------------------------------------------------------------------*/
import java.io.Console;
/*--------------------------------------------------------------------*/
/*--------------------------------------------------------------------*/
class TrisProblem
{
public static void main(String[] args) 
{
//System.out.println("Hello World!");
TrisCls nm = new TrisCls();
nm.running();
}
}

/*--------------------------------------------------------------------*/
/*--------------------------------------------------------------------*/
class TrisCls
{
//definition
final int MAPY=22;
final int MAPX=40;
final int MAXDESIGN=10;
final int ARR=3;
final int D_RRIGHT=1000;
final int D_LEFT=1002;
final int D_DOWN=1003;
final int TRUE=1;
final int FAIL=0;

//variables
int[][] tris = new int[MAPY][MAPX];
int[][] design = new int[ARR][ARR];
int xpos,ypos,score;
int hyun,next;

//int[][][] realdesign = new int[MAXDESIGN][ARR][ARR];
int[][][] realdesign =
{
{{1,1,1},{1,1,1},{1,1,1}},
{{1,1,1},{1,1,1},{1,1,1}},
{{1,1,1},{1,1,1},{1,1,1}},
{{1,1,1},{1,1,1},{1,1,1}},
{{1,1,1},{1,1,1},{1,1,1}},
{{1,1,1},{1,1,1},{1,1,1}},
{{1,1,1},{1,1,1},{1,1,1}},
{{1,1,1},{1,1,1},{1,1,1}},
{{1,1,1},{1,1,1},{1,1,1}},
{{1,1,1},{1,1,1},{1,1,1}}
};
//control

//method
public void running()
{
//
}
}
/*--------------------------------------------------------------------*/
/*--------------------------------------------------------------------*/

#자바 네이티브 인터페이스(Java Native Interface, JNI)

자바 네이티브 인터페이스(Java Native Interface, JNI)는 자바 가상 머신(JVM)위에서 실행되고 있는 자바코드가 네이티브 응용 프로그램(하드웨어와 운영 체제 플랫폼에 종속된 프로그램들) 그리고 C, C++ 그리고 어샘블리 같은 다른 언어들로 작성된 라이브러리들을 호출하거나 반대로 호출되는 것을 가능하게 하는 프로그래밍 프레임워크이다.

1. 증권정보홈페이지에서 JNI사용하기
1.1 RcvTData -> ReadQData -> Shared Memory(Linux)
1.2 Shared Memory(Linux)를 java를 이용해서 HTML로 보여주기 위해서는 JNI가 필요하다.

1.3 Shared Memory(Linux)를 참조하는 함수(윈도우에서 DLL과 동일)를, 즉 so파일로 만들어야 한다.
1.4 지수,주식,elw,공통의 4가지 so파일로 만들기로 한다.
1.5 libCommonShm.so, libElwShm.so, libJongShm.so, libJisuShm.so 로 만든다.

1.7 즉 결론적으로 Shared Memory(증권정보데이타)를 java에서 호출, 데이타를 사용할수 있다.

사용예)
JongmokMast ksejmast = new JongmokMast();
ksejmast.setMemType(21);
ksejmast.setMarket("A");
ksejmast.setCode("A005930");
ksejmast.setData();

ShmMap_JMAST shm_jmast = new ShmMap_JMAST();
shm_jmast.setCommarea(ksejmast.getData());

String kijun = shm_jmast.get(shm_jmast.KIJUN);
String hyun = shm_jmast.get(shm_jmast.HYUN);
String open = shm_jmast.get(shm_jmast.OPEN);
String jang_flag = shm_jmast.get(shm_jmast.JANG_FLAG);

 

#JavaScript TeTTris Game 프로그램 코드(4*4 배열모양)

____no_ajax_tris_4_4.html
0.02MB

 

 

<script type="text/javascript">

/*const define variable*/
var ARR_CNT_IDX = 4;

/*design variable definition*/
var realdesign1 = [0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0];
var realdesign2 = [0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0];
var realdesign3 = [0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0];
var realdesign4 = [0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0];
var realdesign5 = [0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0];
var realdesign6 = [0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0];
var realdesign7 = [0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0];
/*function definition*/

 

</script>

 

 

#JavaScript TeTTris Game 프로그램 코드(3*3배열모양)

 

____real_fast_no_ajax_tris.html
0.02MB

 

#주요코드

<script type="text/javascript">

var design = new Array(3,3)

/*variable definition*/

var realdesign1 = [0,1,1,1,1,0,0,0,0];

var realdesign2 = [0,1,1,1,1,0,0,0,0];

 

function design_init(____desc)

{

    if(____desc==1) design=realdesign1;

    else design=realdesign2;

}

</script>

첨부파일.확인. 문의는 xterm92@naver.com

#JavaScript Candle Chart

 

 

candle.html
0.00MB

 

 

exporting.js
0.02MB

 

 

highstock.js
0.37MB

 

[{"date":1455699200,"high":0.00971537,"low":0.00971537,"open":0.00971537,"close":0.00971537,"volume":0,"quoteVolume":0,"weightedAverage":0.00971537},{"date":1455710400,"high":0.00978987,"low":0.0089,"open":0.009716,"close":0.00933999,"volume":2860.36726244,"quoteVolume":307623.36565991,"weightedAverage":0.00929827},{"date":1455724800,"high":0.0103898,"low":0.00930001,"open":0.00933999,"close":0.0094,"volume":2919.83796807,"quoteVolume":298145.85276802,"weightedAverage":0.00979332},{"date":1455739200,"high":0.00950994,"low":0.00825017,"open":0.00934037,"close":0.0090876,"volume":6306.93897676,"quoteVolume":714651.82207307,"weightedAverage":0.00882519},{"date":1455753600,"high":0.00909248,"low":0.008,"open":0.0090876,"close":0.00858202,"volume":4576.61493894,"quoteVolume":543271.63733905,"weightedAverage":0.00842417},{"date":1455768000,"high":0.00895382,"low":0.00845001,"open":0.0085575,"close":0.00872019,"volume":1281.31473149,"quoteVolume":148522.05236394,"weightedAverage":0.0086271},{"date":1455782400,"high":0.0122,"low":0.00872019,"open":0.00872019,"close":0.01030435,"volume":10032.78128347,"quoteVolume":976189.97115582,"weightedAverage":0.01027748}]

 

 

위의 date는 유닉스타임입니다.

유닉스타임을 날짜로 변환(Unix timestamp to DateTime)하면

 

1. 유닉스 타임
1455699200
 
2. KST(한국표준시)
유닉스 타임 변환후 변환날짜
2016-02-17 17:53:20
20160217175320

3. KST
2016. 2. 17. 오후 5:53:20

 

 

 

 

____real_fast_no_ajax_hexa.html
0.02MB

 

 

#AJAX를 사용할 경우에(was 서버를 경우하게 되면), 2인 이상의 네트웍크 헥사를 구성할수 있습니다.

#AJAX를 사용할 경우에(was 서버를 경우하게 되면), 2인 이상의 네트웍크 헥사를 구성할수 있습니다.

/*-------------------

 * static 키워드를 사용한 변수는 클래스가 메모리에 올라갈 때 자동으로 생성이 됩니다. 
인스턴스 생성 없이 바로 사용이 가능한 것이죠. 
이런 특성 때문에 프로그램 내에서 공통으로 사용되는 데이터들을 관리할 때 이용합니다. 
자바 프로그램에서는 공통 로직이 들어가는 유틸 기능을 static 으로 작성하곤 합니다. 
이런 static 은 남발해서는 안되며 공통으로 값을 유지하고 싶을 때만 사용합니다.

*/

 

public class StaticSample02 {
    public static void main(String args[]) {

        Card c1 = new Card();
        c1.kind = "Heart";
        c1.number = 7;

        System.out.println("==> 인스턴스 함수 호출");
        System.out.println("totalWidth() : " + c1.totalWidth());

        System.out.println("==> static 함수 호출 ");
        System.out.println("totalWidth() : " + Card.totalWidth(10, 20));
    }
}

 

class Card {

    String kind;      // 카드 종류
    int number;       // 카드 숫자
    int width = 10;   // 카드 넓이
    int height =  25; // 카드 높이

    public int getNumber() {
        return number;
    }
    public int totalWidth() {
        return width * height;
    }
    public static int totalWidth(int width, int height) {
        return width * height;
    }
}

 

/*--------결과 
==> 인스턴스 함수 호출
totalWidth() : 250
==> static 함수 호출 
totalWidth() : 200 

--------------------------------------*/


import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;

public class AES128 {


 public static String key = "AAAAAAAAAAAAAAAA";
 
     public static void main(String[] args) {
         String message = "ABCDEFGHIJKLMNOPQRSTUABCDEFGHIJKLMNOPQRSTUABCDEFGHIJKLMNOPQRSTU";
  
         AES128 aes128 = new AES128();
  
         try 
         { 
            String encrypt = aes128.encrypt(message);
            System.out.println("[ORIGIN  STR ]= " + message);
            System.out.println("[ENCRYPT STR ]= " + encrypt);
           
            String decrypt = aes128.decrypt(encrypt);
            System.out.println("[DECRYPT STR ]= " + decrypt);
         } 
         catch (Exception e) 
         {
            e.printStackTrace();
         }
     }
     public byte[] hexToByteArray(String hex) {
        if (hex == null || hex.length() == 0) {
            return null;
        }

        byte[] ba = new byte[hex.length() / 2];
        
        for (int i = 0; i < ba.length; i++) {
            ba[i] = (byte) Integer.parseInt(hex.substring(2 * i, 2 * i + 2), 16);
        }
        
        return ba;
     }
     public String byteArrayToHex(byte[] ba) {
        if (ba == null || ba.length == 0) {
            return null;
        }

        StringBuffer sb = new StringBuffer(ba.length * 2);
        String hexNumber;
        
        for (int x = 0; x < ba.length; x++) {
            hexNumber = "0" + Integer.toHexString(0xff & ba[x]);
            sb.append(hexNumber.substring(hexNumber.length() - 2));
        }
        
        return sb.toString();
     }
     public String encrypt(String message) throws Exception {
  
        AES128 aes128 = new AES128();
  
        SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes(), "AES");

        Cipher cipher = Cipher.getInstance("AES");
        cipher.init(Cipher.ENCRYPT_MODE, skeySpec);

        byte[] encrypted = cipher.doFinal(message.getBytes());
        
        return aes128.byteArrayToHex(encrypted);
     }
     public String decrypt(String encrypted) throws Exception {
  
        AES128 aes128 = new AES128();
  
        SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes(), "AES");

        Cipher cipher = Cipher.getInstance("AES");
        cipher.init(Cipher.DECRYPT_MODE, skeySpec);
        
        byte[] original = cipher.doFinal(aes128.hexToByteArray(encrypted));
      
        String originalString = new String(original);
        
        return originalString;
    }
}

 

/*결과

[ORIGIN  STR ]= ABCDEFGHIJKLMNOPQRSTUABCDEFGHIJKLMNOPQRSTUABCDEFGHIJKLMNOPQRSTU
[ENCRYPT STR ]= 1eb6a5b8559de7cf7936ad108fb1bd2cd323454cfb4097b6bc53e670a51e9067
deaeebd8095ae5a76ebf9797c551bc0ab0ebca77dc7be9dd95452b34e90f845c
[DECRYPT STR ]= ABCDEFGHIJKLMNOPQRSTUABCDEFGHIJKLMNOPQRSTUABCDEFGHIJKLMNOPQRSTU

*/​ 

+ Recent posts