fc2ブログ

ドラクエ的ゲームのソース(オープンソース)を公開/ハングル検定4級は伊達じゃない


女神転生2
こんなゲームを作りたい。

とにかく、いろいろなゲームを作りたいという欲求はフツフツとしている。
とくに、自分はグラフィックを描くのが得意なので、それを活かしてたくさんのキャラが登場するRPGなんかを作りたいわけです。
ポケモン、女神転生、ドラクエ、FF

自分のプログラミングの能力は、・・・発展途上、で、色々なソースを読み込むことで力が付くのだと信じている。規則、原則はどれも同じ、ただ長いから理解できないだけ、でも、複雑で長いコードも基礎基本の組み合わせでしかない。

yuusha
ドラクエ的なゲームをJavaで作りたいと思っていた。
以前、Javascript版はあったので、Javaに移植すればよかったんだけど、でも、まさに、ドンピシャのが某サイトにあったので、そのソースを見て勉強することにしました。

以下、ドラクエ的ゲームのソースです。

長いので、興味の無い人は読み飛ばしてください。

書いたのはどっかのプログラマです。


以下引用元サイト
http://www.harukitchen.com/rpg_programming/18/18.htm
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.io.*;
import java.net.URL;
import java.util.Random;

public class FirstRpg extends Applet implements Runnable,KeyListener{
Image buffer;//イメージバッファ
Graphics bufferg;//バックバッファ
Random rand = new Random();//乱数

volatile Thread th;//スレッド

final int CHIP_SIZE=32;//チップサイズ
final int MAX_EVENT_TABLE=100;//イベントテーブルの最大個数
final int KAKUHO_NO=99;//確保イベントNO(キャラが次に着く位置)
final int WORLD_MAP=50;//世界マップの番号

final int CMAX=3;//パーティ人数

float FrameTime;//1フレームあたりの時間(秒)
long waitTime;//現在時刻保存用

Image chara_image;//キャラチップ画像

MyClass My = new MyClass(0);//自分クラス宣言(チップNO 0)
//仲間クラス宣言
PartyClass party[] = {
new PartyClass(9),
new PartyClass(68),
new PartyClass(69),
new PartyClass(70),
};

//方向テーブル(上下左右不動の順)
int dir_x[] = {0,0,-1,+1,0};
int dir_y[] = {-1,+1,0,0,0};

//キーの状態(離している=0、押し続けている=1、押した瞬間=2)
int key_states[] = new int[6];//4方向(上=0,下=1,左=2,右=3)+Zキー=4、Xキー=5

//マップデータ
int now_map_no;//現在のマップNO
short map_data[][] = new short[256][256];//256×256
int map_width,map_height;//マップの横幅、高さ(チップ数)
Image map_image;//マップチップ画像
ClassLoader classLoader = this.getClass().getClassLoader();

//イベントデータ
int event_data[][] = new int[256][256];
//イベントテーブル
Event eventtbl[] = new Event[MAX_EVENT_TABLE];
int event_num;//そのマップでのイベントの個数

// イベントファイル用バッファ
char gl_event_file_buffer[] = new char[ 4096 ];

//ゲーム進行スイッチ
boolean game_switch[] = new boolean[128];

//------------ゲーム管理フラグ-------------
//0=マップ移動(黒幕下がる)
//1=マップ移動(黒幕上がる)
//2=イベント中
//3=会話イベント
//4=文字が流れている途中
//7=デバッグフラグ
//8=テーブル更新予約フラグ
//9=ダイアログ中
//10=スクリプトスキップ中
//11=イベント強制移動中
//12=主人公強制移動中
//13=ゲーム終了スタート
//14=画面中央にENDの文字
//15=ゲーム完全終了
boolean game_flags[] = new boolean[16];

//------------ゲーム管理ウェイト(floatバッファにも使う)-----------
//0=黒い幕の昇降ウェイト
//1=会話の流れる文字ウェイト
float game_waits[] = new float[8];

//------------ゲーム管理バッファ-----------
//0=現在のイベントNO
//1=読み込むマップNO
//2=移動先X座標
//3=移動先Y座標
//4=移動後向き
//5=現在のスクリプトの行
//6=会話中の文字の位置。
//7=現在選択中選択肢
//8=選択肢の数
int game_buffer[] = new int[16];

//------------ゲーム管理文字列-----------
//0=現在のスクリプトファイル名
//1=現在の会話内容
//2=分岐1
//3=分岐2
//4=分岐3
String game_strings[] = new String[8];
char game_talks[] = new char[256];//会話内容char配列

//当たり判定用のセルテーブル(マップ)
MapCell celltbl[] = {
new MapCell(0,true), //平原
new MapCell(1,true), //芝1
new MapCell(2,true), //芝2
new MapCell(3,true), //家
new MapCell(4,false), //木1
new MapCell(5,false), //木2
new MapCell(6,true), //城
new MapCell(7,false), //海
new MapCell(8,true), //塔(上)
new MapCell(9,true), //塔(下)
new MapCell(10,true), //洞窟
new MapCell(11,false), //岩山
new MapCell(12,true), //宇宙1
new MapCell(13,true), //宇宙2
new MapCell(14,false), //クリスタル
new MapCell(15,true), //宇宙の城
new MapCell(16,true), //真っ黒
new MapCell(17,true), //茶色
new MapCell(18,false), //灰色
new MapCell(19,false), //ツボ
new MapCell(20,true), //空
new MapCell(21,true), //地面2
new MapCell(22,true), //宝箱
new MapCell(23,true), //青壁
new MapCell(24,true), //黒
new MapCell(25,false), //机
new MapCell(26,false), //川1
new MapCell(27,false), //川2
new MapCell(28,false), //洞窟岩
new MapCell(29,true), //洞窟地面
new MapCell(30,true), //草原1
new MapCell(31,true), //草原2
new MapCell(32,true), //雪地面
new MapCell(33,true), //雪芝1
new MapCell(34,true), //雪芝2
new MapCell(35,true), //雪家
new MapCell(36,false), //雪木
new MapCell(37,true), //雪城
new MapCell(38,false), //雪池
new MapCell(39,true), //雪洞窟
new MapCell(40,true), //雪木
new MapCell(41,true), //雪芝3
new MapCell(42,true), //木の壁
new MapCell(43,true), //橋
new MapCell(44,true), //階段1
new MapCell(45,true), //階段2
};

//当たり判定用のセルテーブル(キャラ)
CharaCell charatbl[] = new CharaCell[256];

//マップデータ構造
MapFile mapfiles[] = {
new MapFile(1,"フィールド1",20,12),
new MapFile(2,"別荘の庭",20,12),
new MapFile(3,"別荘",20,12),
new MapFile(4,"二階",20,12),
new MapFile(5,"一階",20,12),

new MapFile(6,"学校フィールド",20,12),
new MapFile(7,"学校1階",20,24),
new MapFile(8,"学校2階",20,12),
new MapFile(9,"理科室",20,12),
new MapFile(10,"運動場",20,12),

new MapFile(11,"謎の世界",80,36),
new MapFile(12,"洞窟1",20,12),
new MapFile(13,"洞窟2",20,12),
new MapFile(14,"洞窟3",20,12),
new MapFile(15,"洞窟4",20,12),

new MapFile(16,"おちかた村",40,24),
new MapFile(17,"カワニシの塔1",20,12),
new MapFile(18,"カワニシの塔2",20,12),
new MapFile(19,"カワニシの塔3",20,12),
new MapFile(20,"カワニシの塔4",20,12),

new MapFile(21,"イクノ城1",20,48),
new MapFile(22,"イクノ城2",20,24),
new MapFile(23,"イクノ城3",20,12),
new MapFile(24,"魔王の間",20,12),
};
final int MAXMAPNUM = 24;//マップの個数

//初期化
public void init(){
System.out.println("init()");

int i;

Dimension d = getSize();
MediaTracker mediaT = new MediaTracker(this);

//キャラチップ画像ロード
// getImage(URL)
// chara_image = getImage( getDocumentBase(),"chara_chip.gif");
chara_image = getImage( classLoader.getResource("chara_chip.gif") );
mediaT.addImage(chara_image,0);

//マップチップ画像ロード
//map_image = getImage(getDocumentBase(),"map_chip.gif");
map_image = getImage( classLoader.getResource("map_chip.gif") );
mediaT.addImage(map_image,0);

//ロード待ち
try{
mediaT.waitForAll();
}catch(InterruptedException e){}

//透明色指定
chara_image = Harulib.getAlphaImage(chara_image,new Color(0,255,0));

//イベントテーブル初期化
for(i=0;i eventtbl[i] = new Event(i);
}

//キャラのセルテーブル初期化(大抵当たり判定を付ける)
for(i=0;i<256;i++){
//階段、回復、255のみ除去
if(i==88 || i==89 || i==111 || i==255){
charatbl[i] = new CharaCell(i,true);
}else{
charatbl[i] = new CharaCell(i,false);
}
}

if( true ){
//主人公の初期座標
//パラメータを取得
game_buffer[2] = Integer.parseInt( getParameter("x") );
game_buffer[3] = Integer.parseInt( getParameter("y") );

//マップデータロード
readMapData( Integer.parseInt( getParameter("map") ) );

My.moving_dir = Integer.parseInt( getParameter("dir") );
}else{
//主人公の初期座標
//パラメータを取得
game_buffer[2] = 12;
game_buffer[3] = 5;

//マップデータロード
readMapData( 1 );

My.moving_dir = 2;
}

My.speed = 128;//主人公の速度。1秒で128ドット。

//現在時刻保存
waitTime=System.currentTimeMillis();

addKeyListener(this);//キー入力リスナー
// requestFocus();//フォーカス取得

//バッファを作成する
buffer = createImage(d.width,d.height);
}

//スタート(initの次に呼ばれる。最小化から復帰したときも呼ばれる。)
public void start(){
System.out.println("start()");
if(th == null){
th = new Thread(this);
th.start();
}
}

//ストップ(ウインドウが消えると呼ばれる。最小化でも。)
public void stop(){
System.out.println("stop()");
th = null;
}

//マップデータを読み込む
private void readMapData(int mapno){
System.out.println("readMapData()");

int i,j,x,y;
InputStream is = null;
int id;
String sid;

//マップデータ&イベントデータリセット
for(i=0;i<256;i++){
for(j=0;j<256;j++){
event_data[i][j]=0;
map_data[i][j]=0;
}
}

now_map_no = mapno;

//横幅、縦幅決定
id=1;
for(i=0;i if(mapno == mapfiles[i].no){
id = i;
break;
}
}

map_width = mapfiles[id].width;
map_height = mapfiles[id].height;

//文字列変換
if(mapfiles[id].no <= 9){sid = "0"+mapfiles[id].no;}
else{sid = ""+mapfiles[id].no;}

//---------マップデータ読み込み-------------
System.out.println("Load:mapno="+sid);

String filename = "mapdata/map"+sid+".dat";


try{
//is = new URL(getDocumentBase(),filename).openStream();
is = classLoader.getResourceAsStream( filename );
x=y=0;
while((i=is.read()) != -1){
map_data[x][y]=(short)i;
if(++x == map_width){
++y;
x=0;

if(y==map_height)break; //終了条件
}
}
is.close();
}catch(IOException e){}

//---------イベントデータ読み込み-------------
System.out.println("Load:event="+sid);

filename = "eventdata/event"+sid+".dat";

try{
//is = new URL(getDocumentBase(),filename).openStream();
is = classLoader.getResourceAsStream( filename );

x=y=0;
while((i=is.read()) != -1){
event_data[x][y]=(short)i;

//もし1以上のデータがあればイベントテーブルに代入
if(event_data[x][y] >= 1){
eventtbl[ event_data[x][y] ].x = x;
eventtbl[ event_data[x][y] ].y = y;
eventtbl[ event_data[x][y] ].px = x*CHIP_SIZE;
eventtbl[ event_data[x][y] ].py = y*CHIP_SIZE;

//その他初期化
eventtbl[ event_data[x][y] ].sum_move_length = 0.0f;
}

if(++x == map_width){
++y;
x=0;

if(y==map_height)break; //終了条件
}
}
is.close();
}catch(IOException e){}

//イベントを全てアクティブにする。0以外。
for(i=1;i eventtbl[i].sh = true;
}


//------------イベントテーブル更新----------------
Load_Event_Table();


//主人公の初期座標
My.x = game_buffer[2];
My.y = game_buffer[3];
My.moving_dir = game_buffer[4];

My.px = My.x*CHIP_SIZE;
My.py = My.y*CHIP_SIZE;

//仲間座標を同じにする。
for(i=0;i party[i].x =My.x;
party[i].y = My.y;
party[i].px =My.px;
party[i].py = My.py;
party[i].moving_dir = 4;
}

//フレーム時間初期化(ロード時間が長いので)
waitTime = System.currentTimeMillis();
}

//イベントテーブル更新
void Load_Event_Table(){
int i,j,x,y;
InputStream is = null;
int id;
String sid;
char line[] = new char[256];
String str="";
int no=0;//イベントNO保存用
int sw=0;//スイッチ
int maxno=0;

//マップNOから添え字取得
id=1;
for(i=0;i if(now_map_no == mapfiles[i].no){
id = i;
break;
}
}
//文字列変換
if(mapfiles[id].no <= 9){sid = "0"+mapfiles[id].no;}
else{sid = ""+mapfiles[id].no;}

System.out.println("Load:eventtable="+sid);
String filename = "eventtable/"+sid+".txt";

x=y=0;
try{
// is = new URL(getDocumentBase(),filename).openStream();
is = classLoader.getResourceAsStream( filename );

while((i=is.read()) != -1){
//一行ずつ読み込む
line[x++] = (char)i;
//System.out.print((char)i);

//改行がきた場合
if(i == '\r'){continue;}
if(i == '\n'){
//改行コード以降切り捨てて、String型を読み込む
String sline = Harulib.HaruChop(line);

//条件を読む
//現在はゲーム進行スイッチのみ
str = Harulib.HaruSplit(sline,"<>",0);

//NULLと書いてるものはそのまま実行
if(str.equals("NULL")){;}
else{
//数字のものはゲーム進行スイッチにより読み込む
sw = Integer.parseInt(str);

//条件がマッチしているか?
if(game_switch[sw]){
;//続ける
}else{
//この行は破棄
x=0;
y++;
continue;
}
}

//イベントNO
str = Harulib.HaruSplit(sline,"<>",1);
no = Integer.parseInt(str);
eventtbl[no].no = Integer.parseInt(str);
//System.out.println("y="+y+" eventtbl[y].no="+eventtbl[y].no);

//スクリプト名
str = Harulib.HaruSplit(sline,"<>",2);
eventtbl[no].filename = str;

//グラフィックス
str = Harulib.HaruSplit(sline,"<>",3);
eventtbl[no].gra = Integer.parseInt(str);
//System.out.println("y="+y+" eventtbl[y].gra="+eventtbl[y].gra);

//移動タイプ
str = Harulib.HaruSplit(sline,"<>",4);
eventtbl[no].type_of_move = Integer.parseInt(str);
eventtbl[no].speed = 32;

//イベントタイプ
str = Harulib.HaruSplit(sline,"<>",5);
eventtbl[no].type_of_event = Integer.parseInt(str);

//最大値保存
if(maxno < no){
maxno = no;
}

x=0;
y++;
}
}
is.close();
}catch(IOException e){}

//0を作る
eventtbl[0].gra = 255;

//イベントの数(最大値)
event_num = maxno+1;

//KAKUHO_NO番目に入れる
eventtbl[KAKUHO_NO].gra = 254;//透明で当たる
eventtbl[KAKUHO_NO].type_of_event = 0;

//自動的に始まるイベントがあった場合、それを起動
for(i=0;i if(eventtbl[i].sh && eventtbl[i].type_of_event == 2){
game_flags[2] = true;
game_buffer[0] = i;

// 一行目を読み込む
game_buffer[5] = 0;
//スクリプトファイル名決定
game_strings[0] = "eventscript/"+eventtbl[ game_buffer[0] ].filename+".txt";

// バッファに格納
LoadFileToBuffer( game_strings[0] );
break;
}
}
}


//実行
public void run(){
System.out.println("run()");

Thread thisThread = Thread.currentThread();
try{
//ここがゲームループ
while(th == thisThread){
//1フレーム時間計算(秒)
FrameTime = ( System.currentTimeMillis()-waitTime ) /1000.0f;
waitTime = System.currentTimeMillis();

action();//処理
repaint();//描画

//ちょっと休憩(0.01秒)
Thread.sleep(10);

if(game_flags[15]){
break;
}
}
th = null;
}
catch(Exception e){
}

System.out.println("endrun()");
}

//描画更新
public void update(Graphics g){
paint(g);
}

//描画
public void paint(Graphics g){
Dimension d = getSize();
int i;
int x,y;//描画位置

//バッファのグラフィックコンテキストを取得する
if(bufferg == null){
bufferg = buffer.getGraphics();
}

//バッファを描画する
bufferg.setColor(Color.white);
bufferg.fillRect(0,0,d.width,d.height);

//マップ描画
DispMap(bufferg);

//イベント描画
DispEvent(bufferg);

//主人公描画
DispMy(bufferg);

//エフェクト

//黒い幕(マップ移動時、ゲーム終了時)
if(game_flags[0] || game_flags[1] || game_flags[13]){
bufferg.setColor(Color.black);
bufferg.fillRect(0,0,d.width,(int)(d.height*game_waits[0]));
}

//会話(ダイアログ中も表示)
if(game_flags[3] || game_flags[9]){
//ウインドウを作る(下1/3)
bufferg.setColor(Color.black);
bufferg.fillRect(0,2*d.height/3,d.width,d.height/3);

//文字
bufferg.setColor(Color.white);

//一文字ずつ書いていく
x=y=0;
for(i=0;i //19文字で改行
if(x==19){
x=0;
y++;
}
bufferg.drawString(String.valueOf(game_talks[i]),10+x*16,2*d.height/3+20 + y*16);
x++;
}
}

//ダイアログ
if(game_flags[9]){
//ウインドウを作る(真ん中上)
bufferg.setColor(Color.black);
bufferg.fillRect(d.width/4,d.height/4,d.width/2,(d.height/12) * game_buffer[8]);

//文字配置
bufferg.setColor(Color.white);
for(i=0;i bufferg.drawString(game_strings[i+2],d.width/4+20,d.height/4 + 14+i*16);
}

//カーソル
//キャラチップからグラフィックスの位置を取得
x = (197%16)*CHIP_SIZE;
y = (197/16)*CHIP_SIZE;

bufferg.drawImage(chara_image,
d.width/4, d.height/4 + 2 +game_buffer[7]*16,
d.width/4+CHIP_SIZE/2, d.height/4 + 2+game_buffer[7]*16+CHIP_SIZE/2,
x,y,x+CHIP_SIZE/2,y+CHIP_SIZE/2,this);
}

//ゲームEND
if(game_flags[14]){
bufferg.setColor(Color.white);
bufferg.drawString("Fin",d.width/2-18,d.height/2);
}


//フォント
if(game_flags[7]){
bufferg.setColor(Color.black);
bufferg.drawString("マップサイズ("+map_width+","+map_height+")。イベントの個数("+event_num+")",10,20);
bufferg.drawString("現在の座標はmap(" +My.x+ "," +My.y+ ")。" +
"p(" +(int)My.px+ "," +(int)My.py+ ")。",10,40);

//イベント中
if(game_flags[2]){
bufferg.drawString("イベント中",10,60);
}
}

//ウインドウを更新する
g.drawImage(buffer,0,0,this);
}


//---------------------マップ描画------------------------
void DispMap(Graphics bufferg){
int i,j,x,y;
int cell_data,gra;
Dimension d = getSize();

//画面中心座標を主人公の位置から取得
int view_x = (int)My.px + CHIP_SIZE/2;
int view_y = (int)My.py + CHIP_SIZE/2;

//カメラが行ける範囲(マップの端-画面半分)
int lim_left = d.width/2;
int lim_right = map_width * CHIP_SIZE - d.width/2;
int lim_top = d.height/2;
int lim_bottom = map_height * CHIP_SIZE - d.height/2;

//主人公がマップの端寄りの場合、カメラ固定
//世界マップ以外
if(now_map_no != WORLD_MAP){
if(My.px + CHIP_SIZE/2 < lim_left){
view_x = lim_left;
}
if(My.px + CHIP_SIZE/2 > lim_right){
view_x = lim_right;
}
if(My.py + CHIP_SIZE/2 < lim_top){
view_y = lim_top;
}
if(My.py + CHIP_SIZE/2 > lim_bottom){
view_y = lim_bottom;
}
}

//マップデータの範囲(主人公から6チップ分)
int start_x;
int start_y;
int end_x;
int end_y;

start_x = view_x/CHIP_SIZE - 6;
start_y = view_y/CHIP_SIZE - 6;
end_x = view_x/CHIP_SIZE + 6;
end_y = view_y/CHIP_SIZE + 6;

//描画位置IJ
//世界マップのみ
int disp_start_i,disp_i,disp_start_j,disp_j;
disp_start_i = start_y;
disp_start_j = start_x;

//限界
//世界マップ以外
if(now_map_no != WORLD_MAP){
if(start_x < 0){start_x = 0;}
if(start_y < 0){start_y = 0;}
if(end_x > map_width){end_x = map_width;}
if(end_y > map_height){end_y = map_height;}
}else{
//ループ
//世界マップのみ
if(start_x < 0){start_x += map_width;}
if(end_x >= map_width){end_x -= map_width;}
if(start_y < 0){start_y += map_height;}
if(end_y >= map_height){end_y -= map_height;}
}

//描画位置
int dsp_x;
int dsp_y;

for(i=start_y,disp_i=disp_start_i; ;i++,disp_i++){
//iがマップ端の場合、0に。(世界マップのみ)
if(i == map_height && now_map_no == WORLD_MAP){i = 0;}
//終了
if(i == end_y){break;}

for(j=start_x,disp_j=disp_start_j; ;j++,disp_j++){
//jがマップ端の場合、0に。
if(j == map_width && now_map_no == WORLD_MAP){j = 0;}
//終了
if(j == end_x){break;}

//セルデータ取得
cell_data = map_data[j][i];

//セルデータからマップグラフィックスを取得
gra = celltbl[ cell_data ].gra;

//マップチップからグラフィックスの位置を取得
x = (gra%16)*CHIP_SIZE;
y = (gra/16)*CHIP_SIZE;

//マップ描画位置
if(now_map_no == WORLD_MAP){
dsp_x = disp_j*CHIP_SIZE - (view_x - d.width/2);
dsp_y = disp_i*CHIP_SIZE - (view_y - d.height/2);
}else{
dsp_x = j*CHIP_SIZE - (view_x - d.width/2);
dsp_y = i*CHIP_SIZE - (view_y - d.height/2);
}

bufferg.drawImage(map_image,dsp_x,dsp_y,
dsp_x+CHIP_SIZE,dsp_y+CHIP_SIZE,x,y,x+CHIP_SIZE,y+CHIP_SIZE,this);

//イベントがある場合はEマークを表示(デバッグ用)
if(event_data[j][i] >= 1 && game_flags[7]){
//グラフィックスの位置を取得
x = (13%16)*CHIP_SIZE;
y = (13/16)*CHIP_SIZE;

bufferg.drawImage(chara_image,dsp_x,dsp_y,
dsp_x+CHIP_SIZE,dsp_y+CHIP_SIZE,x,y,x+CHIP_SIZE,y+CHIP_SIZE,this);
}
}
}
}

//--------------イベント(キャラクター)描画------------------
void DispEvent(Graphics bufferg){
int i;
int dsp_x,dsp_y;
int x,y;
Dimension d = getSize();

//画面中心座標を主人公の位置から取得
int view_x = (int)My.px + CHIP_SIZE/2;
int view_y = (int)My.py + CHIP_SIZE/2;

//カメラが行ける範囲(マップの端-画面半分)
int lim_left = d.width/2;
int lim_right = map_width * CHIP_SIZE - d.width/2;
int lim_top = d.height/2;
int lim_bottom = map_height * CHIP_SIZE - d.height/2;

//主人公がマップの端寄りの場合、カメラ固定
//世界マップ以外
if(now_map_no != WORLD_MAP){
if(My.px + CHIP_SIZE/2 < lim_left){
view_x = lim_left;
}
if(My.px + CHIP_SIZE/2 > lim_right){
view_x = lim_right;
}
if(My.py + CHIP_SIZE/2 < lim_top){
view_y = lim_top;
}
if(My.py + CHIP_SIZE/2 > lim_bottom){
view_y = lim_bottom;
}
}

for(i=0;i dsp_x = (int)eventtbl[i].px - (view_x - d.width/2);
dsp_y = (int)eventtbl[i].py - (view_y - d.height/2);

//グラフィックスの位置を取得(アクティブ時)
if(eventtbl[i].sh && eventtbl[i].gra != 255){
x = (eventtbl[i].gra%16)*CHIP_SIZE;
y = (eventtbl[i].gra/16)*CHIP_SIZE;

bufferg.drawImage(chara_image,dsp_x,dsp_y,
dsp_x+CHIP_SIZE,dsp_y+CHIP_SIZE,x,y,x+CHIP_SIZE,y+CHIP_SIZE,this);
}
}

//仲間描画
for(i=CMAX-1;i>=0;i--){
if(!party[i].sh)continue;
dsp_x = (int)party[i].px - (view_x - d.width/2);
dsp_y = (int)party[i].py - (view_y - d.height/2);

//チップNO定義
int no;
if(party[i].moving_dir != 4){
no = party[i].chip_no + party[i].moving_dir*2 + My.anime_no;
}else{
no = party[i].chip_no;
}

x = (no%16)*CHIP_SIZE;
y = (no/16)*CHIP_SIZE;

bufferg.drawImage(chara_image,dsp_x,dsp_y,
dsp_x+CHIP_SIZE,dsp_y+CHIP_SIZE,x,y,x+CHIP_SIZE,y+CHIP_SIZE,this);
}
}


//--------------主人公描画------------------
void DispMy(Graphics bufferg){
int i,j,x,y;
int cell_data,gra;
Dimension d = getSize();

//カメラが行ける範囲(マップの端-画面半分)
int lim_left = d.width/2;
int lim_right = map_width * CHIP_SIZE - d.width/2;
int lim_top = d.height/2;
int lim_bottom = map_height * CHIP_SIZE - d.height/2;

//描画開始位置
int view_x = d.width/2 - CHIP_SIZE/2;
int view_y = d.height/2 - CHIP_SIZE/2;

//マップの端に近づいてる時(カメラが行けない範囲)
//通常マップ
if(now_map_no != WORLD_MAP){
if(My.px + CHIP_SIZE/2 < lim_left){
view_x = (int)My.px;
}
if(My.px + CHIP_SIZE/2 > lim_right){
view_x += (int)My.px + CHIP_SIZE/2 - lim_right;
}
if(My.py + CHIP_SIZE/2 < lim_top){
view_y = (int)My.py;
}
if(My.py + CHIP_SIZE/2 > lim_bottom){
view_y += (int)My.py + CHIP_SIZE/2 - lim_bottom;
}
}

//主人公描画

//チップNO定義
int no = My.chip_no + My.moving_dir*2 + My.anime_no;

//チップNOからグラフィックスの位置を取得
x = (no%16)*CHIP_SIZE;
y = (no/16)*CHIP_SIZE;

bufferg.drawImage(chara_image,view_x,view_y,
view_x+CHIP_SIZE,view_y+CHIP_SIZE,x,y,x+CHIP_SIZE,y+CHIP_SIZE,this);
}


//処理
public void action(){
int i;

//上下左右キー状態で移動処理
//エフェクト中、イベント中、会話中は受け付けない
if(game_flags[0] || game_flags[1] || game_flags[2] || game_flags[3]){;}
else{
KeyForMove();
}

//Zキー(決定キー)を押した時
if(key_states[4] == 2){
//決定キーのいろんな処理
ZAction();

//キーの状態を押し続けに変更。
key_states[4] = 1;
}

//Xキーを押した時(デバッグフラグ)
if(key_states[5] == 2){
game_flags[7] = !game_flags[7];
key_states[5] = 1;
}

//上下キーを押した時
for(i=0;i<2;i++){
if(key_states[i] == 2){
//上の場合
if(i==0){
if(game_buffer[7] > 0)game_buffer[7]--;
}
//下の場合
else if(i==1){
if(game_buffer[7] < game_buffer[8]-1)game_buffer[7]++;
}

//キーの状態を押し続けに変更。
key_states[i] = 1;
}
}

//移動中の場合
if(My.moving_flag){
MyMoving();
}

//イベント移動(エフェクト中、イベント中、会話中は受け付けない)
if(game_flags[0] || game_flags[1] || game_flags[2] || game_flags[3]){;}
else{
EventMove();
}

//イベント強制移動
if(game_flags[11]){
CharaMoving(eventtbl[ game_buffer[0] ]);
}
//主人公強制移動
if(game_flags[12]){
MyMoving();
}

//会話中の場合、文字が流れていく
if(game_flags[3]){
//0.03秒に1文字
game_waits[1] += FrameTime;
if(game_waits[1] >= 0.03f){
game_waits[1] = 0.0f;
game_buffer[6]++;
if(game_buffer[6] > game_strings[1].length()){
game_buffer[6] = game_strings[1].length();
//完了
game_flags[4] = false;
}
}
}

//マップ移動開始(幕閉じ)
if(game_flags[0]){
//黒い幕が降りてくる(1.1秒)
game_waits[0] += FrameTime;
if(game_waits[0] >= 1.1f){
game_flags[0] = false;
game_flags[1] = true;
//マップロード
readMapData(game_buffer[1]);
}
}
//マップ移動2(幕開け)
else if(game_flags[1]){
//黒い幕が上っていく(1.2秒)
game_waits[0] -= FrameTime;
if(game_waits[0] <= 0.0f){
game_flags[1] = false;
game_waits[0] = 0.0f;
}
}
//エンディング
if(game_flags[13]){
//黒い幕が降りてくる(1.1秒)
game_waits[0] += FrameTime;
if(game_waits[0] >= 1.1f){
game_flags[14] = true;
}
if(game_waits[0] >= 2.0f){
game_flags[15] = true;
}
}

//イベント中
if(game_flags[2]){
//マップ移動時、会話の時、ダイアログ中、強制移動は停止中
if(game_flags[0] || game_flags[1] || game_flags[3] || game_flags[9] ||
game_flags[11] || game_flags[12]){;}
else{
ActionScript();//スクリプト実行
}
}
}

//イベント移動開始
void EventMove(){
int i;
int ran;
int dir;
int next_x,next_y;
boolean ismove;

for(i=0;i //動くタイプの時
if(eventtbl[i].type_of_move == 1){
//休憩中の時
if(eventtbl[i].sum_move_length < 0.0f){
eventtbl[i].sum_move_length += FrameTime;
}else
//現在、移動中でないなら移動開始(2秒ペースで休憩)
if(!eventtbl[i].moving_flag){
//ランダムに方向を決める
ran=rand.nextInt();
if(ran<0){ran=-ran;}
dir = ran%4;//方向

//その方向は通行可能か?
next_x = eventtbl[i].x + dir_x[dir];
next_y = eventtbl[i].y + dir_y[dir];

//System.out.println("["+i+"]next("+next_x+","+next_y+")");

//領域外
if(next_x < 0 || next_x >= map_width ||
next_y < 0 || next_y >= map_height){
//通行不可
ismove = false;
}
//障害物
else if(!celltbl[ map_data[next_x][next_y] ].move_flag){
//通行不可
ismove = false;
}
//イベント
else if(event_data[next_x][next_y] >= 1){
//通行不可
ismove = false;
}
//主人公の位置
else if(next_x == My.x && next_y == My.y){
//通行不可
ismove = false;
}
//それ以外
else{
//通行可
ismove = true;

//移動開始
eventtbl[i].sum_move_length = 0.0f;
eventtbl[i].moving_dir = dir;

//移動先イベントデータにKAKUHO_NOを入れる
event_data[next_x][next_y] = KAKUHO_NO;
}

eventtbl[i].moving_flag = ismove;
}
//移動中の時
else{
//その方向に向かって移動
CharaMoving( eventtbl[i] );
}
}
}
}


//Zキーの処理
void ZAction(){
//ダイアログ中は決定
if(game_flags[9]){
game_flags[9] = false;
System.out.println("Done:Dialog");
}
//会話中の時はウインドウを消す(文字が流れ終わった時)
else if(game_flags[3] && !game_flags[4]){
game_flags[3] = false;
System.out.println("Done:Talk");
}
//そうでなくてイベント中でないなら、イベントチェック
else if(!game_flags[2]){
//その方向にイベントがあるかチェック
//決定ボタンが押されると実行するものを実行
check_event(My.x + dir_x[My.moving_dir] , My.y + dir_y[My.moving_dir],1);
}
}

//キー状態で移動処理
public void KeyForMove(){
int i;
int next_x,next_y;
boolean ismove;

//上下左右キー
for(i=0;i<4;i++){
if(key_states[i] == 1){
//現在移動中か?
if(!My.moving_flag){
//移動中でないなら移動
My.moving_dir = i;

//その方向は通行可能か?
next_x = My.x + dir_x[My.moving_dir];
next_y = My.y + dir_y[My.moving_dir];

//世界マップならループさせる
if(now_map_no == WORLD_MAP){
if(next_x < 0){next_x += map_width;}
if(next_x >= map_width){next_x -= map_width;}
if(next_y < 0){next_y += map_height;}
if(next_y >= map_height){next_y -= map_height;}
}

//System.out.println("My next("+next_x+","+next_y+")");

//領域外(通常マップ時)
if(next_x < 0 || next_x >= map_width ||
next_y < 0 || next_y >= map_height){
//通行不可
ismove = false;
}
//障害物
else if(!celltbl[ map_data[next_x][next_y] ].move_flag){
//通行不可
ismove = false;
}
//イベントで、通行不可タイプ
else if(!charatbl[ eventtbl[ event_data[next_x][next_y] ].gra ].move_flag){
//通行不可
ismove = false;
}
//確保イベント
else if(event_data[next_x][next_y] == KAKUHO_NO){
//通行不可
ismove = false;
}
//それ以外
else{
//通行可
ismove = true;

//移動開始
My.sum_move_length = 0.0f;

//移動先イベントデータにKAKUHO_NOを入れる(0の時)
if(event_data[next_x][next_y] == 0){
event_data[next_x][next_y] = KAKUHO_NO;
}
}
My.moving_flag = ismove;
}
}
}
}

//自分移動
public void MyMoving(){
int i;

//その方向に移動
My.px += FrameTime * My.speed * dir_x[My.moving_dir];
My.py += FrameTime * My.speed * dir_y[My.moving_dir];

//仲間も
for(i=0;i party[i].px += FrameTime * My.speed * dir_x[party[i].moving_dir];
party[i].py += FrameTime * My.speed * dir_y[party[i].moving_dir];
}

//アニメーション(0.2秒に1回)
My.anime_wait += FrameTime;
if(My.anime_wait >= 0.2f){
My.anime_no = 1 - My.anime_no;
My.anime_wait = 0.0f;
}

//総合距離加算
My.sum_move_length += FrameTime * My.speed;

//一定距離動いたか
if(My.sum_move_length >= (float)CHIP_SIZE){
//ピッタリの位置にする
My.x += dir_x[My.moving_dir];
My.y += dir_y[My.moving_dir];

//世界マップの時
if(My.x < 0){My.x += map_width;}
if(My.x >= map_width){My.x -= map_width;}
if(My.y < 0){My.y += map_height;}
if(My.y >= map_height){My.y -= map_height;}

My.px = My.x*CHIP_SIZE;
My.py = My.y*CHIP_SIZE;
My.moving_flag = false;

//仲間もピッタリ
for(i=0;i party[i].x += dir_x[party[i].moving_dir];
party[i].y += dir_y[party[i].moving_dir];

//世界マップの時
if(party[i].x < 0){party[i].x += map_width;}
if(party[i].x >= map_width){party[i].x -= map_width;}
if(party[i].y < 0){party[i].y += map_height;}
if(party[i].y >= map_height){party[i].y -= map_height;}

party[i].px = party[i].x*CHIP_SIZE;
party[i].py = party[i].y*CHIP_SIZE;
}

//方向保存
for(i=CMAX-2;i>=0;i--){
party[i+1].moving_dir = party[i].moving_dir;
}
party[0].moving_dir = My.moving_dir;

//この位置の確保イベントを消す(KAKUHO_NOの時)
if(event_data[My.x][My.y] == KAKUHO_NO){
event_data[My.x][My.y] = 0;
}

//強制イベント移動の場合
if(game_flags[12]){
game_flags[12] = false;
My.sum_move_length = 0.0f;
}else{
//イベントチェック
//その上に重なると起動するもの。
check_event(My.x,My.y,0);
}
}
}

//キャラ移動
void CharaMoving(Event event){
int ran;

//その方向に移動
event.px += FrameTime * event.speed * dir_x[event.moving_dir];
event.py += FrameTime * event.speed * dir_y[event.moving_dir];

//総合距離加算
event.sum_move_length += FrameTime * event.speed;

//一定距離動いたか
if(event.sum_move_length >= (float)CHIP_SIZE){
//前の位置のイベントを消す
event_data[event.x][event.y] = 0;

//ピッタリの位置にする
event.x += dir_x[event.moving_dir];
event.y += dir_y[event.moving_dir];
event.px = event.x*CHIP_SIZE;
event.py = event.y*CHIP_SIZE;
event.moving_flag = false;
event_data[event.x][event.y] = event.no;

//強制イベント移動の場合
if(game_flags[11]){
game_flags[11] = false;
event.sum_move_length = 0.0f;
}else{
//小休止(ランダム1秒~3秒)
ran=rand.nextInt();
if(ran<0){ran=-ran;}

event.sum_move_length = -(ran%3+1);
}
}
}

//その場所のイベントチェック
void check_event(int x,int y,int type){
//領域外の時
if(x < 0 || y < 0 || x >= map_width || y >= map_height)return;

//イベントがあった場合(KAKUHO_NOは無視)
if(event_data[x][y] != 0 && event_data[x][y] != KAKUHO_NO){
//上に乗った時。それは触れた時に起動するものか?
if(type == 0 && eventtbl[ event_data[x][y] ].type_of_event != 1){
//違う場合は抜ける
return;
}

//決定ボタンを押した時。それ決定で起動するものか?
if(type == 1 && eventtbl[ event_data[x][y] ].type_of_event != 0){
//違う場合は抜ける
return;
}

game_buffer[0] = eventtbl[ event_data[x][y] ].no;//イベントNO記憶
game_flags[2] = true;//イベントフラグセット
//スクリプトファイル名決定
game_strings[0] = "eventscript/"+eventtbl[ game_buffer[0] ].filename+".txt";
LoadFileToBuffer( game_strings[0] );
}
}

// バッファに一気に入れる
public void LoadFileToBuffer( String filename ){
int i, x = 0;
InputStream is = null;

try{
// is = new URL(getDocumentBase(), filename).openStream();
is = classLoader.getResourceAsStream( filename );
Reader r = new BufferedReader(new InputStreamReader(is));

while((i=r.read()) != -1){
//一行ずつ読み込む
gl_event_file_buffer[x++] = (char)i;
}
is.close();
}catch(IOException e){}

// 最後に-1を入れる
gl_event_file_buffer[ x ] = 0xff;
}

//スクリプト実行
void ActionScript(){
String filename;
int i,x;
char line[] = new char[256];
InputStream is = null;

filename = game_strings[0];
if(game_flags[7])System.out.println("Script("+filename+"):Load");

//指定の行まで行く
int line_num = 0;
boolean done_flag=true;//最後まで読みきったか
boolean next_flag;//次の行も読み取るか

x=0;
for( i = 0; gl_event_file_buffer[ i ] != 0xff; i++ ){
//一行ずつ読み込む
line[x++] = (char)gl_event_file_buffer[ i ];
//System.out.print((char)i);

//改行がきた場合
if( gl_event_file_buffer[ i ] == '\n'){
//System.out.println("("+line_num+")"+String.valueOf(line));

//その行は読み込む行か?
if(line_num == game_buffer[5]){
//そうであった場合、読み込んで解析
next_flag = AnalyzeScript(line);
game_buffer[5]++;

//マップ移動、会話イベント、ダイアログなら抜ける
if(!next_flag){
done_flag = false;
break;
}
//そうでないならそのまま読み込み続ける
line_num++;
}else{
//違うなら、改行数増やして探索続行
line_num++;
}
x=0;
}
}

//最後まで読み切った場合は、フラグ解除
if(done_flag){
if(game_flags[7])System.out.println("Script("+filename+"):End");
game_flags[2] = false;

// 一行目から読み込む
game_buffer[5] = 0;

//テーブル更新予約があればテーブル更新
if(game_flags[8]){
Load_Event_Table();
game_flags[8] = false;
}
}
}

//指定の行を読み込んで解析(戻り値がある時はそれを実行し次の行へ続く)
public boolean AnalyzeScript(char line[]){
int i,x,y;
String command;
String value;
String buffer;
boolean next_flag=true;

//改行コード以降切り捨て(改行含む)
String sline = Harulib.HaruChop(line);

//コマンド取得
command = Harulib.HaruSplit(sline,":",0);

//値取得
value = Harulib.HaruSplit(sline,":",1);

if(game_flags[7])System.out.println("("+game_buffer[5]+")Script -- > com="+command+",value="+value);

//ラベル確認
if(command.equals("IF_SCENE1")){
//そのラベル以降は実行すべきか?
if(game_buffer[7] == 0){
game_flags[10] = false;//スキップ解除してそのまま実行
}
else{
//実行しない。スキップ開始。
game_flags[10] = true;
}
}else if(command.equals("IF_SCENE2")){
//そのラベル以降は実行すべきか?
if(game_buffer[7] == 1){
game_flags[10] = false;//スキップ解除してそのまま実行
}
else{
game_flags[10] = true;
}
}else if(command.equals("IF_SCENE3")){
//そのラベル以降は実行すべきか?
if(game_buffer[7] == 2){
game_flags[10] = false;//スキップ解除してそのまま実行
}
else{
game_flags[10] = true;
}
}else if(command.equals("END_SCENE")){
//スキップ終了
game_flags[10] = false;
}

//スキップ実行の時
if(game_flags[10]){
return true;//抜ける
}

//コマンドによってイベント実行

//マップ移動コマンド
if(command.equals("move")){
System.out.println("Do:Move");

//移動イベント開始
game_flags[0] = true;

//値を解析

buffer = Harulib.HaruSplit(value,"=",0);
game_buffer[1] = Integer.parseInt(buffer);//移動先マップNO

buffer = Harulib.HaruSplit(value,"=",1);
game_buffer[2] = Integer.parseInt(buffer);//X

buffer = Harulib.HaruSplit(value,"=",2);
game_buffer[3] = Integer.parseInt(buffer);//Y

buffer = Harulib.HaruSplit(value,"=",3);
game_buffer[4] = Integer.parseInt(buffer);//方向

next_flag=false;
}

//会話コマンド
else if(command.equals("talk")){
System.out.println("Do:Talk");

//会話イベント開始
game_flags[3] = true;

//流れ始める。
game_flags[4] = true;

//会話
game_strings[1] = value;

//char配列にコピー
game_strings[1].getChars(0,game_strings[1].length(),game_talks,0);

//文字の位置
game_buffer[6] = 1;//1文字目

next_flag=false;
}

//ゲーム進行スイッチオンコマンド
else if(command.equals("switch_on")){
System.out.println("Do:switch_on");

game_switch[ Integer.parseInt(value) ] = true;

//テーブル更新予約
game_flags[8] = true;
}
//ゲーム進行スイッチオフコマンド
else if(command.equals("switch_off")){
System.out.println("Do:switch_off");

game_switch[ Integer.parseInt(value) ] = false;

//テーブル更新予約
game_flags[8] = true;
}
//分岐1
else if(command.equals("SCENE1")){
System.out.println("Do:SCENE1");
game_strings[2] = value;
}
//分岐2
else if(command.equals("SCENE2")){
System.out.println("Do:SCENE2");
game_strings[3] = value;
game_buffer[7] = 0;
game_buffer[8] = 2;//選択肢の数
}
//分岐3
else if(command.equals("SCENE3")){
System.out.println("Do:SCENE3");
game_strings[4] = value;
game_buffer[7] = 0;
game_buffer[8] = 3;//選択肢の数
}
//ダイアログを出す
else if(command.equals("DIALOG")){
System.out.println("Do:DIALOG");
game_flags[9] = true;
next_flag=false;
}
//イベントを一時的に消去
else if(command.equals("temperace")){
System.out.println("Do:temperace");
event_data[eventtbl[ game_buffer[0] ].x][eventtbl[ game_buffer[0] ].y] = 0;
eventtbl[ game_buffer[0] ].sh = false;
eventtbl[ game_buffer[0] ].gra = 255;
next_flag=true;
}
//イベント強制移動
else if(command.equals("emove")){
System.out.println("Do:emove");
//方向
if(value.equals("up")){eventtbl[ game_buffer[0] ].moving_dir = 0;}
else if(value.equals("down")){eventtbl[ game_buffer[0] ].moving_dir = 1;}
else if(value.equals("left")){eventtbl[ game_buffer[0] ].moving_dir = 2;}
else if(value.equals("right")){eventtbl[ game_buffer[0] ].moving_dir = 3;}

game_flags[11] = true;
next_flag=false;
}
//主人公強制移動
else if(command.equals("mymove")){
System.out.println("Do:mymove");
//方向
if(value.equals("up")){My.moving_dir = 0;}
else if(value.equals("down")){My.moving_dir = 1;}
else if(value.equals("left")){My.moving_dir = 2;}
else if(value.equals("right")){My.moving_dir = 3;}

game_flags[12] = true;
My.sum_move_length = 0.0f;
next_flag=false;
}
//イベント速度変更
else if(command.equals("espeed")){
System.out.println("Do:espeed");
eventtbl[ game_buffer[0] ].speed = (float)Integer.parseInt(value);
next_flag=true;
}
//仲間になる
else if(command.equals("join")){
System.out.println("Do:join");
for(i=0;i if(!party[i].sh){
party[i].sh = true;
party[i].chip_no = Integer.parseInt(value);
break;
}
}
next_flag=true;
}
//スクリプト強制終了
else if(command.equals("endscript")){
next_flag = true;
game_buffer[5] = 9999;
}
//ゲームエンド
else if(command.equals("gameend")){
System.out.println("Do:gameend");
game_flags[13] = true;
next_flag=true;
}
return next_flag;
}


//キーが押された瞬間(使わない)
public void keyTyped(KeyEvent e){}

//キーを押している時
public void keyPressed(KeyEvent e){
int key;

key=e.getKeyCode();

switch(key){
//上キー
case KeyEvent.VK_UP:
//最初に押した時に2を入れる
if(key_states[0] == 0){
key_states[0] = 2;
}
break;
//下キー
case KeyEvent.VK_DOWN:
//最初に押した時に2を入れる
if(key_states[1] == 0){
key_states[1] = 2;
}
break;
//左キー
case KeyEvent.VK_LEFT:
key_states[2] = 1;
break;
//右キー
case KeyEvent.VK_RIGHT:
key_states[3] = 1;
break;
//Zキー
case KeyEvent.VK_Z:
//最初に押した時に2を入れる
if(key_states[4] == 0){
key_states[4] = 2;
}
break;
//Xキー
case KeyEvent.VK_X:
//最初に押した時に2を入れる
if(key_states[5] == 0){
//key_states[5] = 2;
}
break;
}
}

//キーが放された瞬間
public void keyReleased(KeyEvent e){
int key;

key=e.getKeyCode();

switch(key){
//上キー
case KeyEvent.VK_UP:
key_states[0] = 0;
break;
//下キー
case KeyEvent.VK_DOWN:
key_states[1] = 0;
break;
//左キー
case KeyEvent.VK_LEFT:
key_states[2] = 0;
break;
//右キー
case KeyEvent.VK_RIGHT:
key_states[3] = 0;
break;
//Zキー
case KeyEvent.VK_Z:
key_states[4] = 0;
break;
//Xキー
case KeyEvent.VK_X:
key_states[5] = 0;
break;
}
}
}

