焼け石に肉

新米プログラマの学習記録日記です。Scalaに興味があるので、ScalaとPlay Frameworkの勉強メモを残していこうと思います。

【Unity】Unityでハースストーンの新カードを作ってみる Part1【ハースストーン】

タイトルどおりです。

新拡張までまだまだ期間がありますので、Unityの勉強がてら、自分だけのオリジナルのハースストーンの新カードを作ってみます。

作成途中ですが、以下にイメージを置いています。

作成途中のカード

f:id:julius_hs:20180116233426j:plain

待望のラザカスやビッグプリを一発で倒せるカードです。

ちゃんとアタックも4にしてあります。

現状の課題

ミニオンの名前のところをうまくリボンに沿って埋めていくスクリプトが難しそうなので、ネットの海をさまよって探してみます。

 

次回以降、カード枠の作り方なりを備忘録として書いていければと思います。

【Scala】Scala&Play FrameworkでTwitter4jをいじってみる Part4【Twitter4j】

前回の続きです。
今回はモデルについて書いていきます。

Tweet.scala

package models

case class Tweet(text: String, profileImg: String)

こちらは、検索結果画面に表示するTweetを表すクラスです。

Tweetを最大100件取得し、このオブジェクトに値を詰めていきます。

次回で完成させていきます。

【Scala】Scala&Play FrameworkでTwitter4jをいじってみる Part3【Twitter4j】

前回の続きです。
今回は、build.sbtなどの設定ファイルの詳細について書いていきます。

build.sbt

name := みなさんが決めたやつ

organization := みなさんが決めたやつ

version := "1.0.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayScala)

scalaVersion := "2.11.11"

libraryDependencies ++= Seq(
  "com.adrianhurt"         %% "play-bootstrap"               % "1.1-P25-B3", 
  "org.twitter4j"          % "twitter4j-core"                % "4.0.6",
  "org.twitter4j"          % "twitter4j-stream"              % "4.0.6"
)

TwirlKeys.templateImports ++= Seq("forms._")

build.sbtはこんな感じです。
libraryDependenciesには、見た目を最低限整えるために、play-bootstrapを入れています。
また、twitter4jのライブラリも追加しています。

twitter4j.properties

debug=true
oauth.consumerKey=発行してゲットしたやつ
oauth.consumerSecret=発行してゲットしたやつ
oauth.accessToken=発行してゲットしたやつ
oauth.accessTokenSecret=発行してゲットしたやつ
twitter4j.loggerFactory=twitter4j.NullLoggerFactory

twitter4j.propertiesを作成し、confフォルダの中に格納します。
consumerKeyなどの取得方法は、広大なネットにいくらでもあります。


次回は、controllerの中身などについて書いていきたいと思います。

【Scala】Scala&Play FrameworkでTwitter4jをいじってみる Part2【Twitter4j】

前回の続きです。

アプリのイメージ図

初期表示画面

f:id:julius_hs:20180113221704j:plain

画面左にグーグルマップ、画面右に検索フォームを配置します。

検索フォームには、緯度経度・範囲・検索ワードが含まれます。

 

 検索フォーム

f:id:julius_hs:20180113221718j:plain

検索フォームの緯度経度は、グーグルマップのピンを移動すると移動先の緯度経度が入力されます。

デモでは、東京都庁に緯度経度を合わせています。

 

検索結果画面

f:id:julius_hs:20180113222720j:plain

検索ワードに「都知事」と入力して検索して検索しました。

検索結果は最高100件取得し、Tweetしたユーザーのプロフィール画像とTweet内容を表示しています。

 

次回は、アプリの中身について書いていきます。
 

【Scala】Scala&Play FrameworkでTwitter4jをいじってみる Part1【Twitter4j】

タイトルどおりです。

Scala&Play Frameworkの勉強がてら、簡単なアプリを作ってみます。

 

環境

Scala:2.11.11

Play:2.5

twitter4j:最新版

 

概要

検索フォームに入力された値をもとに、Tweetを検索して表示するアプリです。

 

とりあえず、Play Frameworkのドキュメントを読みながらフォーム部分に慣れていければと思います。 

【Scala】コップ本の自分用メモ2

集合とマップの作成・初期化・操作

  // イミュータブルな集合の作成・初期化・操作
  var footballSet = Set("Messi", "CR7")
  footballSet += "Pogba"
  println(footballSet.contains("Neymar"))

  // ミュータブルな集合の作成・初期化・操作
  import scala.collection.mutable
  val footballSet2 = mutable.Set("Honda", "Kagawa")
  footballSet2 += "Okazaki"
  println(footballSet2)

   // ミュータブルマップ
  import scala.collection.mutable
  val footballMap = mutable.Map[Int, String]()
  footballMap += (1 -> "Messi")
  footballMap += (2 -> "Suarez")
  footballMap += (3 -> "Neymar")

  // イミュータブルマップ
  val footballMap2 = Map(1 -> "Pogba", 2 -> "Hazard", 3 -> "Reus")

【Scala】コップ本の自分用メモ

Scala&Play Frameworkでのプロジェクトが始まることになるので、必読書のコップ本を読んでいます。
リストの重要なメソッド集です。

    // 空のリスト
    // var list1 = Nil でも可
    var list1 = List()

    // 三個の値を持つ新しいList[String]を作る
    var list2 = List("Messi", "CR7", "Neymar")

    // 三個の値を持つ新しいList[String]を作る
    var list3 = "Messi" :: "CR7" :: "Neymar" :: Nil

    // 2個のリストを連結し、新しいリストを作成する
    var list4 = List("Messi", "Neymar") ::: List("CR7", "Bale")

    // list3の添字2の要素を返す(Neymarが返される)
    var list5 = list3(2)

    // list3の中で、長さが3の要素の数が返される(1が返される)
    var length4 = list3.count(s => s.length == 3)

    // 先頭の2要素を取り除いたlist3を返す
    list3.drop(2)

    // 末尾の2要素を取り除いたlist4を返す
    list4.dropRight(2)

    // list3の中に値が”Neymar”があるかどうかを返す。trueが返される
    var boolean1 = list3.exists(s => s == "Neymar")

    // list3に含まれる長さが4のすべての要素を返す
    var list6 = list3.filter(s => s.length == 4)

    // list3のすべての要素について、末尾の文字が”i”になっているかどうかを返す
    var list7 = list3.forall(s => s.endsWith("i"))

    // リストの先頭要素を返す
    list3.head

    // リストの最後の要素を返す
    list3.last

    // リストから末尾の要素を除いた残りのリストを返す
    var list8 = list3.init

    // リストの各要素のXを追加したものから構成されるリストを返す
    var list9 = list3.map(s => s + "X")

    // リストの要素を並べた文字列を返す
    var str: String = list3.mkString(" , ")

    // リストに含まれる長さが4以外のすべての要素を順に並べたリストを返す
    var list10 = list9.filterNot(s => s.length == 4)

    // リストのすべての要素を逆に並べたリスト
    var list11 = list10.reverse

    // リストのすべての要素から、先頭文字小文字にしてアルファベット順を決めて、その順序にしたがったリストを作って返す 
    var list12 = list11.sortWith((s,t) => s.charAt(0).toLower < t.charAt(0).toLower)

    // リストから先頭要素を取り除いたリストを返す
    var list13 = list12.tail