Re/Coder

知識蓄積備忘録/State-of-the-Ars

【備忘録】Xbox One Kinectを複数台使いたいときに...

Xbox One Kinect(Kinect v2以降のKinect)を複数台使いたいときは,libfreenect2を使えば良いらしいです.

github.com

公式のGithub


インストールの手順を詳しく書いている方がいるので,お困りの際は

qiita.com

を参照のこと.

Visual Studio2015におけるPython Tools for Visual StudioのSyntax Error: (unicode error)問題

Visual Studio 2013(Python Tools for Visual Studio)までは

# -*- coding: utf-8 -*-

を記述していれば,日本語などをソースコード内に記述していても,

エラーも吐かずに,問題なく動作していました.

しかしながら,

Visual Studio 2015からは,上記の文を記入していても,

以下のエラー文を吐くようにようになりました.

(エラーにならないのであれば,何も問題ありません.)

SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0x82 in position 0: invalid start byte

原因としては,

ソースコードのファイルが,utf-8ではなくShift_jisで保存しているからです.

なので,解決策としては,

ソースコードのファイルをutf-8に変更・保存することで問題なく実行させることができます.

具体的な方法としては,

メニューバーの「ファイル」→「保存オプションの詳細設定」をクリックし,

エンコードを「Unicode (UTF-8 シグネチャ付き) - コードページ 65001」を選択し,

「OK」をクリック.

その後,ソースコードのファイルを保存スレが文字コードを変更することができます.

【平成28年度SICE四国】SCREEN feels AIR.:風の入力インターフェースの開発

平成28年度SICE四国支部学術講演会にて,投稿した予稿・発表ポスター・ショートオーラルスライドをアップロードします.

学術講演会 - 計測自動制御学会四国支部

色々と反省して修正すべき箇所などがあるのですが,戒めと今後発表する方の参考になれば良いかなと思ってアップロードさせていただきます.

予稿(Amazon Driveにアクセスします.)

発表ポスター(Amazon Driveにアクセスします.)

ショートオーラルスライド(Amazon Driveにアクセスします.)

優秀講演賞を受賞しました.ありがとうございます.

f:id:zigzackey:20161207024820p:plain

ACM 登録手順

読みたい論文が色々あるので,ACM学生会員+Digital Libraryを登録することにした.

今後,また登録することがあるかもしれないので, その時の備忘録としてここに記す.

登録は,以下のURLからアクセスされたし.

Student Membership — Association for Computing Machinery

*のある箇所は必須記入箇所です. それ以外は,恐らく記入が無くとも問題ないと思います.

また,本サイトを参考にして,登録を行い, 何か問題が発生したとしても, 筆者らは一切責任を負いません.

Name

f:id:zigzackey:20161125142211j:plain

Prefix(Mr. Ms. Dr.)やMiddle(ミドルネーム),Suffix(Jr. Sr. I)などがあるのであれば, 記入しましょう.

ないのであれば,First(名)とLast(姓)だけでいいでしょう.

Address

f:id:zigzackey:20161125142716j:plain

Streetは番地以下の情報, cityは市町村, stateは都道府県(日本の情報は打ち込めない模様), Postal Code(Zip)は郵便番号, Countries/Dependencies/Areas of Special Sovereigntyは国名 のことを指しています.

不安であれば,以下のサイトを使用してみると良いかもしれません.

JuDress | 住所→Address変換

Permanent Address

f:id:zigzackey:20161125143810j:plain 普段住居おいているところを書きます.

多くの場合,上記のAddressと同じだと思いますので,

下にある

Same as above

チェックボックスにチェックを入れておきましょう.

Contact Information

f:id:zigzackey:20161125144508j:plain

Phoneは普段連絡がとれる電話番号, Faxはファクシミリの番号, Email address of applicantはACMに登録する方のE-mailアドレス のことを指しています.

Phone・Faxは,国番号(日本ですと,+81)から書き始めるようにしてください. 詳しい書き方は各自でお調べください.

Student Profile

f:id:zigzackey:20161125145112j:plain

Name of Schoolは英語での学校名, Year in School [or equivalent]は学年, Expected Month of Graduationは卒業予定の月, Expected Year of Graduationは卒業予定の年, My degree will be in the following areaは授与している(される)学位の専攻, Expected Degree [or equivalent]は授与している(される)学位, Age Rangeは該当する年齢層, Genderは社会的・文化的な性別, Ethnicity-US Residents Onlyはアメリカ在住でなければ選択しなくてよい, Do you belong to an ACM Student Chapter?は,ACM Student Chapterに登録されているのであればYes・そうでなければNoを選択 のことを指しています.

How did you hear about ACM Membership?/Student Membership Options/Join ACM-W

省略します.

ATC001-A:深さ優先探索

A: 深さ優先探索 - AtCoder Typical Contest 001 | AtCoderの問題を解きました.

AtCoder Typical Contestなので,解説は詳しく書かれており

深さ優先探索による塗りつぶしを見ればある程度わかると思います.

それでは,以下にソースコードを示します.

#define _CRT_SECURE_NO_WARNINGS

#include<cstdio>
#include<iostream>

using namespace std;

const int MAX_W = 500;
const int MAX_H = 500;

void search(int x, int y);

int W, H; // 横幅(Width)と縦幅(Height)
char maze[MAX_W][MAX_H]; // 迷路
bool reached[MAX_W][MAX_H] = {false}; // 到達できるかどうか?

int main()
{
    int sX, sY;    // スタート('s')座標
    int gX, gY; // ゴール('g')座標

    scanf("%d %d", &H, &W);
    for (int i = 0; i < H; i++) // 縦幅(Height)
    {
        for (int j = 0; j < W; j++) // 横幅(Wigth)
        {
            cin >> maze[i][j];
            if (maze[i][j] == 's')
            {
                sX = j; sY = i;
            }
            if (maze[i][j] == 'g')
            {
                gX = j; gY = i;
            }
        }
    }

    search(sX, sY);

    if (reached[gY][gX])
        printf("Yes\n");
    else
        printf("No\n");
}

// スタート座標を(x, y)として関数searchを呼び出す
void search(int x, int y)
{
    // 迷路の外側の場合,何もしない
    if (x < 0 || W <= x || y < 0 || H <= y)
        return;

    // 壁(#)の場合,何もしない
    if (maze[y][x] == '#')
        return;

    // 以前に到達したことがある場合,何もしない
    if (reached[y][x])
        return;

    // 到達した
    reached[y][x] = true;

    // 上下左右4方向に対し,探索を行う
    search(x + 1, y); // 右
    search(x - 1, y); // 左 
    search(x, y + 1); // 下
    search(x, y - 1); // 上
}

注意する点があるといえば,配列の設定の仕方です.

今回は2次元配列で格子状の区画を再現しています.

そのとき,縦幅×横幅[y]xで行っています.

解説のままに書くと,だめなので気をつけてください.