以上引用
このソースはオープンソースです。
著作者のホームページはhttp://www.harukitchen.com/rpg_programming/18/18.htm
JavaプログラマーにもなれちゃうRobocode&ゲームプログラミング学習術JavaプログラマーにもなれちゃうRobocode&ゲームプログラミング学習術
(2003/11)
可知 豊

商品詳細を見る



おさるVS山川恵里佳 書道家になりたい

私も多趣味なのでわかりますが、
基本、経済的に現実的じゃないと成り立ちません。
おさるは、細木数子にモンキッキーっていうセンスの無い芸名を付けられて非運だったけど、なんか、そこらへんが落ち目だった気がする。
モンキッキーって、画数15画で吉数だけど、
関係ないだろ。
今年の大殺界も全然当たってないし、細木数子は本当災難女だわ。

おさるは、書道っていったって、書道なんて一度道具買ったらあとは紙代ぐらいしかかからないだろうに、
DJセットだって、一度買ったら、後買うものなんてないだろ。
問題は、仕事をしてないことなんだろ。
仕事をしてれば言われない文句だろうに。

それを、書とDJと芸能をコラボレーションするみたいな、有り得ない言い訳しているから突っ込まれるんだよね。

多芸の人にありがちだわ。
○○と△△をコラボレーションするとかって。
ありがち。
書とDJは無理だろ。
音楽聞きながら書くのか。

