ANA国内線【PR】

書けるうちに

今日は昼ごろからタイピングゲームの開発に。
Timerクラスを使って実装してみたものの、
途中で間隔を変化させることがどうやらできなさそうなので断念。
マルチスレッドを使った場合と、CPU使用率とメモリ使用率が大して変わらないのと、
19ワードほど同時表示してみても使用率が20%いくかどうかといった感じなので、
取り敢えずはこのままいくことにしました。

実装途中に飲んでいたモンスター。


問題は音声かな。もっと快適な感じの打鍵音にしたいかもしれない。
何かいいものがあれば。

そして最近はJavaの根本的な構造の見直しということで、
Effective Javaとデザインパターン入門の本を読んでいます。

デザインパターンを先にやっています。ここまできて漸く理解が進むようになってきた感じ。
1章 Iterator
2章 Adaptor
3章 Template Method まで。

19時ごろに帰宅し始め、21時にゲーセン。


サイハテの感覚が少しずつつかめてきた。

BEMANIも2クレ。1回目はreunionを74%。2回目は100%でクリア。

  # by ddrer-yossi | 2012-05-14 23:45 | 日常生活 | Trackback | Comments(0)

仕事後に渋谷TODへ。

今日は朝っぱらから仕事。といっても新しいジャンル。
XAMPPを導入し、phpMyAdminを使ったり、redmineを使ったり、
Codeigniterとdx_authを使ったりと。
まず最初にぶち当たった問題としては、apacheが起動しないという問題。

原因はSkypeでした。音声着信に80番ポートを利用しているため、
apacheで使えなくなってしまうと。
Skypeのほうでポート番号を設定することが、楽で、
もちろんapache側のほうからでも設定は可能。


お昼はマグロ漬け丼のセットです。

4時に切り上げて渋谷のTODへ。
2章と3章で助けないことによるルート変化を楽しみました。
スコアが6章だけ反映されると知って、
無謀にも8体ノーミスを全力で挑戦してみたものの、1ワードしか取れず。
3プレー中、1回目はなんと1コインできずに終了してしまった。

ぱとらっしゅぼくはもうつかれたよ

結局3クレやって終了。地元ゲーセンへ。
ここでは、diva1クレ、ビーマニ1クレ、ミュージックガンガン2 1クレ、バスケもどき1クレをプレー。
特に目ぼしい更新はなかった。

帰宅後は、非常に強い眠気に襲われて、21:30-23:30ぐらいまで寝ました。

ちなみに TOD 攻略と書くとテイルズのほうが出ますし、
TOD 攻略 分岐 とかでも一緒です。

  # by ddrer-yossi | 2012-05-13 23:51 | 日常生活 | Trackback | Comments(0)

慌ただしい一日

今日は午前中は少し日記を書きました。3日分が重いせいで、9,10,11日を書くだけで終了。
お昼は某所で食事会に参加しました。



料理はとても多かったですね。あんまり食べられませんでしたし、時間もありませんでした。
15時ごろに切り上げて、2時間かけて都内某所へ。

そこで、仕事要件について少々お話をして、結局これが長くなって20時ぐらいまで。
渋谷TODに立ち寄って、2クレ。うん、最近立ち寄り過ぎだわ・・・。
これからたまに立ち寄ることになりそうなので、TODタグたちあげてみます。
Tags:# 

  # by ddrer-yossi | 2012-05-12 23:58 | 日常生活 | Trackback | Comments(0)

久しぶりにポップン

日記は10日分溜まる前に消化しておきたいのが本音ですが、
なかなか時間が取れず、今も早足で書いているところです(5/12 10:00)

今日は仕事。お昼はすき家で高菜マヨの並盛。

夜21時近くまで仕事をして、それからゲーセンへ。
内訳は DDR 1クレ、jubeat 1クレ、pop'n 2クレ でした。
DDRはSigSigのDifficultを粘着する。



5度目の正直といった感じ。

jubeatは難易度10を色々と更新。1クレで人が増えたのでやめる。
その後はpop'n、38を1曲クリアという収穫だけに終わった。久しぶりなので許容範囲か。

更に地元ゲーセンではdivaを1クレ。特に更新事項なし。

帰宅後はDDR。WAKA LAKAまでフルコンペースだったのに、
油断したら一気に3ミスして撃沈した構図。


