ウイルス性胃腸炎

ウィルス性胃腸炎にやられましたね。

夜中にいきなり気持ち悪くなり、トイレにこもりました。二日酔い以外で吐くことなんてなかったから、これはただ事じゃない!と思いながら、ちょっとたったら治ると思いきや、下痢まできたー。

最近主に小さい子供に流行ってる、嘔吐下痢症です。小さい子供じゃないけど、きたー。

 

嘔吐下痢症とは

突然吐き始め、その後水のような下痢(薄茶〜白)になり、場合によっては熱が出ることもある胃腸炎。一般的には発熱や嘔吐は1〜2日で治まり、下痢は1週間くらいで治ります。他人にうつる事があるので、手洗いをこまめにした方が良いです。

 

治療方法としては、薬の処方もあるけど、家庭での水分補給が大切。吐き続ける時や脱水が強い時は点滴や入院も必要になります。

 

家庭での治療ポイントとしては以下3点。

・吐き気が強い間は何も飲ませない

・吐き気が落ち着いてきたら水分を少しづつ飲ませる

・消化の良い食べ物を食べる

 

下痢の時の飲み物・食べ物

下痢の時には水分補給だけでなく、塩分の補給が大切です。意外にも水分を多く飲むから水っぽい便になるのではありません。スポーツ飲料やコーラなどは塩分が少ないためおすすめではありません。お茶や水も塩分を含まないため、たくさん飲むとぐったりする事があります。

 

塩分(Na)の濃さがある程度以上の飲み物、例えば、オーエスワン、アクアライトなどが塩分が多くてオススメです。

 

赤ちゃんの場合には吐き気が治まって飲めるようであれば母乳やミルク、食べられるようであれば離乳食でも大丈夫そうです。幼児であれば、吐き気が治まって食べられるようであれば栄養とカロリーを補うために幼児食を食べさせても大丈夫です。糖分が多い炭酸飲料やジュースなどは避けた方が良いでしょう。

 

下痢の時の食べ物は消化の良いものがオススメです。例えば、うどん、豆腐、白身魚、鶏肉、おかゆ、スープ、バナナ、りんご、煮野菜などなど。

 

だいだいはオーエスワンとりんごで今日を乗り切りました。早く完治しろー。

アプリ制作記6 ゲーム画面の背景

リバーシのゲーム画面の背景となる画像を置くところを作ります。

 

画面にノードを貼りまくる

ナビゲータエリアのGameScene.sksから、必要なノードとなるSKSpriteNodeを画面上にドラッグします。下図で行くと、以下のノードを貼り付けています。

①は全体の背景となるノード

②はリバーシのボードの枠となるノード

③はリバーシのボードとなるノード

④はボタン領域(待ったボタンと投了ボタンを今の段階では想定中)

⑤の黒ノードは駒と時計のノード、それに対応するラベル

 

f:id:daidaidaily:20180606180825p:plain

 

リバーシのボードとフレームのノードを分けたのは、のちのち座標計算が楽になるかなあ〜と思ったからです。ボードのノードの外に枠が一体型でついていると、左端からフレーム分を考慮した座標だけ引いてから、計算みたいなことにならないようにするためです。

 

ノードに設定を割り付ける

ユーティリティエリアのNameに各ノードを示す名前を指定しておきます。名前が重複しないように注意です。

f:id:daidaidaily:20180606181043p:plain

 

また、最初から最後まで画像を変更させる必要がないものはTextureにpng画像を指定しておきます。今回でいうと、背景、ボード、フレーム、白黒の駒、時計の画像は固定なのでTextureに画像を割つけています。逆に、ボタンはコード内で割り付ける必要があるので、ここではわざわざ指定していません。

 

画像を対応づけた後は、ノードの大きさが画像に依存して変化してしまうので、ユーティリティエリアのPositionとSizeを変更して想定通りの大きさになるように設定しています。背景は750*1334のサイズに合わせています。

 

設定した後で、ノードの前後関係が入れ替わっていて、表示したい画像が他の画像の下に隠れてみえないよ〜という場合は、上図左のノードの行をドラッグで上下に入れ替えると背面/前面の変更ができます。

f:id:daidaidaily:20180606183146p:plain

 

背景画像のように、全ての画像の下側に表示したい場合は図中のように、BackGroundのノードを一番上までひっぱってあげれば最背面に表示されます。

 

ウンウン、画像が貼られるだけでなんとなくゲーム画面っぽくなってきてテンションあがってきますやん。

 

他人の仕事に興味を持つということ

