院卒新人サラリーマンのメモ代わり

備忘としてのメモを記載

2018-01-01から1年間の記事一覧

プログラミングしてない

最近、他のことが忙しくてプログラミングをしていない。 大変まずい。 というか数学パズルの本が難しすぎてやる気が出ない。毎日10分でいいから触れよう!

プログラミング力をつける

もっとプログラマ脳を鍛える数学パズル アルゴリズムが脳にしみ込む70問作者: 増井敏克出版社/メーカー: 翔泳社発売日: 2018/02/19メディア: 単行本(ソフトカバー)この商品を含むブログ (4件) を見るプログラミング力をつけるためにやってみる。 いきなり…

vue.jsでオセロ

<template lang="pug"> .osero #app p 白:{{ w_point }}, 黒:{{ b_point }} p {{turn}}の手番 .container(v-for="(i,idx) in 8" :key='idx') .waku(v-for="(j,idx2) in 8" :key='idx2') div(:class="{ 'white': cell[i][j]==true, 'black': cell[i][j]==false }" @click="oku(i, j</template>…

javascript、rubyでの競プロはバージョンに注意

就活でのwebプログラミングテストの対策としてAtCorderを使っていた時の話。・rubyはバージョンが2.3.3 配列のsumメソッドが実装されていない。・node.jsはバージョンが5.12 便利なメソッドはバージョン6から実装されてるからほとんど使えない。 就活でのweb…

node.jsでの標準入出力

node.jsでの標準入出力のやり方 const main = input => { console.log(input) } main(require('fs').readFileSync('/dev/stdin', 'utf8')) 入力の終わりはctrl+d

オブジェクトの参照渡し

javascriptではオブジェクトと配列は参照渡しになる。 だから、関数に渡したときに不用意に変更すべきでない。分割代入での引数マッチングを使うともとのオブジェクトには触れないが値は取り出せる状態になる。 だから比較的安全に扱えると思う。 オブジェク…

macbookどれ買う問題

