YOS G-specの適当なブログ
ゲームやネットが大好きな人のブログ。毎日更新を目指してました。
2016年12月31日 (土) 23:14 | 編集
去年よりはマシかなぁと思うところもありますが、ブログ更新度は似たり寄ったりな感じでありました。
そして、僕がまたいろんなプログラミング言語に手を出すのにハマったということもあってそれ関係の記事が多いかなぁという感じ。

ゲームの面だと今年で大きかったのはMHXか討鬼伝2なのかなぁ。
MHXも討鬼伝2も武器愛を語ったら尽きないので良作でした。
※討鬼伝2の初期verは見ないふり…

音ゲーはちょいちょい暇な時にやっていました。
Vitaを買ったのでそれでも太鼓の達人とか。ゲーセンではmaimai。
あとは少しクロスビーツもやっていました。
やはりハウス調と言うかブラックミュージック的な物が好きなんだなぁと実感しました。

他にはアクションゲームにもちょっぴりハマってまだクリアしていないけど、ショベルナイトを買ったり、結局ロックマンクラシックスも買ったり。
カービィのロボボプラネットは面白かったなぁ。ロボボのアクション性はかなり大好きでした。

あとこれは無料ゲーだけど、みんなでスペランカーZも面白かったです。
FC版よりもかなりマイルド(特に梯子周り)になっていてかなりプレイしやすかったです。
一つ当たりのステージも長すぎないのでさっくりプレイできるのが良い所。
出先でもできればいいのになぁと思うけど、ネットワークの問題でそれは叶わないのが残念。

プログラミングに関して言えば、色々な物に対する考え方が理解できた気がします。
具体的には、ラムダ式、匿名関数をいじり回すコツと再帰関数の使い方、JavaScriptを含めたコールバック関数、非同期関数の使い方などなど。
クラスの使い方も作って利用することに関して言えばほぼ大丈夫かな? 継承とかはそのうち…。
Qiitaを始めたことも大きなハイライト。

言語面で言うとD言語、Python、C++もそこそこ本気で使い(遊び)始めました。
自作したMery用マクロでどの言語でもさっくりコンパイルできて便利便利。
僕が使うために作ったので当然と言えば当然だけども。

お仕事的には2年目にて初めての異動があり、これまでとはまた違って密度が濃い1年でした。
来年からはもっと大変になりそうなので程々に頑張っていきたいと思います。

なんか、ブログ更新していない分詰め込んだら文章が想像以上にごちゃごちゃしちゃいましたが、時間も無いので今年はこんなところで。
それでは今年も有難うございました。
また来年もよろしくお願いします。
良いお年を。
2016年12月29日 (木) 07:26 | 編集
たったこれだけ書くのに結構苦労したやつ。
もうMonoのVBはしんどいので、VB入り.NetCore早く普及し始めないだろうか…


Imports System.Console
Imports System.Collections

Class myItems
Dim Cost As New ArrayList()
Dim Divs As New ArrayList()
Dim Subs As New ArrayList()

Sub AddItem(myItem As String)
Dim mys As String()=myItem.Split(" ")
Cost.Add(CInt(mys(0)))
Divs.Add(CInt(mys(1)))
Subs.Add(CInt(mys(2)))
End Sub

Function Buying(myItem As String) As Integer
Dim mys As String()=myItem.Split(" ")
Dim BuyId As Integer=CInt(mys(0))-1
Dim BuyMax As Integer=CInt(mys(1))

Return Cost(BuyId)*BuyMax-Fix(BuyMax/Divs(BuyId))*Subs(BuyId)
End Function

End Class

Module Program
Sub Main
Dim Mate As New myItems()
For I As Integer=0 To CInt(ReadLine())-1
Mate.AddItem(ReadLine())
Next

For I As Integer=0 To CInt(ReadLine())-1
WriteLine(Mate.Buying(ReadLine()))
Next
End Sub
End Module
2016年12月06日 (火) 22:11 | 編集
最近ちょっとC++で遊んでたのでマルチスレッド書いてみた。
Async使ってやるとほぼ、.NetのTaskとほぼ同等に扱えるから楽。
waitメソッドで待機。
必要ならgetメソッドで返り値もちゃんと返してくれる。

ただ、複数オブジェクトに対する待ち合わせ処理は一切ないみたいなのでそこら辺は工夫して使わないといけないね。

#include <stdio.h>
#include <iostream>
#include <string>
#include <vector>
#include <thread>
#include <future>
#include <sstream>
using namespace std;

int main(){
vector<int> sortResult;
auto delayWait=[&](int wait)->future<void>{
return async(launch::async,[wait,&sortResult]{
this_thread::sleep_for(chrono::milliseconds(wait*10));
sortResult.push_back(wait);
});
};

cout<<"【SleepSort C++ future】\n> "<<flush;
string input;
getline(cin,input);

vector<string> items;
stringstream ss(input);
string val;
while(getline(ss,val,' ')){
items.push_back(val);
}
vector<future<void>> itemfutures;
for(string val:items){
itemfutures.push_back(delayWait(stoi(val)));
}

for(auto &val:itemfutures){
val.wait();
}
for(int i=0;i<sortResult.size();i++){
if(i!=0){
cout<<", ";
}
cout<<sortResult[i];
}
cout<<endl;
getchar();
}
2016年12月03日 (土) 04:08 | 編集
ここ最近で16言語分プログラム書きました。

文字列操作比較16言語

文字列操作はプログラミングの初歩的な処理だけど、
言語ごとに結構違ったりするのでそれを比較してみようと言う試みです。
Splitが足りない言語は自分で調べながら実装もしてみてるので良い勉強になったかなぁという感じ。

そして今回一番衝撃受けたのは主流Lisp4言語の中ではCommonLispが最弱っぽいということ。
CLは僕が一番使用するLispなので色々頑張った。
あとEmacsLispはLispと冠しているだけあって構文は他のどの言語よりも一番CommonLispに似ていた。
文字列操作も必要なものは全て揃っていて強力。
日本語さえもう少し強ければ嬉しいんだけどねぇ…

Schemeも標準実装だと関数足りて無さそうな感じだったけど、Gauche拡張で武装されていて足りないものはなかった。

Clojureに関しては再代入禁止と言うことでピラミッド作って遊んでいた感じがする。
余談だけどCLRだと問題なく動くけどJVM版では何故かエラーがでる。
また、Clojureのエラー文もわかりにくいしねぇ。
言語自体は割と好き。

次に、つい最近map関数やらreduce関数やら使い始めたのでこれらも処理の中に混ぜ込んでます。
古めの手続き型言語でなければ大体使えるようだ。
そして、.NetのLinqはこれらの集合体と言うことを知ってビックリ。
てっきり、SQL文的なものかと思ってたけれども…
(ConvertAllとSelectの違いがわからない)

案の定HSPに関してはmap系関数習得してるわけがなかったので、サクっと実装してみました。

HSPでmap, reduce, filterを定義する

defineはやはり強力だねぇ。
Template by 【投資信託のことなら】投信Web /

Powered by .