その後はWii Fitで30分ほどジョギング。
体重が太り気味から標準になりました。BMI25を切ったのは久しぶりに快挙です。
体重も90→87まで減少しました。いい調子です。
初め二週間ぐらいは運動を続けてもなかなか体重が減らなかったのですが、
その後一気に減りました。

タイピングゲームに関して少し語りましょう。
音を鳴らす側のスレッドは、常時while(true)で回すのではなく、
回しつつ、wait()で待機して、音を鳴らす時にnotifyさせるようにしました。
これにより、CPUの使用率が4コアで30%前後だったものを、
10%前後に低減することに成功しました。
アニメーション側はしょうがないので、問題ごとに生成して、repaint処理をさせるようにしました。
ちなみにスレッドの生成方法は、大きくわけて3つあります。
・Threadクラスを継承する
・Runnableクラスを実装する
・内部クラスを使う

内部クラスを使うことで、run()内の記述を別々に作ることが出来ます。便利便利。

Thread th1 = new Thread(){
public void run(){
//処理
  }
};

  # by ddrer-yossi | 2012-05-11 23:59 | 日常生活 | Trackback | Comments(0)

Codeforces #119

今日は昼の講義後は、ずっとカービィのエクストラをやっていました。
4面まで終了ですが、4時間ほど。


帰宅後はcodeforcesの準備にとりかかりました。

A問題。僕としては非常に苦手な問題でした。
紐の長さが与えられていて、a,b,cの数値の長さになるように切る。
なるべく沢山切った時の本数を求めよという問題。
つまり短いのを沢山生成しつつも、余りが出ないようにするということ。
1時間ほど悩んで提出した解答は、hackされました。
それを後日提出してみたところ、wrong answer 20。
少し一手間欠けたもののwrong answer 41なので、根本的な書き直しが必要かもしれません。

B問題は、幅と高さが与えられていて、ひし形の数を数える問題。
軸が必ずマス目に並行になります。
これは計算するだけ。

import java.util.Scanner;
public class Test {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
int w = input.nextInt();
int h = input.nextInt();
System.out.println(maximum(w,h));
}

public static long maximum(int w,int h){
w += 1;
h += 1;
long count = 0;
for(int i = 3 ; i <= w ; i+=2){
for(int j = 3 ; j <= h ; j+=2){
count += (w-i+1)*(h-j+1);
}
}
return count;
}
}

C問題は、Aの数字の並びからBの数字の並びにする
操作は、Aのいちばんうしろの数字を1個取って、Aのどこかに挿入するということ。
この操作でBにする際の最短回数を求めよという問題。

たとえば 13245 12345であれば、13245→13524→13452→12345と3になります。
どういう法則かといいますと、Bの並びを順に見ていって、Aは1回だけ全部見ていって、
Bの並び順で1個でも該当しなくなった時点で終了ということです。
わかりづらいので例を解説に。

A 13245
B 12345 1は一致する。

A 13245
B 12345 A:3、B:2はダメ

A 13245
B 12345  2は一致する

A 13245
B 12345 A:4、B:3はダメ

A 13245
B 12345 A:5、B:3はダメ

Aの配列を調べ終わったので終了。

つまり1,2の2つの部分だけ一致するので、
長さの5からこの2を引いた3が答えになります。
オーダですが、Aの配列を読み終わるまでなので、
for文を見ると二重ですが、O(n)です。
非常に高速!それを踏まえてコードを。

import java.util.Scanner;

public class Test {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int[] bn = new int[n];
int[] an = new int[n];
for(int i = 0 ; i < bn.length ; i++){
bn[i] = input.nextInt();
}
for(int i = 0 ; i < an.length ; i++){
an[i] = input.nextInt();
}
System.out.println(maximum(n,an,bn));
}

public static int maximum(int n,int[] an,int[] bn){
int stindex = 0;
int count = 0;
for(int i = 0 ; i < an.length ; i++){
boolean falseflag = true;
for(int j = stindex ; j < bn.length ; j++){
if(bn[i] == an[j]){
stindex = j+1;
count++;
falseflag = false;
break;
}
}
if(falseflag)break;
}
return an.length-count;
}
}

  # by ddrer-yossi | 2012-05-10 23:17 | codeforces | Trackback | Comments(0)

< 前のページ 次のページ >

SEM SKIN - DESIGN by SEM EXE