macbook pro 13 (touchbarあり)を注文したからなぜそれを選んだかを書いておこうと思う。 用途 基本は家に置きっぱ(たまに持ち歩く) 動画編集やadobe系はそんなには使わない 5年ぐらいは使う予定選択肢 macbook無印 macbook air 2018 macbook pro 13 (touc…

nuxt.jsを学ぶ

久々の更新 nuxt.jsってなんだろうって思ってたから本を買って勉強。 とてもわかりやすい。 vue.jsでルートを頑張って書いてたけどここらへんが楽になるのか。 現在、半分読了。

好きな言葉

I have the world’s largest collection of seashells. I keep it scattered on the beaches around the world, perhaps you’ve seen it. 僕は世界で一番たくさん貝殻を集めてるんだ。で、世界中の海岸に置いてる。たぶん、きみも見たことあると思うけど。 A…

firefoxで新規タブをバックグラウンドで開く

違うPCにfirefoxを入れてセッティング中につまづいたこと。firefoxの設定だと新規タブをバックグラウンドで開くはできる。 ただ、 1, googleで検索結果を新規ウィンドウで開く 2,新規ウィンドウを新規タブとして開く の2つを設定するとgoogleの検索結果だけ…

ゲームづくり 飽きた

ゲームづくりに飽きたから終了 とりあえずこんな感じまぁ、画面スクロールとかいろいろできるようになったしいいか。

2Dジャンプアクション計画

2Dジャンプアクションゲーム(マリオっぽいの)を作るプレイヤー ・移動 ・ジャンプ敵 ・移動マップ ・マップ生成 ・背景スクロール ・マップスクロールその他(余裕があれば) ・残り時間とかのラベル ・壊れるブロック ・回復アイテムとか 今月中に作り終…

ジャンプ

ジャンプの処理 update: function() { if(this.jFlag){ //vyは上昇時はマイナス、下降時はプラス this.vy += 1 this.y += this.vy if(this.y == GROUND){ this.jFlag = false } } }, jump(){ this.jFlag = true this.vy = -20 }, マップスクロール let offse…

phina.jsの目標

テトリス マリオ パックマン ロックマン あたりを作ってみようゲームシステムパクるだけなら時間かければできそう。

phina.jsで遊ぶ

ゲーム作りってプログラミングの勉強にすごく良い気がする。 当たり判定やマップの移動などなかなかややこしい。

配列、オブジェクトの追加の際の戻り値

配列やオブジェクトに要素を追加して自分自身を戻したい時 arr.push('a') => 戻り値は新しい配列の要素数 arr.concat('a') => 戻り値は新しい配列 obj['a'] = 1 => 戻り値は代入した値 Object.assign(obj, {'a' : 1}) => 戻り値は新しいobj 使い分けるときれ…

深さ優先

探索を中断する条件も追加してみた。 (ナイト巡回問題でいう一度行ったとこが含まれてたらダメみたいな条件) getNextNodeのとこにisSuspendをうまく混ぜられたらいいなと思ったけど、難しそうだったのでとりあえずこれで let dep = lst => { let isFinishe…

幅 深さ

参考記事 JSで幅優先探索・深さ優先探索アルゴリズムを5行で実装してみた 深さ優先探索と幅優先探索の簡単な実装方法 - 働かないプログラマのメモ帳 //幅 const que = [targetNode]; while (que.length > 0) { const row = que.shift(); if (row.children) r…

深さ優先探索っぽい順列

reasonMlによる順列 まぁまぁきれいにできた気がする。 終了条件と次のノードのとこをいじればいろいろできるよう抽象化できた。 let permu = (count, lst) => { let isFinished = acc => List.length(acc) == count; let getNextNode = (cur, l) => List.fi…

javascriptでパターンマッチ

javascriptで関数型言語でいうパターンマッチが使いたい matches.jsってのがまさにそれなんだけど6年前に更新が止まってる。 GitHub - natefaubion/matches.js: Powerful pattern matching for Javascript const match = require('matches').caseOf const te…

ゲーム処理の流れ

個人的な名前の付け方のまとめmain関数frameNo : 現在のゲームの状態を入れる switchを用いて、update関数を切り替える(以下切り替え先をframe関数と呼ぶ) frameNoはswitch内で切り替える_関数名 : 引数のみで完結(インスタンス変数にアクセスしない) 主…

phina.jsでブロック崩し

【phina.js】ゲーム作成チュートリアル(ブロック崩し)第1回=ブロックの配置= を参考に(というかまるぱく)してブロック崩しを作った。で、リファクタリングしながら概要を把握した。状態によってメインの処理を切り替える。 メイン以外の処理はアンダー…

状態別処理

今までは isStarted : bool isFinished : bool とかで管理してたんだけどframeNo : str で管理して更新処理されるところでswitchで切り分けるととても見やすい。

はじめて学ぶenchant.js読了

飛ばし飛ばしで読了 感想 enchant.jsを使うと簡単にゲームが作れるんだなー こういったゲームはこう作るんだなーってのが知れる。 たくさんのサンプルを作りながら学ぶっていうテーマは良いと思う。 ただコードが汚いから、ファイルや関数でうまく分割されて…

enchant.jsを学ぶ

javascriptの勉強のためにenchant.jsを学ぶ。この本は2018年に改訂2版が発売されてる。 でも、enchant.jsの開発が3年くらい前で止まってることが述べられてない。 書き方もes6に対応していない。僕はjavascriptを学びたいだけだからいいけど、ゲームを作りた…

pugは一度使ったら抜けられない

初めは気持ち悪いと思っていたpugだけど、一度使ったらpugなしじゃ生きていけなくなった。 タイプ量が少ない、読みやすい、修正しやすいrailsにはslimっていうpugとほぼ同じ文法のがある。 これ使うとeachとかがめっちゃきれいに書ける。 erbで頑張ってたの…

抽象度が低いほうがわかりやすい(reduce)

それぞれの要素に対してした処理をまとめるにはreduceが良いと前書いたけど mapとconcatでも書ける場合はこっちのほうがよい。抽象度が低いから理解しやすい。 reduceは何でも出来ちゃうからイメージしづらい。追記 jsとocamlでconcatの意味が違かった ocaml…

vuexをmodelとして扱う

前vueでcrud作ったときは各ページでajaxでdbからデータを取り出してた。 そうじゃなくvuexにdbから取り出すgetterを作ってそれを利用する法が良いかも。こうしたらrailsのmodelっぽくなってイメージしやすくなる。

vuexまとめ

vuexの書き方をよく忘れるからまたまとめる。 const モジュール名 = { namespaced: true, state: { キー: バリュー , }, mutations: { メソッド名(state) { 処理 } }, } export default new Vuex.Store({ modules: { モジュール名, }, }) <script> import { mapState…

トップダウンで構築する

ocamlの本で学んだこと メイン関数で他の処理(サブ関数)が必要になったとき サブ関数のヘッダーだけ作ってメイン関数の実装し終える。 ヘッダーさえ出来ていればサブ関数の実装が終わってなくてもメイン関数は作れる。 その後、サブ関数を実装する。 この考…