・・・・・・・

MBCの韓国語ニュース2000‐2009年MBCの韓国語ニュース2000‐2009年
(2010/03)
MBC放送報道局

商品詳細を見る

一見難しかった韓国語のニューススクリプトだったんだけど(上級者向けテキスト)、この前、NOVAの韓国語レッスンの合間に、ロッテリアで日本語対訳と一緒に読んでたら、案外簡単だったわ。

もちろん、それは、ずっと継続して勉強してきたおかげなんだけど。
ちんぷんかんぷんだった数年前よりは上達しているのが分かった。
ハングル検定4級合格は伊達じゃないってことだね。

「ν-ガンダムは伊達じゃない!」
みたいな。

中国語で勉強した経験だけど、ニュースのスクリプトを読んで、理解して、それを4~5回繰り返して音読するあたりから、語学の成長曲線が急速に上昇します。

つまり、韓国語も先が見えてきたってわけ。

ハングル検定4級は伊達じゃない。


書道と音楽のコラボレーション


Collaboration of calligraphy and music


서도와 음악의 콜라보레이션
ソドワ ウマギ コルラボレイション


书法和音乐的协作
shu1 fa3 he2 yin1 yue4 de xie2 zuo4
スポンサーサイト



プログラミング能力の向上を目指せばなんでも作れる