足の裏が痛いのでそっちに興味がいっている、だいだいです。

 

大変申し訳

仕事をしていると、理不尽な要求や納得できないことはあるものですね〜。今日は、もうちょい他人の仕事に興味を持ってもらえると嬉しいなあと言われました。やばい、そんなに今の仕事のグループメンバに興味がない事がばれているのか!?

 

とはいえ、他人の業務には全く興味がないわけではなく、そもそもグループ内の業務なんて、なんらかの関わりや繋がりがあるものがほとんどなので、いつか自分も関わるかもしれないという思いでなるべく他人の業務も把握しようとはしています。そして、自分が経験した範囲内で他人が困っていればノウハウは伝えているので、興味を持てとはどういうことか?と思ってしまった。

 

興味とは???とやんわりきいてみると、もっとグループの人に近づいて業務の内容を聞くとか・・って、わざわざ聞きに行くの!?世間話?をしろということ?ますますよくわからん、、、もっとおしゃべりしたいのかなあああ。自分の仕事に集中していて大変申し訳、ありませぬ〜〜。

 

とんでもプラス思考

拡大解釈をすると、もっと他のグループのメンバの業務内容を把握して、困っていれたり非効率なやり方をしていたら、方向修正してアドバイスしてあげて。という事じゃなかろうかととんでもプラス思考で1案考えてみた。

 

ただ、今の会社にいて思うのは、わざわざ他人の業務に首をつっこむと、場合によってはじゃあそれでお願いねと頼まれるリスクや、案件を進めている本人のプライドから頑なに反論してきたり疲れることの方が多い、ということ。それなら初めからグループのメンバとはある程度の距離感を持った方がよいのでは?と思う。

 

とはいえ、内容は別にして、直して欲しいところを言ってくれるということはそれなりに意味があって言ってくれていると思うので、そこはしっかり言った人の心境まで考えたい。しかし、会社では色々な人が色々なことを言いあうため、小さいことを1つ1つ考えてたらキリがない。毎回咀嚼するのではなく、取捨選択をして考えるべきことだけを考える!ができるようにならねば。

アプリ制作記5 シングルトンのパラメータクラス

画面はすんなり表示できるという事がわかったので、次はオセロゲームに必要なコーディングの準備をしようかな。

 

ゲーム内で必要になる色々な変数を、画面やノードなどに分散させて持たせるのではなく、プロジェクト内で唯一となるパラメータクラスに持たせて管理しようかなと構想してみました。

 

唯一といえばこれ、シングルトンパターンを使ってみたい!という事で、基本形を描いてみました。

 

import Foundation

import SpriteKit

import GameplayKit

 

class Parameter{

    static let sharedInstance = Parameter()

    //マスの幅と高さ

    public let _X : Int = 8

    public let _Y : Int = 8

    //制限時間

    public var _timeBlack : Int?

    public var _timeWhite : Int?

    //秒読み

    public var _sec : Int?

    //1マスの幅と高さ

    public var _UnitWidth : Int?

    public var _UnitHeight : Int?

    //駒の幅と高さ

    public var _FrameWidth : Int?

    public var _FrameHeight : Int?

    //座標(右上0,0  右下0,7 左上7,0 左下7,7)

    public var _UnitCenterX = [Int]()

    public var _UnitCenterY = [Int]()

    //座標の状態(0:コマなし 1:黒 2:白)

    public var _UnitExist = [Int]()

    //現在の手番(1:黒 2:白)

    public var _CurrentPlayer = 1

    

    private init() {

    }

    

    //黒の時間を返す

    func GetTimeForBlack() -> String{

 

    }

    

    //白の時間を返す

    func GetTimeForWhite() -> String{

 

    }

    

    //黒駒の画像を返す(引数は盤上の座標 右上0,0  右下0,7 左上7,0 左下7,7)

    func GetBlackFrame(aX:Int, aY:Int) -> SKSpriteNode {

 

    }

    

    //白駒の画像を返す(引数は盤上の座標 右上0,0  右下0,7 左上7,0 左下7,7)

    func GetWhiteFrame(aX:Int, aY:Int) -> SKSpriteNode {

 

    }

    

    //1マスの幅と高さ、駒の幅と高さを指定(引数はボードのSKSpriteNode)

    func SetFrameAndUnitXY(aNode:SKSpriteNode?){

 

    }

    

    //駒を置く(引数:置いた位置 戻り値:true正常に置く false異常位置)

    func SetFrame(aX:Int, aY:Int) -> SKSpriteNode? {

 

    }

 

}

 

