なでしこでリバーシ(オセロ)

日本語プログラミング言語なでしこ
でリバーシを作っていく講座を作成中です。
よかったら見てください。
https://osdn.net/users/bellyoshi/pf/ReversiGame/wiki/なでしこ

ヒカルの碁にはまった、

ヒカルの碁にはまって
パンダねっとにも登録してしまいました。
パンダネット高いよね。
来月から
幽玄の間にしようかな。

着信のバイブレータかとおもったら

着信か
おなかの虫が
昼告げる

着信のバイブレータかとおもったら
自分の腹が減っていてなっていた。

kdevelopのインストールとHello Worldまで

Ubuntu 16.04にKdevelopをインストールしてみる。
端末を開き
sudo apt-get install kdevelop
と入力する。
apt-get -f installしてください。と表示される場合もあるのでその通りにしてからkdevelopをインストールする。

kdevelopを起動する。

New Projectを選択
Application Nameに適当に名前を入力
Next
Version ControlはとりあえずNoneにしておく。
Finish

Sorry – KDevelop
Could not load project management plugin KDevCMakeManagerと出てしまう。
なぜでしょう。
端末のほうをみてみると、
Reason: cmake is not installed
とあるのでcmakeをインストールすればいいのかな。
sudo apt-get install cmake

もう一度プロジェクトを作り直すと
Buildまではうまくいった。
Executeをしたが、端末にBad Windowとでて実行はできなかったが、
端末からBuildディレクトリーの中の実行ファイルを起動するとHello Worldと表示された。

HSPでお絵かき

HSPでお絵かきができるようなプログラムを書いてみました。
とっても簡単でした。できることは単に自由線をかけるだけなんですが
これを拡張していけばお絵かきソフトもできるかも。
無題
color:boxf
preX = -1
preY = -1
repeat
getkey LeftButton, 1
if (LeftButton) {
color $FF,$FF,$FF
if (preX == -1 and preY == -1) {
pset mousex,mousey
} else {
line preX, preY, mousex,mousey
}
preX = mousex
preY = mousey
} else {
preX = -1
preY = -1
}
await 1
loop

hspでフラルクタル

再起呼び出しでフラルクタルを書いてみました。
tree

#module
#define dtheta 0.5
#deffunc func int n, int sx,int sy,int ex,int ey, double theta, double r
if(n == 0) {
return
}
line sx + 320, 380 - sy , ex + 320, 380 - ey
func n - 1, ex, ey, sin(theta + dtheta) * r + ex, cos(theta + dtheta) * r + ey, theta + dtheta , r * 0.9
func n - 1, ex, ey, sin(theta - dtheta) * r + ex, cos(theta - dtheta) * r + ey, theta - dtheta , r * 0.9
return
#global
color:boxf
color $00,$FF,$11
func 10, 0, 0, 0, 0, 0.0, 60

ネピアの数

ネピアの数を計算するhspのプログラムを作ってみました。
難しいのは数式を表示するとこかな。

;ネピアの数計算
;lim x→∞ (1+1/n)^n
#include "hspmath.as"
mes "ネビアの数"
pos 20, 40
mes "e = lim ( 1 + ― ) "
pos 140, 20
mes "1"
pos 140, 60
mes "n"
pos 165, 28
mes "n"
pos 50,55
mes "n→∞"

pos 10,100
n = 1
e1 = 2
do
n = n * 4
e2 = e1
e1 = pow (1.0 + 1.0 / n, n)
mes "n = " + n + " の時 e = " + e1
until absf(e1 - e2) < 0.0000005

碧血剣

碧血剣のDVDをみた。
小説とだいぶ変わっている。
小説では殺されるのだがDVDでは温義が自殺する。
でもって、夫の墓に埋めてほしいとお願いするのだが、
そんなら、墓の前で死ねよと突っ込みたくなる。
運ぶの大変じゃん。

主人公がむちゃくちゃ強いのだが、なぜ強くなったのかがDVDでは
ほとんど省略されている。

あまりネタバレしてもあれなので、この辺で終わります。

興味のある方は以下で読んでみてください。

碧血剣 単行本 全3巻 完結セット[マーケットプレイス文庫セット] (徳間文庫)

App.hとApp.cpp

前回まででDirextX12のプロジェクトが作成されたが、
msdnのサンプルはDirextX11なのでこのまま進んで大丈夫だろうか。

App.hを簡単に見ておく。


ref class App sealed : public Windows::ApplicationModel::Core::IFrameworkView
{
public:
App();

//IFrameworkView メソッド.
virtual void Initialize(Windows::ApplicationModel::Core::CoreApplicationView^ applicationView);
virtual void SetWindow(Windows::UI::Core::CoreWindow^ window);
virtual void Load(Platform::String^ entryPoint);
virtual void Run();
virtual void Uninitialize();

まず”ref”ってのがわからない。独習C++にはのっていない機能だ。

NET Framework 専用のクラスを参照クラスといい、ref キーワードを用いて宣言する。
マネージクラスとも呼ばれる。
.NET専用にC++言語を拡張したわけなのでC++の教科書にはのっていないわけだ。

sealedキーワードはfinalのマネージクラス版のようだ。

AppはIFrameworkViewインターフェイスの実装をしている。

App.cppの中に
mainがある。


int main(Platform::Array^)
{
auto direct3DApplicationSource = ref new Direct3DApplicationSource();
CoreApplication::Run(direct3DApplicationSource);
return 0;
}

autoというのはC#でいうvarで型の指定を省略するものだ。

MSB8036のエラー

WebでDirectX12のサンプルを落としてきたが
MSB8036のエラーでコンパイルできないことがある。

MSB8036 The Windows SDK version 10.0.10069.0 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting “Retarget solution”.

の具合だ。
いやいや、WindowsSDKインストールしてあるだろう。と思うわけだけど、
マイナーバージョンが微妙に違うわけです。

いわれた通りプロジェクトを右クリックして[SDKバージョン再ターゲット]ってのを選ぶわけですが、
うまくいかないわけです。
sdkretarget

テキストエディタで.vcxprojファイルを開き

10.0.10069.0

の部分を

10.0.10586.0

のように自分がインストールしたバージョンに書き換えるとうまくいきました。