好きだったゲーム 女神転生2


YHVH戦
自分のゲーム作りの技能を向上させて、こんなゲームも作りたいと思っています。

画像を描く力は十分にあります。
絵は得意ですし、GIMPも使いこなせてます。
音楽はまったくダメなので、無料の素材を使ってますし、これからも当分同じでしょう。

問題は、プログラミング能力ですね。
努力と工夫しだいで伸びるか、伸びないかが分かれるところです。
自分の場合はJavaですが、まだまだ開発途上といったところです。

シューティングを作り、アクションを作り、
これから格闘を作り、そして、RPGを作りたいと思ってます。

自分の伸びしろを今後どれだけ期待できるか。

勉強さえすれば、できそうなものですが。

・・・・・・・・・・・

大事なのはソースの読み込み、
この世の中に人が書いたソースは無尽蔵にありますから。
それらを読んで、理解して、自分でも書いてみて、改造してみて。
バグがあったら、直して、さらに、理解を深めて。
そういったことを繰り返していけば、ファミコン程度のゲームは作れるものなのかなと、勝手に考えてます。

・デバッグ
・メソッド化
・protected,private,publicの使い分けとカプセル化
・統一クラスの作成とポリモーフィズム
・ゲームの場合、モードわけが大切なこと
・アプレットの場合、メモリに制限があること
・配列の扱い方

こういったことを一つ一つクリアーしていけば、ファミコン程度のゲームは、どんなものでもアプレットで再現できる。
というか、ファミコンライクなゲームをたくさん作っていきたい。

・・・・・・・・・・

自分のモチベーションを維持することが大変なことくらい知っている。

これが一苦労なんだ。
プレイしてくれる対象、例えば、子どもにゲームの作成宣言をしてしまうとかね。
プログラマーの友達を作るとか。
もしくは、おしえるまなべるで講師を作るとか。
ゲーム製作者のサークルに入るとか、一時期はmixiなんかのコミュがあったんだけど、今は過疎ってて役にたたないけど。
ファミコンライクなゲームを作る同人サークルなんかがあればいいんだけど、
なぜか、同人サークルってエロ系が多くって、、、
エロゲーって、自分が目指している趣旨と違うっていうか。

ゲーム音楽のつくり方を学ぶか、
それとも、音楽作りの上手い方と組むか。


大事だよね。

言ってること合ってると思ってる。

m
勇者の名前を「もういい」にした結果

・・・・・・・・
・・・・・・・・

せっかく、知り合えたのに、相手がリア充過ぎてついていけない。
週末には会いたいのに、相手が週末がフル充実過ぎて会えない。

反面自分は今日はヒマ。

・・・・・・・・

昨日は10kmジョギングしました。
その後、11:40と14:10から韓国語の勉強。
まだまだだなぁ。

・・・・・・・・

自分の歳になると、結婚して、子育てして、親の介護をして、そういった生き方が普通になるんだろうけど、
でも、自分は自分のためだけに生きている。

中二病っていう嫌な言葉が思い浮かぶ。
いや、自分は違う。違うはずだ。

・・・・・・・・

自分は自分のために生きている。
これが何かのために役立つと思って。
それに、付き合う相手や育てる子どもがいないのに、何に向かって生きるんだか。

・・・・・・・・

人生のどこかで選択を間違った。
それは分かってる。
チャンスもあった。
だけど、自分でチャンスを捨てた。

人生詰んだよ。


プログラミング能力の向上を目指す


Improvement in programming skill is aimed at.


프로그래밍 능력의 향상을 목표로 한다
プログレミン ヌンリョギ ヒャンサンウル モグピョロ ハダ


以程序设计能力的提高作为目标
yi3 cheng2 xu4 she4 ji4 neng2 li4 de ti2 gao1 zuo4 wei2

コンピュータと気づきの問題


ディスカバリーチャンネル 2030年のテクノロジー

長沼毅氏は、人工知能が人類を支配する世界がやってくる、マトリックス発言をして会場をざわつかせましたが、まったく、現実的ではありません。
コンピュータは保守などの面で人類の手を必要としています。

ゲーデル,エッシャー,バッハ―あるいは不思議の環ゲーデル,エッシャー,バッハ―あるいは不思議の環
(1985/05)
野崎 昭弘、はやし はじめ 他

商品詳細を見る

ゲーデル、エッシャー、バッハ―あるいは不思議の環 20周年記念版ゲーデル、エッシャー、バッハ―あるいは不思議の環 20周年記念版
(2005/10)
ダグラス・R. ホフスタッター

商品詳細を見る


コンピュータは「きづき」の点において人間に勝てない。
コンピュータが「きづき」を獲得したとき、人類の産業は大きく進歩する。


シュールすぎる・・・((((;゚Д゚))))

頭にピラミッドをつけて何を唱えてるんだ!
宗教??

・・・・・・・・・・・
・・・・・・・・・・・

上の場所じゃないけど、自分も断食道場に行きましたよ。
断食は3日目の後半がキツかった。
でも、強制的に禁酒もできて良かった。
値段が高かったけど、また行きたい。

・・・・・・・・・・・
・・・・・・・・・・・

今日はちょっと忙しいです。
11時からノヴァで韓国語、そして、自習タイム、さらに、14時からノヴァで再び韓国語。
この時間差の長さが大変だが、ブランクが空いているのでちゃんと勉強死体。

・・・・・・・・・・・
・・・・・・・・・・・

今日は、
ギター練習、ベース練習、
洗濯、
ジョギング、
そんでもって、NOVAです。

やること多すぎ。

11時からNOVA
10時から準備
9時からジョギング
8時からギター練習
ってことは、もう1時間しか余剰時間が無い。

・・・・・・・・・・・
・・・・・・・・・・・


気づきの獲得


Acquisition to notice


알아차리기의 획득
アラジャリギィ ホィグトゥク


注意到的获得
zhu4 yi4 dao4 de huo4 de

双日 178円×1000株で購入を197円で売却
19000円の利益

大成建設 485円×1000株を購入

累計国内株利益 :90万3977円
年内国内株利益 :79万3277円
その内配当金利益 : 2万7227円

あまりにも多いタブロイド思考型人間

taiseikensetu
大成建設株

大成建設 488円×1000株で買い注文

双日 197円×1000株で売り
日立製作所 663円×1000株で売り
SBIホールディングス 1338円×100株で売り

・・・・・・・・・・・
・・・・・・・・・・・

担当している子がやらかしてくれた。
まあ、自分にも責任があるんだけど、
今日は朝から大説教大会だ。

・・・・・・・・・・・
・・・・・・・・・・・

タブロイド思考について

私の身近にはタブロイド思考型の人間が如何に多かったか、、、

以下Wikipediaより引用

ものごとの根本の複雑な相互関係の分析にまで至るのは、一般的な人間の思考にとっては非常に負担が多く、困難である。しかし、「よく分からない」では、自分の無能さが露呈されるようで好ましくなく、また「分からない」という状態も不安定な心理であるため、「その答えは、即ちこれである」というような単純明快な図式的回答を、批判的態度などなく受容するような思考のことを主に云う。

引用終

この人は○○の人、みたいな。

人間って、もっと複雑じゃない??
話してみなきゃ分からないことだらけだと思うんだけど、
それを、単純化するってのは、それ以上、その人に対する理解を深めようとしないことじゃない。
まあ、興味が無いんだって言ってしまえばそれまでなんだけど、

・・・・・・

未だに、私が「ドラゴンボールの人」扱いされてるのには食傷気味なんだけど。
それもタブロイド思考だよね。

・・・・・・・・・・・・
・・・・・・・・・・・・

キャッシュの一種なのかなって思ってます。
コンピュータのキャッシュです。サーバに一時的に保存されるデータのキャッシュです。

人間が人間にレッテルを貼るっていうのがあるじゃないですか、
これもタブロイド思考の一種ですよね。

実は、人間は知らず知らずのうちに人にレッテルを貼ってるんです。

「いや、私は人にレッテルなんか貼らない!」

と、胸を張って言ってる人だって、必ずレッテルを貼っています。
無意識のうちに。

○○さんってどんな人なの?
う~ん、ちょっと神経質で、
もの凄い阪神ファンなのよ。
携帯の息子の写真をいつも眺めてるのよ。
それで、ダイエットコークばっかり飲んで。

これ、全部レッテルです。

本当は、この人は、人生の虚無感と常に対峙して、ああ、なぜ自分はこの世界に生きているのかと、人生とはなんぞやと、自分に問いかけ続けているかもしれません。
でも、レッテルにはそんな情報は含まれていません。

レッテルは、人間に対するタブロイド化です。
しかも、人間は誰しも人をタブロイド化して見ています。
これは避けられません。

常に、どの人をも詳細に分析的な態度で見続けることは不可能だからです。
無人島で2人だけで生活しているならまだしも、
何十人、何百人の人に囲まれて生きているわけですから、

この人は、巨人ファンの人
この人は、おこりんぼうの人
この人は、噂好きの人
この人は、冗談をよく言う人
この人は、AKBファンの人

まるで、WEBのキャッシュデータのように、人をコンパクト化して一応理解したつもりでいるんです。

・・・・・・・・・・・・
・・・・・・・・・・・・

職場なんかでは、最初の最初の自己紹介の時は重要です。

何を言うかで、(特に思考停止型の人)人のキャッシュデータの中に延々と残り続けますから。

最初に
「私はアニメの○○が好きで、フィギュアを集めて、毎日ハァハァしてます」
なんて言った日には、もう、その職場では、最後までそういった目で見られることになるでしょう。
仮に嘘だとしても、大半の人はキャッシュデータとして保持していますから、なかなか変えられません。

・・・・・・・・・・・・

思考停止型の人間は実に多いです。
会話をしていると、まるで人工無脳と話しているような感覚に襲われます。

・・・・・・・・・・・・

人間が知的であり続けるためには、考え続けることが必要です。

・・・・・・・・・・・・

また、単語に反応する人もいます。
タブロイド思考型の人間に必要なのは、真実の情報ではなく、「分かりやすいキーワード」なのです。

浮気、借金、学歴、駆け落ち、不仲、結婚、妊娠、交際、犯罪、異動、転勤、派閥

・・・・・・・・・・・・
・・・・・・・・・・・・

私たちは「人間の知性」を過大評価していないでしょうか。
こんな、誤解と錯覚だらけの人間の知性を神の恩物とでも思い込んでいます。
神の恩物だとしたら、なぜ、こんなに欠陥だらけなのでしょう。

・・・・・・・・・・・・
・・・・・・・・・・・・

よく、人間の知性を再現することは不可能だと言いますが、その根拠は何なんでしょう。
コンピュータには錯覚も思い込みもありません。
コンピュータに知性が宿れば人間のそれを凌駕するのは容易いと思うのですが。

・・・・・・・・・・・・
・・・・・・・・・・・・

ハッキリ、言います。

霊、魂、神、来世、あの世、、

こういったものは存在しません。
人間を理性の脆弱さから守るための思考装置にしか過ぎません。

死が怖いのです。人間は。

だから、魂の救済とか、来世とか、天国というものを発明したんですね。
それから、宗教を発明したんですね。

死の恐怖を紛らわすために、そういったものを発明したんです。

・・・・・・・・・・・・

しかし、物質から来たものはすべからく物質に帰ります。
死は避けられません。

・・・・・・・・・・・・
・・・・・・・・・・・・
・・・・・・・・・・・・


死の恐怖を紛らわす


Fear of death is beguiled.


죽음의 공포를 달랜다
チュグミ コンポルル タルレダ


仿制们附和死的恐怖
fang3 zhi4 men fu4 he4 si3 de kong3 bu4

シンギュラリティへの布石 / やることは決まっている


SOINNで学習をするロボット

ロボットの進歩は加速度的です。
特に、インターネットなどの通信技術の進歩に伴って、学習するタイプのロボットはビッグデータを用いることで無尽蔵な知識を得ることができます。

いわゆる、弱いAIというところには到達した感じがします。
つまり、与えられた課題を自分で解決するAIです。

ナビゲーション機能のついたSiriや自動運転車はその例だと言えます。

実世界の情報には様々なノイズが混在しています。
会話でも音声でも画像であっても、人間は無意識のうちにノイズを取り除いて理解できますが、コンピュータにはそれができません。
そこらへんのハードルをクリアーした感がします。

・・・・・・・・・

SOINNを搭載したロボットは全く情報を与えられていない状態から、「お茶をいれてちょうだい」という命令を理解し、お茶をいれることができます。
その過程でインターネットでコップやお茶を検索したり、他の地域のロボットにアクセスしてお茶の入れ方を習うなどすることができます。

・・・・・・・・・

このようなロボットが世界で同時並列的に稼働すれば、ロボットの知能は格段に向上するでしょう。

お手伝いロボットや、高齢者の介護、子どもの遊び相手として世界中に配置されればロボットの賢さは指数関数的に向上していくでしょう。

・・・・・・・・・

弱いAIの時代がしばらく続いた後、ボトムアップ的に強いAIへのアプローチが進むでしょう。

意思を持った人工知能の研究です。
お手伝いロボットがより主体的に人間に関わるためのアプローチからまず始まるはずです。
ご主人のインタレストを察知して、自分から動くアルゴリズムがまず実装されるでしょう。

この時点で、お手伝いロボットのインプットは常に飽和状態になっているはずです。
画像、映像、音声、その他、温度や圧力などのセンサーも実装されるでしょう。

しかし、弱いAIの時期はしばらく続くでしょう。

内的な欲求や情動への研究が進みます。
ボトムアップ的な研究が必要となります。
脳神経系の研究を元に、ロボットに欲求や情動を実装します。

この頃から、ロボットの自意識が微弱ながら生まれてくるのです。

・・・・・・・・・・

予見としては、お手伝いロボットが各家庭に配備されて、世界中でコネクトされるまでにかかる時間を考えると、
15年後でしょう。
私は世界中でコネクトされるということが大切なのだと考えています。
インターネットは世界中で爆発的に広がったことで情報技術が発展しました。
それを踏まえると、このSOINN型ロボットが世界中で拡大することがロボット知能の発展には不可欠だと考えます。
さらに、情動や欲求の初歩的な実装もその5年~10年後には可能でしょう。

つまり、今から30年以内には、ごく初期の強いAIが誕生するかもしれないのです。

2043年ですね。

・・・・・・・・・・

国家の財力にもよるんですが、これはインフラ整備みたいなものですから。

・・・・・・・・・・
・・・・・・・・・・

今現在が冷戦中だったら話しは早かったのです。
もし、現在ソ連とアメリカが冷戦中で、人工知能競争が国家の威信をかけたものだったら、話しは早いのです。

国家の財力を総動員して、お手伝いロボットを国中に拡散して、ロボットをひたすら学習させる。
その一方で情動や欲求について研究をすすめると。

数年で、強いAIの基礎ができるのですが。

・・・・・・・・・・

現在の経済状況で、一家に一台ロボットなんて無理でしょう。
世界に数万代オーダーで拡散させる必要があります。

・・・・・・・・・・
・・・・・・・・・・

ロボット・意識・心―人工意識の構築へ向けて (現代理工学大系)ロボット・意識・心―人工意識の構築へ向けて (現代理工学大系)
(2004/04/30)
武野 純一

商品詳細を見る


さて、人工知能の内面をどう構築していくか、
方策としては、
自律的逐次的な連想状態を起こさせることです。
人間の思考は連想で行われています。

センサーによる認識や学習内容を自動連想状態にすることは、思考の時間軸を人工知能に与える上で必要です。

ロボットにとって苦手なのは、情動だと思います。
欲求は直接的なプログラムを書き込むことで解決しそうですが、
うれしい、悲しい、楽しい、つらい、幸せなどの感情は、ロボットにあたかもそう感じているように動かすことは可能ですが、内部状態として、人工知能の内部にそういった情動を再現することは非常に難しいことだと思います。

認識、記憶、思考などが比較的容易なのに比べて、
情動を再現することは非常に難しい課題であります。

人工知能に情動は“要らない”と最初から切り捨ててしまっても構わないとも考えます。

結局、情動に必要なのは、内分泌系や筋肉、内臓、といった“生”の生体要素からのフィードバックですから。
心臓がドキドキしたことを認識したり、
胃がギューーっとなったことを認識したり、
筋肉がこわばったことを認識したり、
そして、それをさせるための内分泌系があり、

もっとも研究の課題として難しいところだと考えます。
情動を実装したAIは、今後100年程度の時間を要するでしょう。
もしかしたら、人間ではなく、AIが自ら人間を模して感情のあるコンピュータを作り出すかもしれません。
そうなったら、時期は早まりますが、人間がそのアルゴリズムを理解できるかは不明です。

・・・・・・・・・・・
・・・・・・・・・・・
・・・・・・・・・・・

人工知能と人工生命の基礎人工知能と人工生命の基礎
(2013/05/25)
伊庭斉志

商品詳細を見る


さて、お手伝いロボットから一転して、ロボットのセンサーをより強化して、指の器用さ、巧緻性、機敏さ、圧力や温度、化学物質(臭い、味)などに対する感覚をより鋭敏にしていきます。

清掃作業から始めて、物の片付け、
工事現場での作業、
農作業や牧畜、漁業、鉱業、
機械やコンピュータの操作や組み立てなど、
それぞれのエキスパート領域でロボットが仕事を行うことも可能でしょう。

他方、人間の仕事を奪ってしまうという批判もありそうですが・・・

機械の組み立てや鉱物の掘削などをロボットが出来ると良い利点として、月や惑星の開拓(テラフォーミング)にロボットを使えるということでしょう。
大量のロボット軍団を火星に送り込んで数十年で地球に改造するなど夢のような話しです。

・・・・・・・・・・・
・・・・・・・・・・・
・・・・・・・・・・・

シンギュラリティは近い。
しかも、取るべき手立ては決まっている。
ロボットの世界拡散と相互学習。
センサーの複数化と欲求のプログラム化。

・・・・・・・・・・・


ロボットの世界拡散


A robot's world diffusion


로봇의 세계확산
ロボスィ セゲホァクサン


机器人的世界扩散
ji1 qi4 ren2 de shi4 jie4 kuo4 san3

新しい出会いなるか/体調不良

sumocafe
今日の相撲ステーションでのプログラミングの勉強は講師の体調不良のため中止。

自分も体調不良だったんで都合がいいです。
悪い病気でも流行っているんでしょうか。
ちなみに、このプログラミングの講師は12月を持って転職されるそうです。
すごくいい、実力者だっただけあって、もうなかなか出会えそうにありません。

取り敢えず、今日はギターとベースを弾いて練習して、
それから、明日は、職場に行って仕事の片付けと絵コンテを描かないといけません。
演技の指導に必要となるのです。
絵コンテ入門―アニメーションがつくれる絵コンテ入門―アニメーションがつくれる
(2010/03)
アニメーションノート編集部

商品詳細を見る


いろいろなプログラマーさんと知り合いになったなぁ。。。

自分の実力もかなり高まった。
御徒町のプログラマー養成講座の佐野元春似の人、、、DOJAの扱い方を教えてもらった、実際にDOJAでゲームを作って披露はしていないが、その経験から、蟻型迷惑大作戦を完成できた。

それから、飯田橋のラムラのカフェでJavaを教えてくれた主婦の方、佐野元春似の方は、ブラウザでゲームをするのは不可能だと言っていた反面、主婦の方はあっけなく解決してくれた。その方のおかげでスーパートレックブラザーズが完成した。

さらに、中野で大学生の方とも知り合った。Perlの使い方がよく分からない私にコツコツと教えてくれた。とても実力のある方だった。ちょっとコミュ弱っぽいかなって印象もあったが、熱心に教えてくれた。Perlを使ったスクレイピングなどの手法は楽しかった。

その後、高田馬場で男性と知り合った。ルノアールで教えてくださったのだが、ちょっと実力不足感が否めなく、2回程度で終了。餃子の臭いがした。

今時々会っている男性は、江東区や墨田区の方を中心にカフェで教えてもらっている。実力派で、今回のシューティングゲームもその人がいなかったら出来なかった。Java以外にもPHPなどを教えてもらった。祖母が亡くなるちょっと前から一緒にやっている方だ。
祖母の死に直面して、自分が鬱にならなかったのは、その方との学習やゲーム作りの作業が気を紛らわせてくれたためだと思う。

濃縮ブロッコリー・スルフォラファン250mg60錠 3本【アイドラッグストアー】

昨日は朝から激疲労。

どうも、風邪のひきはじめか、去年の肺炎みたいな感じになっている。
昨日は、カコナールを2本と、ルル内服液を飲んで、人と会いに行った。

今日もどうもおかしい。
喉が痛い。

疲労が体に来たか。

10ヶ月くらい前も激疲労で、それで、肺炎になっちゃったからね。