オセロの盤上で必要になると思われる、1マスの幅と高さだったり、黒と白の制限時間だったり、パラメータ絡みで必要になりそうな関数だったり、シングルトンを使ってパラメータクラスを定義しました。

 

呼び出し側は、

 

Parameter.sharedInstance.メンバ変数

Parameter.sharedInstance.メンバ関数

 

とすることで、必要な画面からどこでもパラメータクラス内の変数や関数を呼び出せて、パラメータクラスは乱立しないことになります。これがどこまで使い勝手良く使えるかは今後みていこう。そうしよう。

アプリ制作記4 画面遷移

前回は、ボタンを押したらイベントを取得できるところまで作成しました。今回は、画面の遷移についてやりたいと思います。

 

画面作成→名前作成→少しのコード

前回作成した、ボタンを押したら呼ばれる関数の中で、デフォルトで用意されているGameSceneを呼び出す処理を作りたいと思います。

まずはGameSceneのCustomClass名をGameSceneにしておきます。

f:id:daidaidaily:20180525195050p:plain

 

その後、ボタンのイベント関数の中に、コードを少し書いてGameSceneを呼ばれるようにします。

    //ボタンクラスで作成したボタンが押された場合に呼ばれる関数

    func Pushed(aButton: ButtonNode) {

        if (aButton.name == "StartButtonPushed") {

            //GameSceneを生成

            let scene = GameScene(fileNamed: "GameScene")

            //画面をフィットさせる

            scene!.scaleMode = .aspectFill

            //画面を遷移させる

            self.view?.presentScene(scene)

        }

    }

 

GameScene作成時に、fileNamedから初期化してaspectFillしておかないと、どでかい画面がでてきて訳わからんようになります。それにしても、結構すんなり画面遷移が実現できて良いですね。とても良いです。

Swiftのforとか配列とか

はじめてのforの文法にびびっている、だいだいです。

 

Swift版のfor

Swiftの文法でびっくりしたのが、今までのforと文法が違う!ってところです。CとかCとか、あとC言語とかのforのイメージでいくと、

 

        for var i = 0; i < 100; i++ {

        }

 

こんな雰囲気でかけたはずなのに、Swift3.0からは、

 

        for i:Int16 in 0..<100 {

        }

 

こんな感じになります。他にも書き方はあるみたいですが、まずはこの表記に慣れながらやっていきたいと思います。複数の言語をやると、あれ?どんな書き方やっけ?みたいなエラーが出ます。慣れがまだ足りてないんですかね。それか歳ですね。

 

Swift版の配列

可変配列はどんな文法かなーっと調べてみると、ObejctiveCみたいにNSMutableArrayとか型を宣言しなくても、

 

    var UnitCenterX = [Int16]()

 

こんな風に、配列を宣言するように自然?に宣言するとこれが可変配列になるようです。

 

値を追加するときは、.append関数で追加します。C++でいうpushback、VBでいうaddみたいな感じをうけます。なんにせよ、慣れが必要!ということですね。勉強します。

 

 

会社の人との付き合い方

残業で若干頭が痛い、社畜の鏡だいだいです。

 

会社でのコミュニケーションと、会社外でのコミュニケーションは全然違う。会社の人たちはあくまでも会社の繋がりで決して交わらない!と思ってます。水と油、太陽と月。人間的に尊敬したい人や気難しくて付き合いづらい人、いろいろな人がいるけど、好き嫌いの問題ではなくあくまでも会社の人という認識のもとの付き合い。

 

会社の人と普通にコミュニケーションはするけど、プライベートの深いところまでは興味がありません。最近のやつらは、、って言われそうな気がするけど、、甘んじて受け入れます!共に良いものをつくりあげていきたいとは思うけど、仲良くなりたいとは思えない。

 

社会人してきて思うのは、大抵のサラリーマンは、指示のないところで仕事を自ら進んで取りに行こうとはしません。むしろ、業務範囲内であっても、何かと理由をつけて他部署に押し付けます。良いように言えば、周りを巻き込むっていう事ですね。

 

会社では仲の良し悪しに関わらず、仕事を頼み、頼まれる状況になります。馴れ合いの関係で仕事を請け負ったりしなくてもいいように、会社の人との付き合いは絶妙な距離感を保つ方が個人的にはいいと思います。仕事をしていると、どうしても誰かにお願いする事柄が出てきますから。営業、設計、ソフト、ハード、保守、現場、どう頑張っても一人では完結しない。一人でできる仕事って限られています。