Giter Club home page Giter Club logo

work-space's Introduction

work-space

作業の流れ

  1. issue を切る。
  2. develop からブランチを切る。その際、ブランチ名はfeature-作業内容-名前とする。例えば、feature-create-game-logic-part1-seiyaみたいな感じ。
  3. 作業が終わったら、add, commit, push でリモートに送る。
  • コミットメッセージに prefix を付ける。
    feat: .. 何か機能を実装した時
    wip: .. 作業は途中だが一旦 push しておきたい時
    refac: .. リファクタリング時
    fix: .. 機能のバグの修正時
    chore: .. ライブラリや補助ツールを導入したい時など
    docs: .. ドキュメントの更新時
  1. PR を作る!

チームでのコーディングルール

  1. CSS の記法について
  • CSS の記法はスネークケースを採用したいと思います。
  • 部品ごとにブロックとみて、中の要素ごとにネストしていくようにしましょう。
<div class="card">
  <h2 class="card_title">テトリス</h2>
  <div class="card_content">
    <p class="card_content_text">テトリスはとっても楽しいゲームです!</p>
    <a class="card_content_link">リンクはこちらから</a>
  </div>
</div>
  1. DOM 操作のための class や id について
  • CSS のクラスと JS による DOM 操作のためのクラスや id を区別したいという意図があります。ですので、DOM 操作のためのクラスや id にはjs-という prefix を付けるようにします。
<button id="js-button" class="button">クリック</button>
  1. JS の定数や変数の命名について
  • 基本的にはキャメルケースで統一でいいかなと思います。(相談)
const buttonEl = document.getElementById("js-button");

function onClick() {
  // writing code...
}
  1. JSDoc コメントについて(できれば)
  • 関数や変数の型情報やパラメータなどに注釈をつけることで、可読性が高まります。
  • なるべく書くようにしてみよう!
/**
 * 足し算をします。
 * @param a {number} 一つめの値
 * @param b {number} 二つ目の値
 * @returns {number} 結果
 */
function add(a, b) {
  return a + b;
}

work-space's People

Contributors

ayanami77 avatar enishiii avatar rare0b avatar

Stargazers

 avatar

work-space's Issues

レンダリングの実装

canvas要素にレンダリングするだけの実装を行います。
適宜関数で分けて、呼び出せるようにしておきます。

説明画面の作成

TODO

  • fontawesomeの導入
  • 説明画面のUIを作成する。
  • 説明ボタンを押したら、説明画面がレンダリングされ、戻るボタンを押したらエントランス画面に戻るようにする。

rotateの挙動改善

現状、4*4の配列を基準に回転させているため、直感的な挙動に反しているテトロミノがある。
特に2*2の正方形テトロミノは、回転のたびに座標がずれるのは正しくないと考える。

調整案は今のところ2つある。

  1. テトロミノに合わせて、2*2、3*3、4*4の配列で持つようにする。
    その上で、rotate、validなどにある2重ループ処理を以下のように変更する。
    テトロミノごとに配列サイズが変わるのが大きな欠点。実装も事故りそう。
// 今
for (let y = 0; y < 4; ++y) {
// 変更案
for (let y = 0; y < currentShape.length; ++y) {
  1. rotateのたびに左上に1~2マス詰めるようにする。currentXやcurrentYに対して、2*2のテトロミノなら2ずつ、3*3のテトロミノなら1ずつ詰めることで、2*2、3*3の範囲で回転したように見せかけられる。
    現状だと各テトロミノの大きさを配列全探索で調査する必要がある。

スコア機構を作る

TODO

  • スコアの定義
  • スコアの加算とUIに表示
  • localStorageを用いて、過去の最高スコアを記憶させる

Javascriptの処理を洗い出し、各関数の概要を.jsファイルにコメントで記載する

実装にあたって、以下のリポジトリを参考にします。
https://github.com/dionyziz/canvas-tetris

上記リポジトリで、.jsファイルで行っていることを洗い出し、コメントを記載します。
後は各自が宣言して実装できるだけの形が望ましいです。

イメージは以下の通り

// キーボードの各キーの処理を定義します

// canvas要素にテトリスの画面を描画します
// ~~~~~ 
function render() {
}

freeze関数の実装

freeze関数は、以下のことを行います。
・currentShapeをboardにコピーする。
・freezed(currentShapeが動かなくなったかを判断する変数)をtrueにする

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.