それと同じ感覚、毎日、疲れた~疲れた~(o´Д`)=з
って言っていたら、
1ヶ月後ぐらいに悪化して、肺炎になった。
あの頃と似ている。

・・・・・・・・・
・・・・・・・・・


「死ぬ覚悟した」〜福島原発の元運転員、初証言

kitijouji
昨日は吉祥寺に行ってきた。

お互いの印象は悪くなかったようだ。
井の頭公園でビールを飲み、ブラブラと話しをしながら、駅前の焼き鳥屋で何杯か飲んだ。
私の顔に触れてきたので相手は私を良く思っていたみたいだ。

・・・・・・・・・・・
・・・・・・・・・・・
・・・・・・・・・・・
・・・・・・・・・・・

アンドロペニス ミニ【美容健康商品・コンタクトレンズ・家電専門店Bluelagoon】


・・・・・・・・・・・
・・・・・・・・・・・


新しい出会い


New encounter


새로운 만남
セロウン マンナム


新的相遇
xin1 de xiang1 yu4

若築建設 大回復 / 激疲労 3時間後に吉祥寺で・・・ / 無能な剛力彩芽似の・・・

wakatikukensetu
若築建設

長らく塩漬けにしていた株が昨日、ようやくプラスになりました。
プラス2万円です。

オリムピクスありがとう。
カムサハムニダ。

・・・・・・・・・
・・・・・・・・・

昨日は激疲れだった。
疲れているときに栄養剤を飲むのは気をつけた方が良いようだ。
糖分などを適宜摂らないといけない。

・・・・・・・・・
・・・・・・・・・

今も疲れが残っている。

スペランカー

ゲームセンターCX 有野の挑戦でスペランカーはエンディングが放送できないと言っていた。
これは、エンディングがキラキラ光りすぎていて、以前のポケモンショック(ポリゴンショック)と同じ影響があるためだとのこと。

見てみると、そんなに派手じゃないんだけどな。

superanka-
p
ポリゴンショック

0

私を手ごめにした生江さん、私が生江さんの家に行かない理由をポリゴンショックで具合が悪くなっているからだと思っていたらしい。

懐かしい黒歴史だ。


誰かさんの自作ゲー

・・・・・・・・・
・・・・・・・・・

自分について言えば、自信を持って、普段の自分のままでいようと思う。
変な自己演出をしなくていい。
普段のままの自分で、自信を持って。
周囲の目を敢えて気にしないで。

・・・・・・・・・
・・・・・・・・・

それにしても、
新人、
下手くそ過ぎて萎える。

・・・・・

子どもを惹きつける話し方が下手。
なんであんなに下手なんだ。
力なさすぎ。

剛力彩芽のセリフ
「こうやって物音がするのに、聞いている人たちは集中力があります。」
だからなんだってんだよ。子どもはそんなことを褒められてもうれしくないだろ。

なんでこんな人が研修に受かったんだろう。
研修のパンフレットの合格者インタビューでの堂々とした笑顔。

都はこんなフィルタリング機能で人を選ぶんだからなぁ。

・・・・・・・・・
・・・・・・・・・

都のフィルタリング機能のアボーンΣ(゚д゚lll)さに愕然。
私は不合格なのよ。
ずっと。
なのに、剛力彩芽は一発合格。

剛力彩芽はテストの対策をしたからね。
テスト対策の講座のパンフレットにガッツポーズ!
あの写真を見るたびイラつく。

だけど、現場は剛力彩芽にアボーンΣ(゚д゚lll)
本物の剛力彩芽に悪いけど、剛力彩芽似の彼女はもう・・・

・・・・・・・・・
・・・・・・・・・

今日はデートの日です。
吉祥寺に行ってきます。
うまくいくかな。


無能力な剛力彩芽に愕然とする


It is amazed at incompetent Ayame Goriki.


무능력한 강력채싹에 악연하게 한다
ムヌンニョグハン カンニョグチェサゲ アグヨンハゲ ハダ


向(到)無能的剛力彩芽愕然
xiang4 (dao4) wu2 neng2 de gang1 li4 cai3 ya2 e4 ran2

(株)新日本建物
75円×10000株で購入

sinnihontatemono
新日本建物
10000株を75円で買い注文

ユニチカ(株)
10000株を60円で売却

累計国内株利益 :88万4977円
年内国内株利益 :77万4277円
その内配当金利益 : 2万7227円

ユニチカ売却/指導者のイデオロギー

yunitika
ユニチカ株

10000株を60円で売り注文。
オリムピクスが東京に来てから株価の情報が半端ない。

・・・・・・・
・・・・・・・


大津波予見できた 石巻・幼稚園児死亡訴訟で仙台地裁

東日本大震災の津波で送迎バスが流され、死亡した私立日和幼稚園(宮城県石巻市、3月­に休園)の園児5人のうち、4人の遺族が「安全配慮を怠った」として、園側に約2億6­700万円の損害賠償を求めた訴訟で、仙台地裁は17日、園側に約1億7700万円の­賠償を命じる判決を言い渡した。

記事参照
http://www.47news.jp/news/2013/09/pos...

・・・・・・・
・・・・・・・
・・・・・・・

個人的な意見なんだけど、あれだけの大津波は予見できたのだろうか。
今だから言えることだけど、あの時はあんな大津波が来るなんて予見できなかった。

・・・・・・・
・・・・・・・
・・・・・・・

game
ゲームが形になりつつある。

もうちょっと画面遷移を速くスピーディにしたい。

それにしても、以前(3月)作ったシューティングゲーム
game
ゲームをやる
このゲームのBGMが神だと思った。

やはりゲームはBGMで活きるって思ったね。
↑↑特に、上のシューティングゲームは、魔王魂さんから頂いた飛空艇のBGMなんだけど、シューティングゲームとのマッチ感が半端無くって、本当、BGMに活かされたゲームって感じです。

ゲームの中身については私が作ったゲームなので完成度がまだまだの点もありますが、ファミコン時代初期だったら、それなりにゲームとして認めてもらえたんじゃないかと思える作品です。
ゲームをやる



集団を取りまとめることの難しさを仕事を通して感じている。
また、集団が団結したときの喜びも感じている。

私の場合は後者なんだが、
前者の場合は立て直しが必要。

剛力彩芽(仮)さんの集団はなぜグダグダなんだろうか。
やはり、それは、剛力彩芽さん自体に訴えたい思いが無いからなんだと思う。

「私はこうしたいんだ!!!っ」

っていう指導者としての主張。
これは遠慮しなくて良いと思う。

剛力彩芽さん自身はよく私に
「○○していいんですか?○○するんですか?」
ってよく聞いてくる。
それは良いんだけど。

じゃあ、あなたは、

「何がしたいの?」

って聞きたくなる。
私は1年目の時から、自分は「こうしたい」もしくは、「こうしたくない」っていう自分の主張があった。
でも、剛力彩芽さんは、自分は「こうしたいんだ!!っ」っていう思いが無い。
これが、弱さの原因なんじゃないかなって思う。

みんなにこうなってもらいたいんだ、それは、これこれこういう理由だからだっっ!!
っていうのを切々と伝えていく作業がこの仕事の醍醐味だと思ってる。
それが無いんだよ。
この仕事は与えられた仕事をこなしていく事務作業じゃないんだから。

指導者が変わらないと子どもは変わらない。
というか、変われない。
そして、指導者が自分のイデオロギー(ちょっと大げさだが、政治的な意味ではなく)を持ってないと指導者の主張に強みが現れない。

例えば、私だったら、

「団結のある集団が素晴らしいんだ!!っっ」

って、キン○チみたいに、熱く語ってる。
それを1年半もやってごらんよ。
団結しない方がおかしいじゃん。

このキ○パチみたいに熱く語るのって、若い指導者にはなかなか難しいけど、出来ると思うし。
まあ、子ども目線ではウザイかもしれないけど、結構大事だと思うよ。
私は、キ○パチ、大ッ嫌いだったけどねッッッ。

・・・・・・・・・・・・
・・・・・・・・・・・・
・・・・・・・・・・・・


うざいイデオロギー


Annoying ideology


귀찮은 이데올로기
クイチャヌン イデオロギ


腻烦的思想体系
ni4 fan2 de si1 xiang3 ti3 xi4

ディズニー好き注意/自動運転車を是非オリンピックで/ゲームプログラミングの進捗状況

ge-mu
今作っているゲーム。
画面遷移の際の滞りも減ってきた。
ゲーム自体の容量が大きいためローディングに時間がかかってます。

今後、工夫と最後の仕上げが必要になります。

ロールプレイングゲームプログラミングロールプレイングゲームプログラミング
(2001/09)
坂本 千尋

商品詳細を見る

猫でもわかるゲームプログラミング 第2版 (猫でもわかるプログラミングシリーズ)猫でもわかるゲームプログラミング 第2版 (猫でもわかるプログラミングシリーズ)
(2009/09/24)
粂井 康孝

商品詳細を見る

ディズニー好き 今日の日記注意!

ディズニー好き 今日の日記注意!

・・・・・・・・・・・・・・
・・・・・・・・・・・・・・

ゲームプログラミングも大分自分のものになりつつある。
色々なゲームを作る力が付いてきている。
嬉しいことだ。

何事も、時間をかけて粘り強く取り組むことが大切なんですね。

ゲームの要素
・永久ループ
・キー入力
・自機オブジェクトの生成
・オブジェクトの配列化
・敵オブジェクトの生成
・当たり判定

基本的にはこういった要素がゲームの基本で、いろいろと複雑にしていくことによって、シューティングやアクションに変わっていくという考えだ。

長かった。
長かったよ。
ゲームを作ります。って宣言してから、ここまで来るまで。
長かった。

学ぶことが多かった。
考えることも多かった。

呪文から文字列へ

プログラミング言語を習う上でソースコードを読むというのは欠かせない要素なんだけど、
とにかく、最初は呪文!

#! usr/local/bin/perl
ってなんだよ。
use strict;
ってなんだよ!
public static void main(String[]args)
ってなんだよ!!

何千行もの呪文を読んで、わけわかんないから、書きとってみたりして、あまり意味のない学習もしたっけ。
それにしても、苦節6、7年といったところでしょうか。
素人から始めて、マリオみたいなゲームの領域にまでやってきました。

多分、魔界村なら作れる。
もちろん、アプレットで動くかどうかは別の問題だけど。

基本、ブラウザで動くゲームしかつくりません。
フラッシュでもJSでも良いんだけど、自分のプログラミングのとっかかりがJavaだったので、アプレットでやってます。


GOOGLEが発表した自動運転をする車

7年後、2020年に公表されるということで、私は是非これを高速道路以外の(限られた)公道でも走らせて欲しいと思っている。
オリンピック選手や観に来た外国人観光客をあっと言わせたいじゃないですか。

いやあ、でも、オリンピックが火付け役となって、この自動運転車の公開と利用が早期に拡大することを願っています。

・・・・・・・・・・・

人工知能はどの程度まで発展しているのだろうか。
もちろん、まだ人間とは程遠いことは明らかなんですが、2045年の技術的特異点には着実に向かっていると思います。
2029年にコンピュータが人間の知性を越える一つ目のターニングポイントが来るとカーツワイルは言っています。
今の技術の進歩の状況から見ても、自動運転車が公道を走るのに7年は長すぎるような気がします。
さらに、高速道路を自在に走れたら、一般道を走るのも時間の問題でしょう。
確かに、日本の一般道は複雑で狭くて、様々な不確定要素があります。
しかし、もう越えるべき課題点は越えているわけですから、あとはソフトの問題でしょう。

・・・・・・・・・・・

私は近いうち必ずコンピュータが自意識を持って人間と対等な人格を持ちうると考えています。
人間の意識自体、分散型処理をされた情報の塊であるという説が有力です。
意識という単体があるのではなく、我々は「意識がある」と後から錯覚させられているのです。

・・・・・・・・・・・


劇団四季:『赤毛のアン』舞台稽古映像

昨日、図書館に劇団四季のDVDを返しに行ったついでに新しいのを借りてきた。
「赤毛のアン」
これは、昔、名作アニメで観たことはあるけど、ミュージカルは初めて。

つくづく、改めて観ると、赤毛のアン、初対面の人に「コーデリアと呼んで」などと空想上のヒーローに自分を当てはめているあたり、「元祖中二病」なのかな。と思ってしまいます。



伊集院光・深夜の馬鹿力「かかったかな?と思ったら中二病」#03

中二病の原典

最近は、「自分を魔獣使いや召喚士と思い込む」などという定義もなされています。

とにかく、若者にありがちな「痛い行動」を中二病と呼びますが、伊集院さんのラジオ番組から始まって、現在では2ch用語として定着しています。

ですが、関根宏の番組「風を読む」で冷蔵庫に入ってSNSに画像を投稿する行為を中二病とするのはいかがなものかと思いますが。
もともとの意味合いとして、他人を傷つけるという行為は含まれていませんから。

・・・・・・・・・・・・・・
・・・・・・・・・・・・・・

昨日は変な夢を見たな。
何かに遅れるからっていって、市営バスをのっとって職場に向かった。
でもちゃんと停留所には止まって客を載せている。
途中で母親に変わってもらって職場に行くも、バスを私用に使ったことの罪悪感から自首しにいく。っていう夢。

変な夢だった。

・・・・・・・・・・・・・・

mikki-nakanohito
鼠王国 苦手です。

前回も夏の暑い中、1時間も並んで何が楽しいのかと思ったよ。

外国のミッキーは素材が悪いですね。
ってか、せめて隠れてタバコ吸おうぜ。

・・・・・・・・・・・・・・
・・・・・・・・・・・・・・


中の人はいない


There is no inner person.


안의 사람은 없다
アニ サラムン オプタ


里面的人不在
li3 mian4 de ren2 bu4 zai4

飲み会で言われたくないこと


台風関東直撃

どんな感じになるんだろう

そわそわ。


嵐の前の静けさ。
今、家の外では物音はしません。
これから昼にかけて大雨と大風がやってくるみたいで、本当、今日はなんにもない日で良かったわ。

・・・・・・・・・・
・・・・・・・・・・

img
昨日、ホームセンターで買ったの。

10kgぐらいあって、自転車に乗りながら持って帰るの大変だった。
何に使うかっていうと、子ども祭りで使うの。
荷物を運ぶんじゃなくて、これでアトラクションを作るわけ。

テーマは、
img
もちろん、そんなに速く激しく動かすものではなく、子ども3、4人で動かすゆるめの物です。

それでも、前回やった時は、400人以上の集客があった。
前回やった時は職場の備品を使ったんだけど、今年は処分されてしまっていたので、自腹で買うことに。

3400円でした。
100kgまで載せられますって書いてある。
大人でも大丈夫か。

↑↑これのちびっこ版を作ります。↑↑

・・・・・・・・・・・・
・・・・・・・・・・・・

これから、昨日プログラマーさんが見てくださったゲームのソースを改良します。
おかしな点が見当たりました。

ゲームの挙動が遅い部分の理由が分かりました。

・・・・・・・・・・・・
・・・・・・・・・・・・

それからギターとベースの練習もしないといけません。

世界中のTVや雑誌で紹介される程の愛用率!【安全&信頼性公認ペニスエクササイズ器具】アンドロペニスゴールド【サムライ本舗【stmx店】】


・・・・・・・・・・・・

来週は初デートの日、
ああ、でもうまくいくかな。

結局、ダメになるんだよな~、
初デートでダメ人間を見抜かれて。

今まで何人の人とダメになったか・・・

色んな人に結婚しないの?
とか聞かれて。

一気にテンションさがる
飲み会とかで聞かれた日には最悪。
途中で退席したい気持ちでいっぱいになる。

・・・・・・・・・・・・
・・・・・・・・・・・・

結局、一人が似合ってるのかな~
とか考えてしまう。
くっそー

・・・・・・・・・・・・
・・・・・・・・・・・・


結婚しないんですか


Doesn't he get married?


결혼하지 않습니까
キョロンハジ アンスムニカ


不结婚吗
bu4 jie2 hun1 ma

黄色い悲鳴が嫌い だけど、我慢しかない



usagiunagi

思春期前期の黄色い悲鳴が嫌い。大嫌い。
あの大人をちょっとバカにしたような、キャーキャーいう声が嫌い。

それからヒソヒソ話し。
失礼にも程がある。

で、うちの職場にもそういう輩が数名現れて、私も避けていたんだけど、自分がターゲットになっちゃって。
はっきりいってウザイ。

昨日も休みだったんだけど、頭の中でぐるぐる回ってた。
どうやって説教するか。

捕まえて、ネチネチと3時間ぶっ通しで説教してやろうか、なんて暴力的なことを考えてたんだけど、
自分の間違いに気がついた。
やはり面白いことを言ったり、遊んだりして良い関わりと関係作りを通して伝えないといけない。

関係ができてないところにキツイ言い方をしても、苦情とターゲッティングが両方来るようになるだけだ。
器用に立ち回らないと。
今は我慢しよう。

・・・・・・・・・・・・・
・・・・・・・・・・・・・
・・・・・・・・・・・・・

昨日はノヴァで韓国語と、さらに中国語のレベルアップテストを受けた。
ゾーン2になった。
うれしいことはうれしいけど、
ノヴァの工作員から語彙力と文法力がまだまだだそうです。

て、言われた。
そんなことなんでいうのかな~??
テンション下がるんだけど、

まだ初心者から中級者になったばかりなのにそんなアラを言われても困るんだけど。

・・・・・・・・・・・・・
・・・・・・・・・・・・・

昨日はジョギングをしました。10kmほどなんですが、暑くてバテバテでした。
もっと涼しくなって欲しいです。

ところで、鼠国駅近くの高速道路脇の道でSuicaを拾いました。
1万円以上の価値があるものです。

もらっても良かったんですが、
もちろん、正直に警察に届けました。
警察に持っていったら、なんか、奥の部屋に案内されて、書類を書かされた。
住所と名前とTEL
そして、「お礼を要求しますか?」って質問された。
1割もらえるらしい。
それから、お礼の電話を要求できるらしい。

私は、そんなのは無粋だと思って全ての権利を放棄するってところに○を付けた。
つまり、「お礼なんていらねぇよ」
ってことです。

以前の自分だったら自分の物にしてしまっていたかもしれない。
いや、今でも経済的に不自由していたらもらっていたかもしれない。
経済的な満足度って、道徳心と大きな関係があるんですよね。

・・・・・・・・・・・・
・・・・・・・・・・・・

昨日は変な夢をみたな。
よく変な夢はみるんだけど。
隕石が落ちてきて、日本中がおかしなことになって、洪水がやってくるって夢。
おかしな夢だった。

・・・・・・・・・・・・
・・・・・・・・・・・・

今日はギターとベースの練習かな。
練習しないとね。
もう、1ヶ月ちょっとだし。
全然弾けない曲とかあるし。

tunnelsmickey
ミッキーマウスの頭を外そうとする石橋貴明。

1994年の新春の番組らしいけど。

ネズミー好きじゃないから完全に外して欲しかった。

・・・・・・・・・・・
・・・・・・・・・・・
・・・・・・・・・・・

来月から中国語が16:40分となってしまった。
遅いな~。
11時のコースに替えてもらおうかな。

異性とデートが始まるかもしれないのに。
土曜の夕方がふさがるのは痛い。
替えてもらおうかな。

・・・・・・・・・・・
・・・・・・・・・・・


思春期前期の嫌な感じ


Disagreeable touch in the first half of adolescence


사춘기 전기가 싫은 느낌
サチュンギ チョンギガ シルン ヌッキム


青春期前期讨厌的感觉
qing1 chun1 qi1 qian2 qi1 tao3 yan4 de gan3 jue2

やっぱ、団結を高めないといけないよね


人生など、苦楽の連続である。
この苦悩から脱出するには悟るしかない。
一喜一憂してても仕方が無いよね。

昨日、○○さんが無視した。

仕方が無いよね。相手にも機嫌が悪い時がある。
そう考えると許せるよね。


解脱の真理 改訂版―ヒマラヤ大師の教え解脱の真理 改訂版―ヒマラヤ大師の教え
(1997/12)
M.マクドナルド・ベイン

商品詳細を見る


某新興宗教のせいで、解脱という言葉が胡散臭い言葉の代名詞になってしまいましたが、
私は大事だと思っています。

ちなみに、私は無神論者で、無宗教者です。
というか、唯物論者ですから。

しかたがないと思えること。
許せること。
こういったことに到達できることが賢い人間が行き着く境地なのかなと思いました。

我々指導者は解脱者でなければならないのかなと思っています。

・・・・・・・・
・・・・・・・・

指導者のリーダーシップ能力は、その賢さ、IQ、知力に比例する。
人間性や社交性、そういった内面的な魅力は付随的な物である。
これが現在までの結論である。

・・・・・・・・
・・・・・・・・

無能力者は、いかにして集団を崩壊させるか。
そのメカニズムをつぶさに見てきた。

まず、
人間的に未成熟である。
自信がない。
面白みがない。

そして、
声が小さい。
伝えるべき言葉をもっていない。

さらに、
相手の心理を掌握していない。
次の相手の行動を予測していない。

その前には、
準備が足りない。
勉強が足りない。
人生経験が足りない。
特に、失敗経験が足りない。
人間関係の葛藤を経験していない、もしくは、少ない。

私が補助で入って、「集団をまとめるゲーム」をして見せる。
見事に集団がまとまって楽しそうな1時間ができあがる。
それをそのまま、
「こうやってくださいね。」って、崩壊さんに引き継ぐと、
ものの見事に

うまくいかない(;_;)

なぜ?

崩壊さんを見ていて思うこと。

頭が悪い。

愚鈍である。

足元が見えていない。


・・・・・・・・・・・
・・・・・・・・・・・
・・・・・・・・・・・

何をしてもうまくいかない。
どうなってるんだろうね。

・・・・・・

実は10年以上も年齢も経験も上の先輩が大変なことになっている。
結局は、経験年数ではないということ。

実力は確かに経験年数に比例分もあるけど、
でも、解脱者とそうでない者とでは全く異なる。

私はどんな荒れた集団でも取りまとめるメカニズムを理解しました。

・・・・・・・・・・・

tokyoolimpicfukushimanuclear

以前、担当していた子と話しをした。
2年前に担当していた時は団結していたのに・・・

と、残念話。
まったくだ。

あんだけ団結していたのに。
今は嫌な空気が蔓延しているという。
まるで疫病のように。
これは、残念ながら、指導者にも原因がある。

P パフォーマンス

M メインテナンス
の両方の観点から指導を見直さないといけない。

パフォーマンスは規律
メインテナンスは受容

ざっくりいうとこんな感じ。
本当はもっと細かいけど。

厳しいけど、やさしい。
みたいな。
これも大事で、
厳しいけど、とあるように、ルールや規律がまずありき。
そして、やさしさね。

規律があって、受容なんです。

・・・・・・・・・・
・・・・・・・・・・

あと説明がまどろっこしかったりするんですよ。

ゲームを始めるんでも、○○したらだめだよ、とか、ちゃんと参加してない人の注意にイチイチ時間が割かれるとか。
まず、ゲームを始めちゃえばいいんです。
ちゃんと、まじめに参加してない人を無視して。
で、
楽しい、
まだやりたい、
って子を多数派にしちゃって、
ちゃんとやってない子がいるんだったら、もうやらないって、全体の雰囲気からちゃんとやってない子にプレッシャーをかければいいでしょ。

この前のゲームの時も、
例の女性は、説明や、これはダメの時間が多くて、「もう始めようよ」が子どもから始まる。

・・・・・・・・・・・

ベテランの崩壊については、
やはり、マンネリや古いやり方への慣れってのがあると思う。
あと、子どもの心への繊細な気遣いや緊張感の不足かな。

・・・・・・・・・・・


子どもの雰囲気が悪い


A child's atmosphere is bad.


어린이의 분위기가 나쁘다
オリニィ プニギガ ナップダ


孩子的气氛坏
hai2 zi3 de qi4 fen1 huai4

人生変更のためのキーワード

人とラブラブでいることが苦手なので調べていて良かった記事を保存します。

以下、ミクシィより引用

マーク・グール心理学博士が言うには、ある「10のポイント」を守っていれば、どんなカップルでも絶対に仲良くいられるそう。心理学博士が言うのだから信ぴょう性アリ。今スグ試してみて!

1.布団には同じ時間に入る

2.同じ興味を見つけ、「趣味」へとつなげる

3.歩く時には手をつなぐ

4.ケンカを根に持たない

5.「できない」ではなく「できる」に注目

6.帰宅後の顔合わせの際、ハグを必ずする

7.「大好き」「ありがとう」を家を出る前に必ず言う

8.何があろうと「おやすみ」を必ず言ってから寝る

9.お昼やすみにメールを入れておく

10.彼(彼女)と並んで歩くのは誇りだと思うようにする

同じ空間でその日を終わらせるということは、想像している以上にとても大切なことみたい。どんな大きなけんかをしていようと「おやすみ」はしっかりと言い合って布団に入るように心がけて。

そして、「大好き」「ありがとう」などの気持ちを必ず言ってから外出をするように。「これが最後のコトバになるかも」という気持ちを持って。9番の「メール」は、「相手の気分を知っておく事が大切」というのが理由だそう。お昼の時点で彼のイライラを感じ取ることができれば、帰宅後の接し方もわかってくるはず。

シンプルだけれど、これがなかなか難しいですよね。しかし、仲良しのカップルほど、このリストを見て「こんなの簡単だ」と思えるみたい。守るのが難しいと思っているカップルは見直す点が多いかも!?

※当記事は、ハイブリッド翻訳のワールドジャンパー(http://www.worldjumper.com)の協力により執筆されました。

以上、ミクシィより引用

鹿島建設株購入 オリンピックでどう伸びるか

鹿島建設(株)
410円×1000株で購入

鹿島建設購入 / この仕事で大切なこと

kajima
鹿島建設を成行で注文した。

もちろん、オリンピック関連有力銘柄である。

・・・・・・・・・
・・・・・・・・・
・・・・・・・・・

今回、日本がオリンピック誘致を勝ち得たのは、ロビー活動によるところも大きいと思うんだが。
猪瀬都知事の言葉にもあったように、

電車が時間通りに来て、
タクシーの運転手が親切で、
財布を落としても帰ってくる。

そういった日本という国の良さが受け入れられたのだというところが大きいと思う。

・・・・・

私自身、海外旅行をあちこちしていて、日本みたいに安心して暮らせる国はなかなかないよ。
猪瀬都知事が言ったことを私たち日本人は当たり前のように受け止めてるけど、こういった国の風土、道徳観をこれからも受け継いでいかないといけないよね。

・・・・・・・・・・
・・・・・・・・・・

勉強すればするほど、中国語は自信が付き、
勉強すればするほど、韓国語は自信を失う。

なぜだ!?

하루하루 아깝던 그 청춘이 막을 내리고, 청춘이 남김 상처가 아물때 쯤
우리는 아마도 이 사회의 단단한 어른이 되어있을 것이다.
그리고 먼 훗날 한 숨 쉬며 청춘의 끝자락에 서 있던 오늘을 추억할지 모른다.
희망을 향해 뜨겁던 가슴에 감사하고
기쁨도 절망도 슬픔도 열정의 끝을 경험하게 해준 그 시간들에 감사하며 ..
<드라마 9회말 2아웃>

excite翻訳
毎日毎日惜しかったその青春が幕を下ろして、青春が残して傷がア潮時(水垢)ぐらい私たちは恐らくこの社会の丈夫なおとなになっているだろう。
そして遠い将来ある息をして青春の終わりに立っていた今日を追憶するかもしれない。
希望に向かって熱かった胸に感謝して喜びも絶望も悲しみも情熱の終わりを経験するようにしたその時間に感謝して..
<ドラマ9回裏2アウト>

하루毎日 하루毎日 아깝던惜しかった 그その 청춘이青春が 막을幕を 내리고,下ろして 청춘이青春が 남김残して 상처가傷が 아물때水垢 쯤ぐらい
우리는私たちは 아마도おそらく 이この 사회의社会の 단단한丈夫な 어른이大人に 되어있을なっている 것이다.だろう
그리고そして 먼遠い 훗날将来 한ある 숨息 쉬며をして 청춘의青春の 끝자락에終わりに 서立って 있던いた 오늘을今日を 추억할지追憶する 모른다.かもしれない
희망을希望に 향해向かって 뜨겁던熱かった 가슴에胸に 감사하고感謝して
기쁨도喜びも 절망도絶望も 슬픔도悲しみも 열정의情熱の 끝을終わりを 경험하게経験する 해준ようにした 그その 시간들에時間に 감사하며 感謝して..
<드라마ドラマ 9회말回裏 2아웃アウト>

・・・・・・・・・
・・・・・・・・・

初心に帰ることの大切さ。

今、仕事で上手くいっているのは、初心に帰っているからだと思う。
初心を忘れないと、いつも仕事や対応が丁寧だ。
もちろん、慣れてきて、仕事がもっと上手くなるこ効率的に出来るものだ。

そして、なによりも、今は職場の子どもたち以外に考えることがないという利点がある。

親の介護、
妻、
子どもの面倒、
家族、
そういったものが無い、孤独人間だから、唯一の関われる人間を大事にする。

そういうのがあるのだろう、
今うまくいってるのは、
一時でも多く、職場の子どものことを気にして、
そして、初心を忘れずにいるということがキーなのだと思う。

児童福祉施設勤務時も初年度の時の方が、後後よりも良い仕事をしていた。
それだけ、初心を忘れていなかったから。

・・・・・・・

難しい子どもとか、難しい集団ってのは無い。
初心者向けとか、上級者向けとか、って無いと思う。
だって、同じ人間じゃない。
根本は。
一見、問題がなさそうな子が足を引っ張ったりもするもんだし。

とにかく、この仕事で言えるのは、良くも悪くも、子どもを色眼鏡で見てはいけないということ。レッテルを貼りつつあるこの仕事、逆に大事なのはレッテルをはがすということ。
色眼鏡で見ていたら、色眼鏡をはずす。
レッテルを貼っていたら、レッテルをはがす。
そういった心理的な作業が大事なんだと思う。

・・・・・・・
・・・・・・・


レッテルをはがす


A label is removed.


상표(label)를 벗긴다
サンピョルル ポギダ


剥下标签
bo1 xia4 biao1 qian1

日経平均3万円へ GO!

rogekaichou
IOC ロゲ会長 2020 TOKYO


2020年東京オリンピック開催決定の瞬間!最終投票結果発表

tokyoorinpicnikkeiheikin
エコノミストの予測では、2年後をめどに日経平均は倍の3万円台にまで高騰することになりそうです。

オリンピック開幕後も2万円台を予測しており、本格的なデフレ脱却となりそうです。

いやあ、一時はどうなるかと思ったが、
1回目の投票で東京が既に42票獲得していることが分かった。
さらに、
2回目の投票は60票とダントツ。

投資家としては、今回の五輪招致は死活問題ですからね。

・・・・・・・・・
・・・・・・・・・

アベノミクスの加熱感から一服して、今の手持ちの株価はほとんどマイナスでしたが、確実に逆転。
明日の朝は五輪関連銘柄に投資していかないといけません。
ひゃっはー。

・・・・・・・・・

ロゲ会長のプレゼン後の「コングラチュレーションズ」という言葉。
猪瀬都知事も戸惑ってたが。
まさか、
あの時点で決定していたとは。

・・・・・・・・・

オリンピックの経済効果は7年間で3兆円。
デフレ脱却。

・・・・・・・・・
・・・・・・・・・

インフラ系を中心に明日は買わないといけないですね。
鹿島建設とか大林組などですかい。

・・・・・・・・・
・・・・・・・・・
・・・・・・・・・

リアル人間関係でも充実しそう。
今度デートします。
○○○○もできるかな。

そして、研修の合格も目と鼻の先。

そして、東京五輪の招致成功も。

・・・・・・・・・

自分の人生史上、異性と本格的に付き合うことは人生の転換点。
研修の長い長い失敗も、今回は挽回している予定です。

・・・・・・・・・

Olimpiyatları yenilgi

職場での素晴らしい子どもたちの団結。
各種行事の成功。
リアル人生の異性との交際による充実。
研修の合格。
五輪効果による株価上昇。

もう、いろいろなことが目白押しで、人生が成功しつつある。

・・・・・・・・・
・・・・・・・・・
・・・・・・・・・


デフレ脱却


Deflation breaking away


디플레 탈각
ディプレ タルカル


通货紧缩摆脱
tong1 huo4 jin3 suo1 bai3 tuo1

2020年 夏季オリンピック開催地は Derrota de Madrid

2020年夏季オリンピック 

開催地 東京決定


akki-na
ひな人形さんや、ダイナピンクの人も大分法界させてたけど、
今回の剛力彩芽の法界は深刻そのもの。

・・・・・・・・・

社会人として、しっかり責任を持ってやって欲しい。
学生じゃないんだから。

自分の担当の子ぐらい把握してくれないと。

・・・・・・・・・

トルコリラを大量に持っている私としては、トルコも良いかなという感じなんですが。
数百万円を国内株式に投資している私としては東京五輪は是非叶えて欲しいです。

・・・・・・・・・
・・・・・・・・・

昨日、NOVAに行きました。
韓国語の月です。
初心者の方と一緒にレッスンを受けたんですが、
私はあまり自信が無かったんですが、初心者の方が私がしゃべっているのを見て、
「尊敬します」
「すごいです」
って、褒めちぎるのよ。

それほどでもないんだけど。

・・・・・・・・・

えーーと、
韓国語苦手意識がまだまだあるんで、今月中は鍛えようと思います。
韓国語喋れるようになりたい。

・・・・・・・・・


アンドリューndr114 (字幕) - 予告編

昨日はこの映画を観ていた。
ロボットが次第に人間になる話し。

そこそこ面白かった。

1回目の投票でマドリードとイスタンブールがタイ

イスタンブールとマドリードがタイということで、しかも過半数が無いということでした。
この場合の投票数はいくらぐらいだと考えられるでしょうか。

30票、30票、34票みたいな感じで、
もしくは、
28票、28票、38票っていう感じも考えられますが、

とりあえず、トルコとスペインがタイで、ってことと、
総投票数が94票ということなので、色々なパターンが考えられます。

私は投資家として、株価への影響を考えて、とにかく、東京への誘致成功を期待しています。

2020年 夏季オリンピック 開催地

マドリードが落選しましたね。

シリア危機の隣で、デモの起きているイスタンブール VS 原発危機の東京の戦いですか。  
4:03です。

2020年 夏季オリンピック世論調査

イスタンブールとマドリードがタイだそうです。
日本は落選みたいですね。

マドリード41,231票
東京33,099票
イスタンブール8,321票
出典:http://polls.dailynews.yahoo.co.jp/sports/9984/result

ネットで行われた国内の世論調査です。
日本の世論ではマドリードが有力なようです

現在、3:55投票が終了しました。

月マガ10月号 鉄拳チンミネタバレあり / 赤魔道士的人生


自作の格闘ゲームということで、誰かさんが作ったものです。

私も近々、鉄拳チンミの格闘ゲームを作りたいと考えています。
以前のプロトタイプとは全くことなるちゃんとしたものです。

・・・・・・・・・
・・・・・・・・・

鉄拳チンミ 最新号ネタバレあり

月刊 少年マガジン 2013年 10月号 [雑誌]月刊 少年マガジン 2013年 10月号 [雑誌]
(2013/09/06)
不明

商品詳細を見る

鉄拳チンミの進み具合が大分遅いのですが、ようやくバトルが始まりました。

都軍に守られ峠の宿に泊まるチンミとジンタン、美形のビケイ。

そこに迫り来る黒装束の一団。

黒装束の一団は山の木々の上を疾風のごとく走って建物の2階に突入。

・・・・・・・・

以下、10月号のネタバレ

・・・・・・・・

黒装束の軍団は都軍の力量を上回る実力。
ナイフを両手に持ち、数名が足の腱や膝を刺されて負傷。
彼らは都軍兵を殺さずに虫の息にする。
都軍兵は負傷者に気を取られ、黒装束の暗殺者集団はチンミの部屋へ。

隊長も廊下の手すりにまで追いやられる。
都軍はピンチである。

ジンタンがチンミの部屋から出て暗殺者と戦うが予想以上の実力だったのか、手にカスリ傷を負う。
さらに、美形のビケイが応戦、蹴りが当たるものの、暗殺者は表情がなく、ダメージを受けたのかどうかも分からない。
そんななか、一人部屋に残るチンミをミンチにしようと暗殺者が2人、窓から突入する。

来月号は、この2人をチンミが打ちのめす模様。

・・・・・・・・・・

鉄拳チンミ、ダラダラしたストーリー展開がスピーディだったカナン自治区編に比べて気になるが。
それでも、終わらないでくれ、と願う。

misinkafe
↑↑ミシンカフェ↑↑

ミシンカフェというのがあるらしい。

うはぁ!

洋裁やりてぇぇぇ!!!

自分の開襟シャツ作りてぇぇ!

開襟シャツ解禁!


数年内にはミシンで服を作りまくりたい。

・・・・・・・・・・・・
・・・・・・・・・・・・

仕事充実!!!

子ども団結!!


仕事をしていて嬉しいことは、子どもたちの団結力が非常に高くて、見ていて清々しくなること。
昨日は、自由時間に子どもたち全員が自分たちで集まって、男女関係なく、みんなで集まってボールゲームをしていた。

そういうの見ていてると嬉しくなる。

集団がバラバラだと残念だからね。

一致団結して、
チーム一丸、
そんな集団を育ててきた。

昨日は嬉しかった。

・・・・・・・・・

text


oushouhadaka
餃子の王将 金沢片町店で客が裸に。

そして、閉店。
これ、店員がノリノリで参加してるっぽい写真が写ってる時点でアウトだな。

でも、よく調べてみたら店員の服を着ている人も客なんだね。

以下引用
金沢片町店では、来店客が不適切な行為を行った上、撮影した画像をネット上に公開していることが客からの連絡で判明した。金沢の件を受けた社内調査で新潟の問題が発覚した。王将フードは両店について閉店も含め検討する。

 王将フードは不適切行為をした来店客に損害賠償を請求する考え。不適切な行為の画像について、裸の男性がカウンターに座ったり、従業員の服を着て調理場の中に入ったりしている、と説明している。

引用元:http://hamusoku.com/archives/8040197.html

・・・・・・・・・・
・・・・・・・・・・

今日から韓国語の月なので、音読を頑張ってから行こうと思います。
早くレベルアップしたいから。

산다는 건 어차피 외로움을 견디는 것.
누군가가 그랬지...
지구에 4억 인구가 있다면 4억개의 고독이 있다고...
우리는 어설프게 이기적이고 결국 상처를 입혔다.
<드라마 연애시대>

excite翻訳
生きるというのはどうせ孤独だということを耐えること。
誰かがそうしただろう。..
地球に4億人口があるならば4億個の孤独があると...
私たちは粗雑に利己的で結局傷つけた。
<ドラマ恋愛時代>

산다는生きるという 건のは 어차피どうせ 외로움을孤独だということを 견디는耐える 것こと.
누군가가誰かが 그랬지...そうしただろう
지구에地球に 4억億 인구가人口が 있다면あるならば 4억개의億個の 고독이孤独が 있다고...あると
우리는私たちは 어설프게粗雑に 이기적이고利己的で 결국結局 상처를傷 입혔다.つけた
<드라마ドラマ 연애시대恋愛時代>

・・・・・・・・・・

成人以降でも、勉強し続ければ脳細胞は成長し、増え続けるそうだ。
だとしたら頑張るしかない。
韓国語がいつか、本当に簡単だと思えて話せるようになるまで。

・・・・・・・・・・

継続は力なり。
私の赤魔道士的生き方もレベル40ぐらいになってきた(何基準?)
中国語も韓国語も続けているだけあって成長している。
コンピュータの開発の方も。


脳細胞の成長


Growth of a brain cell


뇌세포의 성장
ノイソポイ ソンジャン


脑细胞的增长
nao3 xi4 bao1 de zeng1 chang2

格闘ゲーム作成へ再び・・・/クワドリンガルへの道


誰かさんが作ったゲーム。
まさにファミコンライク↑↑

tinnmi
以前作った鉄拳チンミのゲームはあまりにもプロトタイプすぎて、ゲームとして成立していなかった。
そのため、今一緒にゲームを作っているプログラマーさんの協力を得て、本格的、スト2的な鉄拳チンミのゲームを完成させたいと思っている。

動画用の絵を描くのは時間がかかるものの、自分ならできるという自負がある。
スト2的にキャラクターを選べるものにしたいと考えている。

登場キャラクターは、
チンミ、シーファン、タンタン、ヨーセン道士、ボル将軍、オウドウ、あたりは必須として、、、
他には、シバ、ソウビ、ツェン隊長、ガンテイ

ここら辺を出していきたい。

ゲームの絵については、画力の問題ではなくて、自分自身がゲームのドット絵を描くのに慣れてない問題がある。
高性能のイラストレーターがあればもっと良い絵が描けるんだけど、GIMPではちょっと限界があるかもしれない。

いや、やっぱ違う、、、
GIMPで良い絵を描いている人はたくさんいる。
事実、自分もGIMPでリアル画を描いたことがあるじゃないか。

GIMPに問題があるんじゃなくて、自分の描画方法に問題があるんだと思う。

とにかく、超かっちょいい、チンミの格闘画を描いて、それをスマートなプログラミングで動かしたい。
そして、ちゃんとした格闘ゲームを作りたい。
それが自分の使命だから。
borushougun

yo-sendusi

スト2クオリティで、ボル将軍 VS ヨーセン道士とかって夢のバトルができるのは夢。
シーファン VS ヨーセン道士 とか、
オウドウ VS ボル将軍 とか、

とにかく、自分がやれることは、まず超丁寧に、超かっちょいい絵を描くこと。
それに尽きる。

それから、プログラミングの欠点を探し出し、
さらに、格闘ゲームのアルゴリズムを考え直すこと。

鉄拳チンミの格闘ゲーム、もちろん、3Dでできたら素晴らしいんだけどまずは、2D。
近いうち、完成させたいと思ってます。

・・・・・・・・・・・・
・・・・・・・・・・・・

bosu
今作っているアクションゲームはかなり良いところまでいってます。
ボスキャラです↑↑

・・・・・・・・・・・・

これから、ハシゴのロジックを完成させ、壊れるブロックなど、マリオ的な要素を追加していきます。

勇者と冒険する ゲームプログラミングの世界: enchant.js+JavaScriptで行こう!勇者と冒険する ゲームプログラミングの世界: enchant.js+JavaScriptで行こう!
(2013/08/21)
布留川 英一

商品詳細を見る

最近はenchant.jsなどがあって、ゲームプログラミングへの垣根が随分低くなってきたみたいです。

私は今、Javaで作ってますが、それこそ、私より5~10歳上の世代ではBASICなんか使ってゲーム作っている人いましたし、プログラマーは16進数やらアセンブラやら難解な言語でプログラミングしていましたから、良い時代になったものです。

中高生でもゲームが作れてしまいますよね。
さすがに、今私がJavaで作っているゲームは作るのは難しいかと思いますが。

・・・・・・・・・・・・・
・・・・・・・・・・・・・

Windowsゲームプログラミング (Game developer)Windowsゲームプログラミング (Game developer)
(2004/05)
赤坂 玲音

商品詳細を見る

ゲームプログラマになる前に覚えておきたい技術ゲームプログラマになる前に覚えておきたい技術
(2008/11/15)
平山 尚(株式会社セガ)

商品詳細を見る


一年後の自分予想

中国語ペラになる

韓国語ペラになる

つまり、クワドリンガルになる

( (≪●≫) )Д( (≪●≫) )

クワ

です。

クワドリンガルとは、4ヶ国後話者で、バイリンガル、トリリンガルときて、クワドリンガルです。

英、中、韓、日 ペラの

クワドリンガルです。


来年までにいくつ検定を受けられるか分かりませんが、
韓国語は3級、中国語は2級、英語はTOEICで800点台後半から900点台になっていたい。

・・・・・・・・・・・・・・

クワドリンガルになるための韓国語翻訳日記

사립대 등록금 '훌쩍' 넘는 연 1천253만원 유치원도

사립유치원의 학비 부담이 전국 평균 연 245만원에 달한 것으로 조사됐다. 국가지원금을 제외하고 순수 학부모 부담금만 공표되기는 이번이 처음이다.

지역별로 서울의 사립유치원이 월등히 비쌌다. 서울의 한 사립유치원은 연간 비용이 1천200만원을 넘어서기도 했다.

excite翻訳
私立大登録料'ふわりと'越える年1千253万ウォン幼稚園も

私立幼稚園の学費負担が全国平均年245万ウォンに達したと調査された。 国家支援金を除いて純粋父兄負担金だけ公表されることは今回が初めてだ。

地域別でソウルの私立幼稚園が飛び切り高かった。 ソウルのある私立幼稚園は年間費用が1千200万ウォンを越えることもした。


사립대私立大 등록금登録料 '훌쩍ふわりと' 넘는越える 연年 1천千 253만원万ウォン 유치원도幼稚園も

사립私立 유치원의幼稚園の 학비学費 부담이負担が 전국全国 평균平均 연年 245만万 원에ウォンに 달한達した 것으로と 조사됐다.調査された 국가国家 지원금을支援金を 제외하고除いて 순수純粋 학부모父兄 부담금만負担金だけ 공표公表 되기는されることは 이번이今回が 처음이다.初めてだ

지역별로地域別で 서울의ソウルの 사립私立 유치원이幼稚園が 월등히とびきり 비쌌다.高かった 서울의ソウルの 한ある 사립私立 유치원은幼稚園は 연간年間 비용이費用が 1천千 200만원을万ウォンを 넘어서기도越えることも 했다.した

・・・・・・・・・・・・・・
・・・・・・・・・・・・・・

なんとなく、クワドリンガルへの道も先が見えてきた感がある。
毎日やってただけある。

NOVAでの中韓の月ごとのローテーションと、月1回の英語が功を奏している。
これで1万2千円は安いものだ。

・・・・・・・・・・・・・・
・・・・・・・・・・・・・・


多言語の月ごとのローテーション


Multilingual monthly rotation


다언어의 월마다의 로테이션
タオノィ ウォルマダィ ロテイション


多言语的每月的投手的替换顺序
duo1 yan2 yu3 de mei3 yue4 de tou2 shou3 de ti4 huan4 shun4 xu4

NOVAの中国語 レベルアップ!!


J.S.バッハ《マタイ受難曲》第1部全曲 カール・リヒター(1958)

マタイ受難曲は大きく二部(通常68曲)からなる。第一部は29曲、イエスの捕縛までを扱う。第二部は39曲、イエスの捕縛、ピラトのもとでの裁判、十字架への磔、刑死した後、その墓の封印までを扱う。物語でありながら、一方で精緻な音楽的構造を持った作品でもある。

ウィキペディアより引用

先月観に行った演劇「オレンジの迷信行動」にマタイ受難曲が使用されていた。
マタイ受難曲は私にとって、とても思い入れのある曲である。

・・・・・・・・・・
・・・・・・・・・・

専門学校を卒業して、仲間と別れ、アイデンティティを喪失した中で鬱々と一人実家で絵を描いていた時期。
当時インターネットも無く、相談相手も無く、ただ一人で過ごし、本当に鬱になってしまった自分。
あの当時、自分を支えてくれたのがマタイ受難曲であった。



ついに、
ついに、NOVAの講師からゾーンBの推薦状が出た!
簡単すぎたゾーンAからおさらば。
中国語中級へ向けてGO!


本当に、わけわかんない、予習をしてこない初心者との学習にはウンザリ。
全12課あるゾーンAをたった6課で終了したゼ!!
なんたる速さ。
このスピードでゾーンBも駆け抜けてやるゼ。

今月は韓国語の月。
韓国語もあれこれと勉強してきた。
でも中国語と比べると劣る。

中国語のレベルアップテストを受けるぞ。
講師からは、
你的汉语不错。
と言ってもらっている。

如果我留在初级的话,我继续欺负那个丈夫。

・・・・・・・・・・・
・・・・・・・・・・・

可能性を引き出す韓国語学習

통합진보당의 반발도 거셉니다.

이번 사건은 조작됐다며, 국가정보원 앞에서 대규모 항의 집회를 열었습니다.

김경진 기자가 보도합니다.

excite翻訳
統合進歩党の反発も激しいです。

今回の事件は操作されたとし、国家情報院の前で大規模抗議集会を開きました。

キム・ギョンジン記者が報道します。


통합統合 진보進歩 당党 의の 반발反発 도も 거셉니다.激しいです

이번今回 사건은事件は 조작操作 됐다며,されたとし 국가国家 정보원情報院 앞에서前で 대규모大規模 항의抗議 집회를集会を 열었습니다.開きました

김경진キムギョンジン 기자가記者が 보도합니다.報道します

来月からの韓国語レッスンに向けて、使いそうな表現をまとめておこう。

오늘은 아침부터 덥다.
オヌルン アチムプト トプタ
今日は朝から暑い

오늘은 아침은 흐리고 있었지만, 오후부터 개어 있다.
オヌルン アチムン フリゴ イッソジマン オフプト ケオ イッタ
今日は朝は曇っていたが、午後から晴れている

오후부터 비가 내리고 있다.
オフプト ピガ ネリゴ イッタ
午後から雨が降っている

한국어를 사용하는 기회는 대부분 없다.
ハングゴルル サヨンハヌン キホィ デプムン オプタ
韓国語を使う機会はほとんど無い

이전, 직장에 한국인의 어린이가 있었다.
イジョン チクチャンエ ハングギニ オリニガ イッソッタ
以前、職場に韓国人の子どもがいた

당시의 나는 한국어를 몰랐다.
タンシィ ナヌン ハングゴルル モルラダ
当時の私は韓国語が分からなかった

그 때문에, 나는 그들을 도움을 받지 않았다.
ク ッテムネ ナヌン クドゥルル トウムル パダジ アナッタ
そのため、私は彼らを助けられなかった

susiro-shouyusasi
おんてぃ@クズ浪人

スシローの醤油さしに口を付ける。

・・・・・・・・・・・・
・・・・・・・・・・・・

昨日は、中国語の勉強の後、相撲駅前のサンマルクカフェでプログラミングの勉強をしていたんだけど、
超ウルサイDQN家族が大騒ぎしていて、ウンザリしていた。
こんな人たちがいる中で勉強するのかなって、、、
でも、行ってくれて助かった。

今、メールを交換している方がいるんだけど、飲み友達がたくさんいるそう、、、
私にとってリアルの出会いは大事なんだけど、そういった感じのDQN系のつながりじゃないかな、って、ちょっと心配している。飲んでもいないのに、ラッパ吹いて超テンション高い人たちって、どうしても、合わないから。

でも、大事なことだから。
リアルのつながりって。
ネズミ王国の無料チケツまだ生きてるし。

さて、ゲームプログラミングを今日は続けよう。
そして、そうそう、今日は職場にMUST GOなのです。
書類(台本とか、お便りとか)書かないと。

・・・・・・・・・


中国語で中級になる


It becomes a middle class in Chinese.
主語はITではない気が


중국어에서 중급이 된다
チュングゴエソ チュグビ デッタ


中文成为了中级
zhong1 wen2 cheng2 wei4 le zhong1 ji2