プログラミング未経験→月4万
■ このスレッドは過去ログ倉庫に格納されています
>>603 子供の年齢による 実際に文字でプログラム作るには、ロジックとかプログラミング言語を憶えるのも大事だけど、英語できんと全然進まないし。 英語を深く理解する準備として日本語を深く理解したほうがいいし。 だから、英語を覚える前ならこれでいい。 足りないと思うなら「拡張機能を追加」でレゴブロックと接続してやったらいい。 レゴブロックはNASAも宇宙開発で使ってるらしいし、使い方によっては現実的なんじゃないでしょうか。 凄い頭がいいならちゃんとしたプログラミング言語を教えるのもありだけど 普通の子供がやるのは時間の無駄。 難しいというのはあなたから見てですか? 思い通りに動かすのは大変だけど、パソコン使ってたら簡単にやり方覚えられるはずですが。 将棋やトランプくらいには簡単だと思う。
>>604 フムフムと読んだが、最後の一文で本質が分かってない人だと印象付いた 将棋は羽生さんですら未だによく分からないと言わしめるほどのゲーム >>605 羽生がいまだによくわからないと言ってるからなんだっていうの 一般人にはゲームとして成立させることすら到底不可能ですか? 基本ルールを覚えたら、後はそれの応用なだけで、 基本プログラムも変数と条件と反復の三つでしょ? 羽生のようなトップでも終わりなき道なのと 子供にもできることは矛盾しない たいていのスポーツは子供でもできるけど オリンピックのレベルまで行ける奴は一握り プログラミングも同じだと思う >>605 将棋の強いアルゴリズムを作るという話なら羽生が云々というのも分かるが、そうじゃなくて将棋のルールを覚えて素人レベルで遊べる程度の話をしているだけでしょ。 >>604 のレスの本質を分かってないのはあなたの方では? >>609 EffectiveJavaの内容理解してから言ってくれ 政治はルールを憶えても、必要な知識の半分も知った事にはならない。 ルールさえ覚えれば完璧なプログラムを作れるコンピューターの世界は素晴らしい。 【小西ひろゆき 】「失点承知でシュートを見送るだけの国会議員が何人いるだろうかと考えた。安倍政治は罪深い」クスクス http://ai.2ch ・sc/test/read.cgi/newsplus/1529449680/ > 小西ひろゆき (参議院議員)@konishihiroyuki > > W杯。主審の目の前でハンド反則でシュートを止めたコロンビア選手。 > チームを救うための究極の行為は一発レッドカード。 > > 反則は絶対悪、退場も最悪ミスだが、我が身を捨てた執念の行為に、あの瞬間に何もせず、 > 失点承知でシュートを見送るだけの国会議員が何人いるだろうかと考えた。 > > 安倍政治は罪深い。 > 296 名前:名無しさん@1周年[sage] 投稿日:2018/06/20(水) 08:35:43.01 ID:1UYVUuXc0.net > ルール破っても止めろっていう腐ったパヨクのお手本だなwwwwwww > 229 名前:名無しさん@1周年[] 投稿日:2018/06/20(水) 08:28:39.51 ID:UmcKiJii0.net > パヨクはまずゲームのルールが分かってない > 24 名前:名無しさん@1周年[sage] 投稿日:2018/06/20(水) 08:11:29.99 ID:9WH720hh0.net > 意訳) > 「モリカケが単なる難癖だと解ってやってます」 > 668 名前:名無しさん@1周年[] 投稿日:2018/06/20(水) 09:11:15.40 ID:MKVlJbUG0.net > >> 24 > て事ですよね。で、自分らに難癖をつけさせる安倍政権は罪深いと > 完全に基地外の論理ですわ 文章力、進捗の異常な遅さ、理解度の低さ辺りからはっきりとわかるけど、こいつは会社の研修や大学などで手取り足取り教わってもまったくついていけず脱落するレベルの素質のなさだと思う 諦めたみたいだが、大正解だぞ 無意味な改行は気持ち悪いからやめろって言ってもなぜかやめない池沼だからねぇ 10代のクソガキで教えてもらう側のド素人のくせに変なプライド持ってるのが怖いけど クソガキゆえなんだろうねぇ 当然そんな奴に知識与える奴はいない いるのは同じレベルの馬鹿同士でマウント取り合ってただけっていうゴミスレ お前らネットでマウント取って気持ち良くなるのはいいけど、 福岡の事件みたいなの起こすのはやめてくれよな スレチな書き込みした俺が勝ち組だな。 思い出したんだけど、俺、コンクリ殺人グループと喧嘩して何人か殺してた。 俺、マジでドラム缶コンクリ詰めにされたよ。 あいつら馬鹿だから、表面が固まったところでどっか行ったんで脱出できた。 一人殺した後に話し合いで解決しようここまで来いっていうんで行ったらスタンガンで襲い掛かって来たんで 奪い取ってキンタマにスタンガン当てたら死んだ。 残ったやつが110番通報して被害を訴えたんだけど、警官にスタンガン当てて拳銃を奪い取って発砲してきた。 俺はスタンガンの電池を抜いて投げて弾をはじいた。 そこへ怖い人たちが入って来て警官から銃を奪い取ったやつをどっかに連れて行った。 その後、駅前(階段下)で拡声器で俺のしたことを言いふらされたんで、やめないと死ぬことになるぞと警告したが、続けたので、 忍者村から盗み出しておいたクナイを頭に投げて殺した。 クナイで人を殺せるか、昔から試してみたかったんだ。 ちょうどいい実験材料が手に入ったからやってみた。 俺がコンクリ詰めにされた後、そいつらを捕まえて自分の両親をコンクリ詰めにさせたんだ。 殺すのをやめて砂糖を混ぜて固まらなくして2,3日放置した。 でも、脅しにもならなくて、結局、クナイで最後までイケイケだった奴を殺すことになった。 結局、殺す以外の解決方法は存在しない。 じゃあ、俺がこのスレ引き継いで子供とのscratch作品アップしていい? カスが叩かれるのなんて当然だしむしろカスが俺出来ると勘違いして粋がる方が有害 unityでゲーム作ってんだけど 思ってる挙動と少し違う おまえらコード貼るから教えてくんない? 次からはゲ製いくんだぞ 質問スレ3津くらいあるからな >>618 クナイで殺す瞬間を見ていた少女がいた。 その少女はコンクリグループに拉致監禁された。 最初に来た警官がスタンガンで奪われたと書いたのは僕の勘違いだった。 正確には、近寄って耳打ちするような感じから倒れただけだった。 つまり、奪われた体裁を取ってるけど、実際には拳銃調達係でしかなかった。 そして、事件後に、あとから駆け付けた警官の半分が殺されたと聞かされた。 【福岡ネット殺人】新幹線殺傷の翌日「ネット弁慶の象徴『低能先生』に人を殺せる筈がない」匿名掲示板に容疑者を揶揄する複数の書き込み http://ai.2ch ・sc/test/read.cgi/newsplus/1530150275/ > 964 名前:名無しさん@1周年[sage] 投稿日:2018/06/29(金) 00:38:01.73 ID:8Rjm0Q5W0.net > >>958 > それなりの高校を出てると、教科書関係は卒業で使わなくなった顔も知らない先輩から譲ってもらえるよ > 965 名前:名無しさん@1周年[sage] 投稿日:2018/06/29(金) 00:44:19.44 ID:TJvoLoph0.net > >>964 > マジレスすると、理系は後輩に渡さない > 研究室入った後に勉強するために使うから > 大学院入学試験なんかもろにそうだから > 973 名前:名無しさん@1周年[sage] 投稿日:2018/06/29(金) 01:23:40.08 ID:8Rjm0Q5W0.net > >>966 > 笑いとるなって。 > 普通にもらえる。おまえが低学歴だからもらえないだけ。 > 院卒の先輩がいないから、院試で使うとかバカいうんだよ。つかって、修論書いて、「卒業」してそのあとに回ってくる。 > > このあたりは学歴の差だから>>966 なら知らなくても仕方ない話。 > れすしなくていいよ、バカの世界で論じててくれwww > 975 名前:名無しさん@1周年[sage] 投稿日:2018/06/29(金) 01:26:13.88 ID:3rJo1GUu0.net > こんなんが院卒 > 977 名前:名無しさん@1周年[sage] 投稿日:2018/06/29(金) 01:27:36.73 ID:TJvoLoph0.net > >>973 > さすが、頭が良い奴は違うな > しっかり返すレス番を間違えてるし > > 天才の世界は理解できない > バカでごめん >>628 はレス番を間違える自称院卒 専ブラ使ってたら間違えるわけないと思うんだけど 。scのアンカ使ってもずれ方が違う。 。sc > 975 名前:名無しさん@1周年[sage] 投稿日:2018/06/29(金) 01:26:13.88 ID:3rJo1GUu0.net > こんなんが院卒 。net > 972名無しさん@1周年2018/06/29(金) 01:26:13.88ID:3rJo1GUu0 > こんなんが院卒 スマホだとイマイチどっちにレスするかわかりにくかったりするような気がするから スマホで書き込んでるんだろうな。 >>1 1ヶ月ちょいしか続いてないじゃんゴミだなw スレ主がいないなら 俺がこのスレ借りようかな。 パイザのC問題頑張ってんだが プログラム板にキチガイ降臨中!botに一晩も反応する異常さ 一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。 https://mevius.5ch.net/test/read.cgi/tech/1559872586/ 142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO >>141 名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、 片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか? 一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。 まずは開発開発だ。今、アプリと言ったらスマホアプリが主流だ。そこで iOS環境かAndroid環境がターゲットになる。 もし革新的なアップルを選ぶならiOSに進め。 アップルよりも自由な方が好みならAndroidに進め。 さあ、2つに一つ。選べ。 >>634 とりあえずAndroidでおながいします Androidの開発環境なら、Android Studio、Visual Studio、Delphi RAD Studioといった選択肢がある。この中から一つ選べ。 >>636 eclipseって・あ・Android Studioにします。 Windows10Proにインストールしました。 が、立ち上げても意味不明っす。 最初にプロジェクトを新規作成して、GUI要素を貼り付けて、GUIのイベントに対する処理を記述する。 実行して動作を確認しながら、さらに処理を追加していく。これがIDEにおけるGUIの開発スタイルだ。 まずは実践。 Eclipseでの開発はAndroid Studioに移行したので、Eclipseでの開発は古い。 んーなんだこれ英語だらけでわけわからん new projectでEmpty Activityクリックして完了したら Kotlinだかグラビアアイドルがどうのこうので ダウンロード始まって終わんない デザインエディタが アンナバイラブル アンチル アフター ら さくせすふるプロジェクト シンク オワタƪ(˘⌣˘)ʃ 寝る(( _ _ ))..zzzZZ 日本語化するにはまず、Android Studio (以下AS)のバージョンを確認する必要がある。 >>644 おはようございます。3.4から4.0にバージョンアップされちゃいました。 再起動したらデザインエディタ動きました。 VBA みたいに自由に配置出来ないのかコレ マウスでガーーーーなんかイライラするぅー 更年期かな >>643 あざ酢 QiitaのAndroid studio日本語化 https://qiita.com/ekuzodia_jp/items/2c7d954dc76ffb164f71 Pleiades日本語化プラグイン で日本語化出来ました。 ゔーーーなんでユーザーフォームみたいに配置でけへんねん、イライラするぅー つーかラベルどれ?なくても良い? テキストボックスどこや? なにこのコードてxml?意味不明やーーー HTMLみたいに<input type=“button”>とかって打つんかな? まず、どんなGUI部品が使えるかを把握する必要がありますね。 https://techacademy.jp/magazine/3422 ここによく使うGUI部品が紹介されている。 今日はアンスタ初挑戦一日目、 画面部品配置までで、わかった事メモ アンスタでは画面配置をエディタ上でマウスのドラッグ&ドロップで部品を置いていくのだが、 VBA のユーザーフォームのようには作れず、 レイアウトの関連としてxmlで作るようだ。 ラベルは<TextView android:text="身長[cm]" /> テキストボックスは <EditText android:inputType="number" /> ボタンは <Button android:text="計算実行" /> >>648 ありがとうございます。参考にします。 スレ主さんとは違ってオッサンなのでぼちぼち低速で行きます。 気長にお付き合いの程よろしくお願いします。 MicroSDというマジでゴキブリのように小さい記憶媒体が量販店や 携帯ショップで馬鹿みたいな値段で売られていて、 それを使うとスマホにファイルを転送できるらしい。 パソコンでMicroSDを読み書きできない場合は別途カードリーダーが必要。 アンスタでAPKというファイルを作ってスマホでAPKファイルを実行すると 自作のプログラムが動くらしい。 >>651 残念ながら手持ちの実験用Nexus5はSDカードスロットございませんです。 とりあえず二日目としてAVDヴァーチャルデヴァイスで動作出来ました。 https://i.imgur.com/SZjbcQx.png 一部分抜粋 <LinearLayout android:layout_width="match_parent" android:layout_height="56dp" android:orientation="horizontal"> <TextView android:id="@+id/textView1" android:layout_width="181dp" android:layout_height="match_parent" android:layout_weight="1" android:text="身長[cm]" app:autoSizeTextType="uniform" /> <TextView android:id="@+id/textView2" android:layout_width="184dp" android:layout_height="match_parent" android:layout_weight="1" android:text="体重[kg]" app:autoSizeTextType="uniform" /> </LinearLayout> 一部分抜粋 <LinearLayout android:layout_width="match_parent" android:layout_height="75dp" android:orientation="horizontal"> <EditText android:id="@+id/editTextNumber1" android:layout_width="wrap_content" android:layout_height="74dp" android:layout_weight="1" android:ems="10" android:inputType="number" /> <EditText android:id="@+id/editTextNumber2" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" android:ems="10" android:inputType="number" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="96dp" android:orientation="horizontal"> 一部分抜粋 <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="65dp" android:layout_weight="1" android:text="計算" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="58dp" android:orientation="horizontal"> <TextView android:id="@+id/textView3" android:layout_width="111dp" android:layout_height="match_parent" android:text="BMI" app:autoSizeTextType="uniform" app:fontFamily="sans-serif" /> <TextView android:id="@+id/textView4" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:text="" app:autoSizeTextType="uniform" /> </LinearLayout> //Mainctivity.kt package com.example.myapplicationbmi import android.os.Bundle import android.widget.Button import androidx.appcompat.app.AppCompatActivity import kotlinx.android.synthetic.main.activity_main.* import java.lang.String class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // ボタンを設定してリスナー登録 val button = findViewById<Button>(R.id.button) as Button button.setOnClickListener { // エディットテキストのテキストを取得してダブル化 val tall = editTextNumber1.text.toString().toDoubleOrNull() val weight = editTextNumber2.text.toString().toDoubleOrNull() if(tall != null || weight != null){ val BMI = calcBMI(tall as Double, weight as Double) textView4.text = String.format("%.1f", BMI) } } } // BMI算出ファンクション private fun calcBMI(h: Double, w: Double): Double { // BMI = 体重 ÷ (身長 x 身長) var bmi = 0.0 if (w > 0 && h > 0) bmi = w / (h * h) * 10000 return bmi } } はじめなのでプログラム書き込んどきます A抜けたけど,ま、わかるしえっか。今日はここまで。 656>>MainActivity.kt 次の課題は>>429 の亀の軌跡 AndroidアプリのKotlinでタートルグラフィックス予定 1.まずKotlinでcanvasの方法調べる 2.次にKotlinのclass定義 3.そしてKotlinでのリカーシブルアルゴリズム SDカードが使えないなら、インターネット経由で入れるしかないかな。 USB type C接続でパソコンとつないだらファイル読み書きできるかな? >>659 ありがとうございます。アンスタから無線LANで転送した事無いのでわかりません >>660 古いAndroid5.01のスマホなのでmicro USB Type-Bのデータ転送ケーブルを使用して接続します。 アンスタ3日目【課題】タートルグラフィックス [Android & Kotlin] 円や矩形を描画するCanvas https://akira-watson.com/android/kotlin/canvas.html を参考に 3.1 kotlinでCanvas にランダムライン描画実行出来ました。 import android.content.Context import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import android.graphics.Canvas import android.graphics.Color import android.graphics.Paint import android.util.DisplayMetrics import android.view.View import java.util.Random class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val myView = MyView(this) //レイアウトXMLファイルなし setContentView(myView) } // Viewを継承したクラス internal inner class MyView(context: Context) : View(context) { private var paint: Paint = Paint() private val dp: Float init { // スクリーンサイズからdipのようなものを作る val metrics = DisplayMetrics() windowManager.defaultDisplay.getMetrics(metrics) dp = resources.displayMetrics.density } アンスタ3日目【課題】タートルグラフィックス 3.1kotlinでCanvas にランダムライン描画続き override fun onDraw(canvas: Canvas){// Canvas Background Color canvas.drawColor(Color.argb(255, 0, 100, 125)) // Canvas center point var xc = (width / 2).toFloat() ; var yc = (height / 2).toFloat() paint.color = Color.argb(255, 0, 255, 100) // 色 paint.strokeWidth = 10f // 太さ val random = Random() fun Rand(from: Int, to: Int) : Int { return random.nextInt(to - from) + from } for(i in 1..60){ val rndx = xc + Rand(-30,30)*dp as Float val rndy = yc + Rand(-30,30)*dp as Float canvas.drawLine(xc , yc, rndx, rndy, paint) xc=rndx; yc=rndy } } } } 以上 https://i.imgur.com/c9KoFhi.png >>658 アンスタ4日目【課題】タートルグラフィックス 3.2.次にKotlinのclass定義 が良くわからない、Kotlinの外部クラスでつくるのかインナークラスでつくるのか・・ タートルクラスのメンバーやらメソッドやらも どのように定義すべきか不明ちょっと詰まりそう・・ class Turtle(){ var angle: Int = 0 var x: Int = 0 var y: Int = 0 fun walk(){ //?} fun turn(){ //?} } 「Kotlin 構造体 追加」で検索! https://techacademy.jp/magazine/19797 データクラスというのが出てきたよ。 >>665 ありがとうございます。以下読書中 Android Studioで始めるKotlin入門(4): Kotlinにおけるクラス https://www.atmarkit.co.jp/ait/spv/1804/02/news009.html >>666 そのページは複雑過ぎてちんぷんかんぷんです。 data class Point ( var x = 0.0, var y = 0.0 ) class Turtle (var angle =0, var now = Point() ) { fun turn(a){ angle = a } fun walk(b, c){ now = (b, c) } } で良いのかな?何か違うような?よう分からんわ タートルグラフィックのタートルの意味がわかってない? タートル(亀)は位置と向きの情報を持っていて、前進すると、その向きに進む。 向きを変えるのも相対的な角度で指定する。 三角関数を知らないと難しいかもしれん。 例えば、亀が原点(0, 0)に居て、x軸から+30度の方向に5だけ進むと、亀の位置は(5*cos(π/3), 5*sin(π/3))となる。ここまでOK? 訂正。例えば、亀が原点(0, 0)に居て、x軸から+30度の方向に5だけ進むと、亀の位置は(5*cos(π/6), 5*sin(π/6))となる。ここまでOK? ありがとうございます。三角関数懐かしいです。 難しいですね。高校数学でしたか タートルグラフィックスプログラムの肝は デカルト直行座標系と極座標変換なのですね。 ちょっと復習してます。 なので取り敢えず直行座標と極座標が混ざってるから fun walk(b, c){ now = (b, c) } これ間違いだね、必要なのは距離だけだね fun walk(b:Double){ now.x = (b*math.cos(π/6) now.y = (b*math.sin(π/6)) } こうかな?まだまだエラーだらけでコンパイル通らないけど、 あと角度を反映させないとなぁ・・ >>663 は角度使わずになんとか出来たけど 自分で出した課題とはいえヤバみ難しい カメが(x0, y0)に居て、向きがtで、r進むとすれば、 (x0 + r*cos(t), y0 + r*sin(t)) だろうよ。 ここで向きtは、ラジアン単位で、一般角に拡張可能。 >>674 ありがとうございます。 どうにかエラーなく動きはしたものの 距離も角度もおかしい https://i.imgur.com/ZDEsXVD.png override fun onDraw(canvas: Canvas){// Canvas Background Color canvas.drawColor(Color.argb(255, 0, 128, 128)) // Canvas center point val xc = (width / 2).toDouble() ; val yc = (height / 2).toDouble() paint.color = Color.argb(255, 0, 250, 0) // 色 paint.strokeWidth = 10f // 太さ data class Point(var x: Double = 0.0, var y: Double =0.0 ) class Turtle(var angle: Int =0, var now: Point = Point()){ fun turn(a:Int){angle=a} fun walk(b:Double){ now.x = b * Math.cos( Math.PI/6 ) //30° now.y = b * Math.sin( Math.PI/6 ) canvas.drawLine(xc.toFloat(), yc.toFloat(),now.x.toFloat(),now.y.toFloat(),paint) } } val t = Turtle(0, Point(xc,yc) ) t.walk(5.0) } 現在のスマホの画面は超高精細だから、5ピクセルだとほとんどゼロに近く見える。 (0,0)と画面の中心点を線で結んだようなもの。 300ピクセルぐらいにしたらどうか。 あと、相対位置だから、現在位置を足さないとおかしいよ。 おおっ、それっぽくなって、少し近づきました class Turtle(var angle: Int =0, var now: Point = Point()){ fun turn(a:Int){angle=a} fun walk(b:Double){ var x2 = now.x + b * Math.cos( Math.PI/6 ) //30° var y2 = now.y + b * Math.sin( Math.PI/6 ) canvas.drawLine(now.x.toFloat(),now.y.toFloat(), x2.toFloat(),y2.toFloat(),paint) } } val t = Turtle(0, Point(xc, yc) ) t.walk(300.0) https://i.imgur.com/PMjOn03.png 今日はここまでにします。ありがとうございました。 角度を見ると、y軸が下向きに見えるね。左上が(0, 0)。 walkは、現在位置を更新する必要がある。 turnは相対角度で指定するのだろう。 あーWebページと同じディスプレイ座標系って Y軸下向き+か、引き算かな?めんどくせー var y2 = now.y + b * Math.sin( Math.PI/6 ) ↓ var y2 = now.y − b * Math.sin( Math.PI/6 ) ですね。また、明日修正しよう >>675 メモ、多分、角度からラジアン関数にする math.toRadian()を使う は ず now.x = b * Math.cos( Math.PI/6 ) //30° ↓ now.x = b * Math.cos( math.toRadian(30) ) //30° angleてInt型でええんかな?doubleにしてからfloatか? また明日 >>680 相対角度と現在地更新に修正して出来ました。ありがとうございます //構造体データクラス data class Point(var x: Double = 0.0, var y: Double =0.0 ) //タートルクラス class Turtle(var angle: Double = 0.0, var now: Point = Point()){ fun turn(a:Int){angle += a} //+=相対角度 fun walk(b:Double){ var x2 = now.x + b * Math.cos( Math.toRadians(angle) ) var y2 = now.y - b * Math.sin( Math.toRadians(angle) )//Y軸下向き+の為引き算 canvas.drawLine(now.x.toFloat(),now.y.toFloat(), x2.toFloat(),y2.toFloat(),paint) now.x=x2 ; now.y=y2 //現在地更新 } } val t = Turtle(0.0, Point(xc,yc) ) t.walk(300.0) t.turn(120) t.walk(300.0) t.turn(120) t.walk(300.0) https://i.imgur.com/It79sWl.jpg 多角形描いてみたらズレてますけど、さらっと行きたかったんで、まいっか。 val t = Turtle(0.0, Point(xc,yc) ) for(n in 3..12) { //多角形ポリゴン t.angle=0.0 ; t.now=Point(xc*2/3,20*n + yc*3/2) for(j in 1..n) { t.walk(300.0) ; t.turn(360/n) } } https://i.imgur.com/G0Cf1eQ.jpg 次はこれ使って【3.3】再帰呼び出しリカーシブに挑戦だ >>684 ありがとうございます。。。ウーン 拡大率とかリストとかないけどなんとかがんがってみます 360/n これは整数除算。 360.0/n こうすれば実数の割り算になる。 >>684 コッホ曲線描けました。ほとんどコピペですが。。。向きが逆とか・・ val t = Turtle(60.0, Point(xc, yc) ) fun Kochsub(degree:Int, step:Double) { if (degree == 0) { t.walk(step); // walk の始点と終点を結ぶ線分を描く } else { Kochsub(degree - 1, step/3); t.turn(-60); Kochsub(degree - 1, step/3); t.turn(120); Kochsub(degree - 1, step/3); t.turn(-60); Kochsub(degree - 1, step/3); } } Kochsub(4, 600.0) https://i.imgur.com/ir9iJQy.jpg >>689 turnの符号を反転すれば逆向きになる。 たぶん、y軸の向きを変えたせいだろう。 >>691 OKでーす。 https://i.imgur.com/uH3uJCM.png val t = Turtle(0.0, Point(xc-450, yc) ) fun Kochsub(degree:Int, step:Double) { if (degree == 0) { t.walk(step); // walk の始点と終点を結ぶ線分を描く } else { Kochsub(degree - 1, step/3.0); t.turn(60.0); Kochsub(degree - 1, step/3.0); t.turn(-120.0); Kochsub(degree - 1, step/3.0); t.turn(60.0); Kochsub(degree - 1, step/3.0); } } Kochsub(4, 900.0) すみませが、今日はこの辺で、他のも試してみたいと思います 今日は体調不良の為 前日のコッホ曲線のランダムバージョンのみで終わります。 https://i.imgur.com/IFuWAAe.png コピペで一部分しか書き換えてないし 複数の図形を切り替えるのどうすれば良いのだろう? 誠に残念ですが1週間程は体調が良くなる目処がたちませんので 回復したらまたやり始めるかもわかりませんが 本件は一旦閉じます。 短い間でしたがお付き合いいただきましてありがとうございました。 キャンバスに対して描画関数を呼び出せば、描画できる。複数個描画したいなら、複数回呼び出せばいい。切り替えには、ボタンやフラグ変数などを使えばいい。 >>695 どうも。体調がよくなったら凄いアプリ作ろうね。 >>699 いいえ、あれっきり、まるっきし、ダメです。 復習程度にC曲線?みたいなのだけで、進展なしです。 https://i.imgur.com/Ni9KzDJ.png 以上。 一つひとつはつまらないかも知れないが、ボタンを押したら画像を切替えるとか、パラメータを指定すると変化させるとか、 いろんなバリエーションが考えられるよ。つまらないならタートルをやめてもいいし。 >>1 から見ていったら途中で2年くらい飛んでてわろたw >>701 別にタートルグラフィックスがつまらないわけじゃないんだ 僕がつまらい人間なんだよ。。。 ドラゴン曲線もやってみたよ。 https://i.imgur.com/eeLF5Gt.png ドラゴン曲線ランダムバージョン https://i.imgur.com/a1crJqx.png ボタンを押したらフラグ変数を更新して、フラグ変数を元に再描画までやってみようか? タグでの切り替えは未だに分からず 新規作成のタグviewテンプレートはそのまま起動出来るんですがどうやって成り立つのか意味不明で 次のその課題も ボタンとviewのcanvas同時表示が難しいので理解が追い付かず困ってます まず、 1.メインアクティビティからviewのcanvasをクラスとしての分離 2.各種曲線の関数化と引数をどう書くのもかわからないし、 タートルクラスを分離してグローバル変数にしないといけないのかどうかとか 3.メインアクティビティとしてviewとボタンの同時レイアウトの設定と書き方 4.ボタン引数の渡しかたとviewでの引数受け取り 5.タートルメソッド呼び出しと曲線関数を選択してcanvas再描画 そのどれもがAndroidのKotlinでどう実現したらいいかわからないorz >>702 念の為申し上げておきますが自分はスレ主とはなんの関係もございません。 >>573 で放置されているインベーダーゲームをAndroidで実現してみたいと思い2週間ちょっと前にプログラム未経験から初めて勝手に居候して居ます。 スレ主が帰って来るかどうかわかりませんが Pythonより先にAndroidでインベーダーゲームを どうにか作ってみたいですね。 うむ、チュートリアルを順番にやった方がよかったか。まだ諦めるな。こちらで検証してみるから。 まだ諦めてはいません 左右の傾きセンサーで左右に移動してボタンでミサイル発射する事を想定するなら canvasとボタン一個(またはタッチリスナー)は必要だと思いますので ボタンのあるアプリを作りたいんだろ? まず、「下部ナビゲーションアクティビティ」を選び、下部のnav_viewに ボタン「button1」「button2」を追加する。 追加方法は「Buttons」→「Button」をドロップして、「id」に「button1」 「button2」を指定すればOK。 こりゃ、Android Studioは難しいね。 古いのと新しいのが混じっていてバージョン違いで動かないことがある。 Kotlinの使えるサンプルが少ない。サンプルが古い。すぐ古くなる。 古いKotlinと新しいKotlinがあるのか。 デバッガがVisual Studioに比べて使いづらい。 継承したクラスをレイアウトする方法が書かれていない。 こりゃむずいよ。 >>711 ん?そこに書かれているように>>662 の時点以降全ては マイcanvas viewに描画しているのですが??? >val myView = MyView(this) //レイアウトXMLファイルなし >setContentView(myView) なので、現状はレイアウトxmlファイルを復活しないとレイアウトが出来ません。 >>712 ちょいと? >>634 と>>636 では選べって言うから・・ まるで経験者のような言い回しに受け取りましたけど(~_~;) Viewを拡張せずにビットマップを使って描画する方法です: https://twitter.com/katahiromz/status/1285403020704935941 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) button.setOnClickListener { view -> var bitmap = Bitmap.createBitmap(500, 300, Bitmap.Config.ARGB_8888) var canvas = Canvas(bitmap) canvas.drawColor(Color.LTGRAY) var paint = Paint() paint.color = Color.BLUE paint.style = Paint.Style.STROKE paint.strokeWidth = 20F paint.isAntiAlias = true var cx = canvas.width / 2F; var cy = canvas.height / 2F; canvas.drawLine(cx - 100F, cy, cx + 100F, cy, paint) imageView.setImageBitmap(bitmap) } } } https://twitter.com/5chan_nel (5ch newer account) 問題は、どうやって画面のサイズにビットマップを合わせるか。 画面はタテヨコ回転するし、縦横比が違うとレイアウトが崩れてしまう。 nyan のアプリ開発 Androidアプリ、作り方、ベーシックサンプル集 [Android] Custom Canvas をレイアウトに挿入する https://akira-watson.com/android/custom-canvas1.html とりあえずこちらのページをコピペしました。 貼り付けたらアンスタが自動でKotolinに変換してくれたので まずは表示まで https://i.imgur.com/bU5s6jP.png 再描画するなら、タートルの位置と向きをリセットして、背景をクリアする必要がある。 ボタンタップは上記の通りsetOnClickListenerを使えばイベントを捕まえられる。 package com.example.my・・・ import ・・・ class MyView(context: Context?, attrs: AttributeSet?) : View(context, attrs) { var paint: Paint override fun onDraw(canvas: Canvas) { // 背景、半透明 canvas.drawColor(Color.argb(127, 0, 127, 63)) // 円 paint.color = Color.argb(255, 68, 255, 255) paint.strokeWidth = 30f paint.isAntiAlias = true paint.style = Paint.Style.STROKE // (x1,y1,r,paint) 中心x1座標, 中心y1座標, r半径 canvas.drawCircle(450f, 450f, 100f, paint) // 矩形 paint.color = Color.argb(255, 255, 190, 0) paint.strokeWidth = 10f paint.style = Paint.Style.STROKE // (x1,y1,x2,y2,paint) 左上の座標(x1,y1), 右下の座標(x2,y2) canvas.drawRect(480f, 480f, 850f, 880f, paint) // 線 paint.strokeWidth = 15f paint.color = Color.argb(255, 0, 255, 120) // (x1,y1,x2,y2,paint) 始点の座標(x1,y1), 終点の座標(x2,y2) canvas.drawLine(350f, 850f, 750f, 630f, paint) } init { paint = Paint(); } } package com.example.myturtlegraphics import android.os.Bundle import android.widget.TextView import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val label = findViewById<TextView>(R.id.label) label.setText(R.string.text) } } <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" ; xmlns:app="http://schemas.android.com/apk/res-auto" ; xmlns:tools="http://schemas.android.com/tools" ; android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <!-- ここは自分のプロジェクトに合わせる --> <com.example.myturtlegraphics.MyView android:layout_width="340dp" android:layout_height="420dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/label" 〜省略〜 app:layout_constraintVertical_bias="0.2" /> <Button android:text="@string/button" android:layout_width="200dp" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.88" /> </androidx.constraintlayout.widget.ConstraintLayout> <resources> <string name="app_name">MyTurtleGraphics</string> <string name="button">Button</string> <string name="text">"サンプルをコピペしました\n これはテストページの\nテストテキスト文章の\n文字列です。 ABCDEFG\n "</string> </resources> 面白いのができたら、apkをGoogle Playに公開しよう。それも有料で。スマホには夢がある。 誰に売るのかを考えると、やっぱり英語圏と中国語圏は捨てられない。 リソース(res)文字列は言語の切替えに便利だ。 MyView.kt MainActivity.kt activity_main.xml strings.xml とりあえず以上の4つのファイルで動作することまでです。 以上、今日はここまで >>724 どうやってapkをGoogle Playに公開するのかも知らんし デベロッパー登録って本名バレルんじゃん? リソースで言語切り替えもよくわからないです。、では。。また。。。 canvasのviewとボタンさえ出来れば ボタンを押すと画面に変化が起きる基礎の基礎 ようやくゲーム機でいうところの テレビ画面とコントローラーが揃う事になります あと一歩がんばる でも次は大きな山場スプライトアニメーションの実装が・・・ >>724 3Dでヌルヌル動くゲームアプリが無料でダウンロード出来るのに どこの馬の骨かもわからんアプデ不能のapkを 誰がダウンロードしてくれるのだろう??? おや、ビビってんのかな。知らないだれかに使ってもらうんだから、社会的責任が増えるのは当たり前だ。匿名で登録する裏ワザはない。 匿名のイーロンマスクは居ない。何ならペーパーカンパニーでも作るか? http://simple-life777. はてなblog.com/entry/2019/01/22/apk%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E7%BD%B2%E5%90%8D%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%80%90Android%E3%82%A2%E3%83%97%E3%83%AA%E3%80%91 ここにアプリの署名方法が書いてある。 APKpureというサイトを使うと野良配布が出来るらしい。 画面回転はデカいトラップのように見える。回転が起きたときに、アプリが再起動されるようなことがあるらしい。対策が必要だ。 >>729-733 いろいろとありがとうございます。まぁ、まだまだ時期尚早といいましょうか [Android] Canvas クリアーして再描画 https://akira-watson.com/android/canvas-clear.html を参考にいろいろ試したのですがエラーが取れなくてなかなか手こずりました どうにかこうにかボタンで再描画までたどり着きました。 kotlinの書き方がいまいちよくわからんので間違ってるかもですが、とにかく動きました https://i.imgur.com/6I0V4ts.gif 備忘録としてメモ MyView.ktでメソッドを定義しておいて fun showCanvas(flg: Boolean) { viewflg = flg // 再描画 invalidate() } MainActivity.ktでインスタンス化してボタンリスナーでランニング this.myView = this.findViewById(R.id.myView) val button: Button = findViewById(R.id.button) button.setOnClickListener{ myView?.run { showCanvas(true) } } 疲れたしねる。 こんにちは。T語で喋る人工知能の開発を協力してくれる方を募集しています。 技術の詳細はこちら。 http://www.01ken.com/art1.html 時給2000円くらいを想定しています。Skypeなどで僕とやり取りしながら、 日本語などで入力していきます。でも、予算はあまり落ちてないので合計で 月2万円くらいしか流れないかもしれません。でも月4万円を目指してる方 ならこれでいいんじゃないかと。税金などの法律に関しては、父親が自営業で工場 を持っているので、そちらで処理します。ご連絡をお待ちしています。 >>735 申し訳ありませんが私は1週間程度のプログラミング能力で まだ基本的なアニメーションにすらたどり付いていないばかり 人工知能開発に協力するなどというのは余りにも無謀で難し過ぎますし なによりそのT語で喋るという事の意味が理解出来かねます レベルの低い初心者なのでお役に立てそうにありません >>736 ご返信ありがとうございます。確かに1週間くらいのスキルでは厳しいかもしれ ません。2000円の仕事なので。でも、これは日本語で入力できるんですよ。 例えば、 http://01ken.com/t401.html こんな感じに書けばいいんじゃないかと。これは左の単語に反応して右の文章が出力 されるというものです。僕も困ってるんですよ。協力者が少なくて。質問などが あれば聞きます。 >>737 お誘いはありがたいのですが ようやくAndroid studioでプログラミングを始めたばかりで レベルが違いすぎて困惑しております それは第2次AIブームの膨大な知識入力作業のアルバイトと言う事でしょうか? 残念ながらタッチタイピングは120文字/分くらいで全く早くありませんので向いていないと思います >>738 わかりました。 他に興味のある方がいらっしゃれば、まだ募集します。 上にでてるタートルグラフィックやってみてるんだけど 再描画してしまうと1歩目の道筋が消えてしまう・・・ 結局、配列使ってX歩目までの道筋を全部記憶させてループの度にすべての道筋を再描画させるという荒業しかできんかった。 どうやったら前の絵を残したまま追加で描画できるんでしょ >>429 の事言ってたんだがタートルグラフィックってこれのことじゃなかったのか タートルグラフィックは普通に一気に線描かれるのでいいや ビットマップというのを使えば、画像として保存できる。サイズ調整がややこしいけどね。 こんなやりかたあったんだ 実際にやってみて思ったけど、画像として保存したらそれはそれで過去の線の座標が一切わからなくなるな お手軽ではあるけど、ちゃんと考えて使い分けた方がよさそう あとサイズはonWindowFocusChangedの中でなら問題なくレイアウトで指定したサイズでとれてそうだけど、 これメソッドどのタイミングで呼ばれてるのかよくわからん。 ライフサイクルとかいうやつの中にも入ってないし、そもそもonStartメソッド作っても呼ばれない。 でも感覚的にはStartとほぼ同じなんかな https://www.cs.dartmouth.edu/ ~campbell/cs65/lecture05/images/lifecyclediagram.png 枝の長さをランダムにすると、下のような自然界の木のような図が得られる らしいからそのまま枝の長さランダムにしたら化け物みたいな木しか生まれないんだが https://i.imgur.com/uBegWvn.png 何分岐目までかはランダムにとかできるのかな どう工夫しよう >>745 分岐する、ということは再帰すること。 再帰の度に引数をカウントアップすれば可能。 単純に3度目の再帰までとすると一番左側の枝だけランダムになってたから困ってた イメージとしては初めから3つ目ぐらいまでの枝をランダムにすれば思ってた絵ができるのかと思ってた だから再帰させる回数-残りの再帰回数が3以下の枝だけランダムにしてみたけど、思ってたのと違う絵ができた よく考えてみれば単純に再帰させる回数をそのまま乱数の最大値とすれば、 枝の先にむけて徐々に短くなりつつ、かつバラバラの枝の長さを実現できた https://i.imgur.com/nteQ01q.gif さすがにまだ公開するようなレベルのもの作れてないし、するにしてもあと2,3本ぐらい毛生やしたいかな とりあえず何かしら公開はしてみたい気はある とりあえず作った木を揺らしてみたら強風にあおられてるみたいになった 葉っぱもっと増やしたいな https://i.imgur.com/k64qPKc.gif 枝も葉っぱも追加するのが難しくて追加できない・・・ というかこれ以上拡張してもしょうがないしなぁ、 何か別のもの作るにしてもアプリ公開したいとは思ってるもののアイデアもないし 一番の悩みどころってここだよな はじめから力みすぎもよくないのだが 役に立つことにこだわらなくてもいい。 見て楽しむだけのアプリでも、エンターテインメントアプリとして通用する。 そろそろリリースしてもいいんじゃね。 確かに減るもんじゃないしリリースするのも悪くないな でも最低でも背景と風力調整できるバーはつけておきたい あと実機でも確認しておきたいからandroidのスマホ買わないと ていうか新しく公開されたアプリはどうやって他人に認知されてるの? 有名所なら広告で宣伝なりするだろうけど、それ以外で広告もないのに一時的にでもインストール数が増えるのって誰がどこで見つけてるのかな? 単純に気になる Google Playってところに登録すれば、テキストベースで検索されて、ユーザに発見されるかも知れない。 それが嫌なら、前述のAPKPureに登録するか、ホームページにリンクを貼って野良アプリとしてAPKをリソースすることになる。 Web広告とか、テレビCMとか、街宣とか、自社サービスに紐付けとか、そんな感じ。グループ会社なら社員全員ユーザもありえる。 マネーや人脈に余裕がなければ、SEO技術に頼ることになる。とりあえずホームページかブログを制作して、それを検索エンジンに登録するところから始めるしかない。 アプリのダウンロード数をブーストするという裏ワザもあるが、それはダークサイドなんで説明しない。。。 無名でなんも対策うってなかったらインストール数0で当たり前って感じだな 目的は金だからなぁ、いずれはちゃんとした対策も考えないとな・・・ その裏技は頭の片隅にでも置いとく アプリ公開する前にいくつか注意しておく。 IDかパスワードを忘れたら即死。 プラットフォームに嫌われたら一生Banされる。 規約は絶対に守る。 逆コンパイラ対策(難読化)を忘れるでない。 簡単過ぎるパスワードはハックされる、 も追加。パスワードは8文字以上にしようや。 プラットフォームはお金の流れに神経質になっている。Epicというゲーム会社がAppleの規約に反するお金の流れを作ろうとしたので、ゲーム市場から締め出されてしまった。 規約はよく読もうぜ。弁護士を雇おう。 一生BANってえげつないな apk公開と聞いて俺も真っ先に検索したのが逆コンパイル、ツール自体は簡単に手に入りそうだしやっぱり対策しといたほうがいいのか・・・ 適当に作って適当に公開ってわけにもいかないんだな まだすぐには公開しないけど次々と問題が出てきた 公開したアプリが海の藻屑となって知らず知らずに規約違反してて海の藻屑からも消し去られる運命だけは悲しすぎる・・・ 大いなるチカラには大いなる責任が伴うのだ、、、ぐぐぐ 逆コンパイラを使えば、そんなに苦労せずに見た目や動作がそっくりのアプリを作ることができる。これが悪い奴らに悪用されない訳がない。 やっぱ連休終わるとモチベーション下がるな ていうか難読化の壁がでかすぎてなかなか取り掛かる気にならない みんな有料のツールつかってるのかな・・・どこまで対策してるんだろ ちょっとゲームに浮気してた 最近戻ってひとまず満足のところに徐々に近づいてるところなんだ 大したことはしてない androidの端末もまだ買ってないけど目当てのものが売ってる店は見つけてる 仕事としてプログラムするってことを理解しないでお金もらってコードを書くと最悪訴訟起こされるぞ 一回会社に入って案件としてプログラミングすることを学ぶのをすすめる 全くの未経験でExcelのVBAから細々と始めて、ある日上司から無茶振りされたとある案件をネットと本で這々の体で完成させ稼働が始まった。 社長がそれを認めてくれてそのVBAをほぼ30万円で買い取りの形でボーナス査定に上乗せしてくれたのはとても嬉しかったです。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる