16/01/07 22:53:12.06 .net
おやすみ
351:takasi
16/01/07 22:54:21.54 .net
ありがとうございましたおやすみなさい
352:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 22:56:14.64 .net
そこに書いてある
git remote add ...
git push ...
の二行。
353:takasi
16/01/07 23:01:35.13 .net
できました
354:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 23:06:48.25 .net
リモートレポジトリのURLをここに貼れ。
355:takasi
16/01/07 23:08:49.56 .net
これでしょうか?URLリンク(github.com)
356:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 23:16:53.95 .net
空っぽだ。何かBashにエラーメッセージが表示されなかったか?
Gitの設定ができていない可能性がある。
357:takasi
16/01/07 23:21:25.49 .net
>>336の赤字以外特にエラーはありませんでした
URLリンク(i.gyazo.com)
ここでメールアドレス教えろ言われてますけどこれですかね?
358:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 23:26:12.21 .net
>>357
それだ。書かれた通りにgit configしてエラーが出たところからやり直せ。
Gitの鍵の設定は終わってるか?
359:takasi
16/01/07 23:32:03.81 .net
できました
鍵の設定は何のことやら分かりません
360:takasi
16/01/07 23:34:34.80 .net
URLリンク(i.gyazo.com)
これのことでしょうか?これはユーザーネームを入力するのですか?それともログインパスでしょうか
361:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 23:35:09.83 .net
URLリンク(monsat.hatenablog.com)
362:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 23:44:44.49 .net
もう寝なさい
妖怪「めのしたクマー」にならないように
363:takasi
16/01/07 23:52:51.29 .net
あと少し付き合って下さいお願いします!!!
>>360まで終わりましたまたgit remote add origin URLリンク(github.com)
git push -u origin masterを入力すれば良いのでしょうか
364:takasi
16/01/07 23:54:34.96 .net
適当にいじってたらできました!!!!!!!
URLリンク(github.com)
365:takasi
16/01/07 23:56:23.54 .net
ここまでやりましたがGitHubが何なのかGitが何なのかコミットの言葉の意味とかよくわからないなまま色々入力しましたがとりあえずは休憩しますありがとうございました
366:takasi
16/01/07 23:58:56.27 .net
なんか個人情報とか漏れてませんよね色々入力したりアップしたので心配です
367:仕様書無しさん
16/01/08 00:47:26.91 .net
たかしってもしかして飲み込み速いんじゃね!!
368:仕様書無しさん
16/01/08 07:39:34.66 .net
すげえ!!
369:仕様書無しさん
16/01/08 11:45:21.90 .net
案外みんな優しいのな
イチが総攻撃されるスレかと思ってきてみたら
370:仕様書無しさん
16/01/08 16:23:36.44 .net
あげ
371:takasi
16/01/08 17:48:17.50 .net
おはようございます
ありがとうございます
今日は体調が優れない為お休みさせて頂きます
おやすみなさい
372:仕様書無しさん
16/01/08 18:31:24.30 .net
職業訓練3年前いったけどなかなか良かったよ
仕事やめて2年ニートして行ったんだが、まず生活習慣変えるのがきつかった
毎月10万もらえるんだが、遅刻欠席に異様に厳しくて1回でも理由ない遅刻欠席したら0円
もう必死に通ったよ
授業も二進数とかネットワークの仕組みとか本当基礎から初めてくれてありがったかった
1日が9:30~16:00だったから放課後にちょっと勉強して、卒業するときには応用情報取って、技術的にはJavaでWEBアプリケーション作れるようになってた
就職先も斡旋してくれて、面接の練習もしてくれてなんとか就職できた
最近ようやく設計にも関われるようになった
373:仕様書無しさん
16/01/08 22:14:15.50 .net
>>366
全てのファイルを見たけど個人情報はなかったよ
ちょっぴり漏れるのを期待してたんだけどな
374:仕様書無しさん
16/01/08 22:21:30.24 .net
差分がデカすぎる
殺人的プルリクが早速合って少しワロタ
375:仕様書無しさん
16/01/09 00:23:00.42 .net
片山さんもtakashiさんもすごいな。
片山さんやさしい。
寝なさいとかいってくれる上司がほしい。
働けとはいうけど寝なさいとか言ってくれる上司はいないからなーー
376:仕様書無しさん
16/01/09 13:24:06.83 .net
自演だろ
377:takasi
16/01/09 13:39:06.40 .net
おはようございます
職業訓練は今考えています、給付金は頂けないと思いますが
休み明けにでもハロワに行ってきます
差分がでかすぎるとは何か余計なものまでアップしちゃいましたかね
先生から直しを頂いたのですが後で保存の仕方調べておきます
半分ノリで建てた部分もあるんですが、まさかここまで熱心に教えてもらえるとは思いませんでした
なので僕も頑張りたいです
自演にしろ自演でないにしろ僕が勉強してることは事実なので生暖かく見守って下さい
ちょいと久しぶりの外出をして帰宅後に猫でも分かる~を読んで勉強したいと思います
先生が来たら授業の続きを受けたいと思いますそれではさようなら
378:仕様書無しさん
16/01/09 13:56:49.72 .net
たかしは何歳なの?
379:仕様書無しさん
16/01/09 14:41:21.62 .net
URLリンク(internet2020.s3-website-ap-northeast-1.amazonaws.com)
380:仕様書無しさん
16/01/09 14:43:49.49 .net
>>377
> 差分がでかすぎるとは何か余計なものまでアップしちゃいましたかね
"katahiromz"って人からのPull Request(通称プルリク)があるでしょう
その"改良してみたよ"のコミットがデカすぎるwと、>>374で書いただけ
アナタの"second commit"には何の問題もないよ
381:takasi
16/01/09 18:45:54.99 .net
おはようございます
僕は26です
問題なかったですか良かったです
382:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 18:55:46.50 .net
GitHubのレポジトリを開いてプルリクの内容を確認してmergeしてみて。
383:takasi
16/01/09 19:17:11.94 .net
おはようございます
今からやります
384:takasi
16/01/09 19:22:06.94 .net
mergeしました自分がなにやってるかわからないんですけど大丈夫ですかね
385:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 19:26:22.74 .net
Gitとは分散型のバージョン管理システムだ。
GitHubはGitリモートレポジトリを管理するウェブサービスだ。
レポジトリとはソフトウェアの格納庫のようなものであり、
主にパッケージやライブラリのソースを保管する。
386:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 19:30:09.79 .net
今度は、ローカルレポジトリにpullしてみなさい。
pushは押す、pullはその反対の引き出す。
タンスの引き出しを連想するといい。
387:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 19:36:38.32 .net
すまない、初心者はpullを使わなくてもいい。代わりにcloneしてみてくれ。
適当なフォルダで
git clone URLリンク(github.com)(以下略)
を実行してみてくれ。
388:takasi
16/01/09 19:43:05.59 .net
できました フォルダにファイルがDLされました
389:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 19:45:52.12 .net
そのローカルリポジトリでもバージョン管理されているのを
確認するために「git log」を実行してみてくれ。
390:takasi
16/01/09 19:49:08.98 .net
プログラムの変更履歴みたいなのが出てきました
391:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 19:50:33.80 .net
viというエディタが起動する。矢印キーやPgDnキーでスクロールできる。
viの終了にはqを押す。
392:takasi
16/01/09 19:52:06.90 .net
ログは出てきましたけどエディタは起動していません
393:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 19:55:19.53 .net
そこに出てきたのはコミットした記録だ。
git commit -m "(メッセージ)"
で指定したメッセージがタイトルになる。
複雑な文字列はハッシュだ。これがコミットのIDである。
コミットとは確定とか確約などの意味があるが、日本語には適当な訳語はない。
Gitはすべてのコミットを記録する。
394:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 20:00:37.58 .net
ログが短いときはviは起動せずコンソールに出力されるだけだ。
395:takasi
16/01/09 20:00:54.25 .net
なるほどなんとなくわかってきました
さっきのpullはgitでプロジェクトフォルダ上でpullしろって事だったんですね
そうすれば新しいバージョンにプログラムが更新されると
396:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 20:04:45.33 .net
課題。編集メニューを追加し、「切り取り」「コピー」「貼り付け」
「削除」「すべて選択」ができるようにしなさい。
さらに変更ファイルをgit statusで確認、git addしてコミットしなさい。
397:takasi
16/01/09 20:08:16.36 .net
始めます
398:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 20:35:44.62 .net
わかったかな?
textBox.Cut();
textBox.Copy();
textBox.Paste();
textBox.SelectedText = "";
textBox.SelectAll();
399:takasi
16/01/09 20:40:17.93 .net
今からコミットします
400:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 20:44:56.76 .net
引き出しを押してリモートに保管しなさい。
おまじないは「git push origin master」だ。
401:takasi
16/01/09 21:00:59.38 .net
同じレポジトリ?にコミットする場合は以前コミットしたフォルダでコミットしなければなりませんか?
先ほどクローンしたプログラムのフォルダの名前が以前のと違っていたので
クローンのプログラムに手を加えてaddしてコミットしたんですが、いくつかのファイルが無いってエラーがでました
402:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:01:56.05 .net
Gitのその他、役に立つコマンドを紹介する。
「git diff」でコミット後の変更点を見る。
「git diff (ファイル名)」でコミット後のファイルの変更点を見る。
「git checkout (ファイル名)」でファイルをコミット直後の状態に戻す。
403:takasi
16/01/09 21:02:58.49 .net
最初にレポジトリを作成した時のフォルダはTextEditer301で今回はCSharpTextをコミットしようとしました
404:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:05:15.21 .net
>>401
「git status」の結果を見せて
405:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:07:20.01 .net
「git mv (旧ファイル名) (新ファイル名)」は名前の変更。
「git rm (ファイル名)」はファイルの削除。
406:takasi
16/01/09 21:08:39.84 .net
status URLリンク(i.gyazo.com)
407:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:11:13.30 .net
>>406
エラーメッセージは?
408:takasi
16/01/09 21:15:09.60 .net
error: pathspec 'second commit' did not match any file(s) known to git.
です
409:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:18:14.74 .net
git commit -m "4th commit"
410:takasi
16/01/09 21:20:01.25 .net
できました!!
-m が無かったのが原因です失礼しました
411:takasi
16/01/09 21:22:31.79 .net
GitHubに無事反映されました
412:takasi
16/01/09 21:25:21.78 .net
赤は変更前で緑が変更後だと思うんですが、いじってないところもハイライトされてるので見辛いですね
こういう仕様なんですかね
413:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:26:20.15 .net
ローカルリポジトリの記録は「.git」という隠しフォルダに記録される。
コミット内容を消したい場合は.gitを削除すればいい。
414:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:28:01.78 .net
>>412
無視したいファイルは.gitignoreに相対パスで指定する。
415:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:31:38.11 .net
ソースファイル(*.cs)はコンパイルされてオブジェクトファイル(*.obj)が出力される。
オブジェクトファイルとライブラリを組み合わせて.exeファイルにする処理をリンクという。
一連のコンパイルとリンクのことをビルドという。
416:takasi
16/01/09 21:34:56.60 .net
ファイルというか中身のコードですねURLリンク(i.gyazo.com)
Form1.csは138行以降から新規にコードが記述されましたが1-27は何も変更していないのにハイライトされてるので
どこが違うんだ~と探しちゃいますね
417:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:36:26.85 .net
>>416
おそらく改行コードの違いだろう。
418:takasi
16/01/09 21:39:41.14 .net
ああそういえば先生のプログラムに手を加えるときに書式がなんたらかんたら言われて適当に押した覚えがあります
それですね
419:takasi
16/01/09 21:41:58.25 .net
ここまで把握しました
420:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:42:39.60 .net
URLリンク(qiita.com)
421:takasi
16/01/09 21:51:05.60 .net
そこを見てgit config --global core.autoCRLF falseをしました
statusで確認したらcore.autocrlfが2つあって3行目のcore.autocrlfはtrueで
最後の行のcore.autocrlfはfalseでちゃんと設定できたかよく分かりませんね
422:takasi
16/01/09 21:54:28.50 .net
いじってみたら最後の行だけ変わるみたいですね、この問題は自分で調べておきます
423:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:57:42.32 .net
まだ時間あるな。
「編集」→「元に戻す」(undo)と「ヘルプ」→「バージョン情報」を実装せよ。
424:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 22:01:57.56 .net
終わったら試しに「git diff」してみて。
それからadd, commit, pushだ。
425:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 22:22:38.35 .net
「バージョン情報」というフォームを作って
バージョン情報をそこに記載する。
それをモーダルダイアログとして表示する。
426:takasi
16/01/09 22:30:09.24 .net
git diffしました
文字が出続けてるんですが終わるまで待てばいいですか?
427:takasi
16/01/09 22:33:04.48 .net
なかなか終わらないんでエンター押しっぱなしにしたらENDになったんですが
閉じようと思ったらまだプロセスが動いてると警告出ました
時間かかりますかね?
428:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 22:33:46.52 .net
>>426
矢印キーやPageUp/PageDownキーを押してみて。
終わるにはqを。
429:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 22:38:48.96 .net
お困りですか?
430:takasi
16/01/09 22:39:35.70 .net
5thコミット完了しましたURLリンク(github.com)
431:takasi
16/01/09 22:41:19.72 .net
core.autoCRLF falseちゃんと機能してました
432:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 22:45:02.86 .net
おやすみなさい
433:takasi
16/01/09 22:45:50.93 .net
本日もありがとうございましたおやすみなさい
434:片山博文MZ ◆T6xkBnTXz7B0
16/01/10 03:43:22.75 .net
【今後の予定】
プルリクの方法
GUIデザイン
マルチメディア
データベース
ネットワーク
435:片山博文MZ ◆T6xkBnTXz7B0
16/01/10 20:44:55.02 .net
勇者はおらんのか?
436:takasi
16/01/10 22:45:42.75 .net
申し訳ありません!!!!!!!!!
なかなか寝付けず今起きました
明日頑張ります
おやすみなさい・・・
437:仕様書無しさん
16/01/11 00:00:52.53 .net
片山さん共同プロジェクトの授業の予定があったら呼んでください馳せ参じますからね
438:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 00:06:29.40 .net
はい、無断欠勤ひとーつ。減給ね。
439:takasi
16/01/11 06:44:44.66 .net
(T_T)
寝れません
本での学習は進んでいます 猫でもわかるC# 142/404p
授業には間に合いたいです
おやすみなさい
440:仕様書無しさん
16/01/11 13:45:50.57 .net
>>439
猫はわかりやすい?
441:仕様書無しさん
16/01/11 15:33:10.17 .net
C#やるなら、LINQPadがチョー便利
フリー版でも十分使えるぞ
これ豆な
442:takasi
16/01/11 19:17:14.85 .net
おはようございます
443:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 19:22:20.87 .net
URLリンク(github.com)
これをForkしたものをローカルにcloneしてみたまえ。
Forkとは、方向性の違う分家を作り、自分好みに変えるために、
自分のリポジトリとして複製することだ。
444:takasi
16/01/11 19:24:50.91 .net
>>440
分かりやすいですけど完全な初学者向けではないかもしれません
2進数やビットが何も解説無く出てくるので
別に知らなくても読み進められますけど、猫でも分かるはいいすぎかもしれませんにゃ
LINQはまだ学習していませんがそこまで行ったら使ってみますね
445:takasi
16/01/11 19:26:06.27 .net
先生おはようございます
寝起きなので少々お待ち下さい
446:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 19:27:00.43 .net
JankenGUI.slnを開き、デザインフォームで二つのPictureBoxのWidth,Heightを60にしなさい。
ドラッグやShiftキーでフォーム上のコントロールを複数選択し、VSの
「書式」メニューを使ってコントロールの位置を調整しなさい。
447:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 19:32:14.41 .net
同じフォルダにある音声ファイル(*.wav)や画像ファイル(*.png)を確認。
ソリューションエクスプローラの「Properties」をダブルクリック。
リソースを選択。「リソースの追加」の右三角をクリック、
「既存のファイルの追加」を選ぶ。ファイルの種類を「ビットマップ」にし、
Shiftを押しながらpngファイルをすべて選択して開く。
オーディオのwavファイルも同様。
448:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 19:35:33.57 .net
ここで「リソース」というのは、EXEファイルにデータを埋め込む機構のことだ。
データが埋め込まれていないデータファイルなら、容易に第三者に盗用されてしまう。
リソースはある程度これを防ぐ。
449:takasi
16/01/11 19:36:51.66 .net
今から始めます
スタート
450:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 19:40:31.55 .net
button1をダブルクリック、次のコードを追加。
「pictureBox1.Image = Properties.Resources.gu;
var player = new System.Media.SoundPlayer(Properties.Resources.gu1);
player.PlaySync();」
できたら、デバッグ実行して、button1をクリックしてみよ。
451:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 19:45:49.55 .net
コントロールはFontプロパティで文字を大きくしている。
また、ボタンを大きくした文字列に合わせるためにAutoSizeをTrueにした。
452:takasi
16/01/11 19:48:37.97 .net
デザインフォームはどうやって表示させるのでしょうか?
slnファイルを開きエクスプローラからファイル一つ一つクリックしたのですが
コードが表示されるだけです
453:takasi
16/01/11 19:49:16.22 .net
右クリックからビューデザイナで表示できました失礼しました
454:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 19:50:06.53 .net
課題。ジャンケンゲームを完成させなさい。
ボタンとフォームの背景色を変更しなさい。
フォームはサイズ変更できないようにしなさい。
455:takasi
16/01/11 20:03:30.19 .net
課題始めます
456:仕様書無しさん
16/01/11 20:05:49.76 .net
>>444
あ、勘違いしてる
LINQPadはLINQ専用のツールじゃないよ
ちょっと試したいC#コードの断片がある時に、
わざわざVisual StudioでSolutionやProjectとか作らずに
気楽に試すことができるツール
457:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 20:06:34.60 .net
フォームが読み込まれたときの処理はLoadイベントで行う。
表示されたときの処理はShownイベントで行う。
イベントはプロパティウィンドウのカミナリをクリックすれば見られる。
458:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 20:13:34.58 .net
画像がPictureBoxからはみ出る場合は
SizeModeプロパティをいじるとよかろう。
ちなみに、画像はGoogle画像検索で「ジャンケン フリー素材」を検索して拾った。
音声は自分で録音したものだ。
459:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 20:17:14.83 .net
自分で画像を用意したい場合はGIMPやInkscapeといったフリーソフトで
作成・編集したり、カメラやスキャナで取り込んだりするとよい。
460:takasi
16/01/11 20:23:30.63 .net
>>456
課題終わったら使ってみます!
思ったより頭が働いてないので少し時間かかります
461:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 20:29:58.66 .net
リソースデータは名前で参照する。名前が重要だ。
どのリソースを使うかは、名前で決めないといけない。
462:仕様書無しさん
16/01/11 20:36:45.79 .net
>>460
気が向いたらでおkっす
463:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 21:01:55.05 .net
ヒント:ボタンのクリック処理を関数で共通化
464:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 21:06:36.41 .net
ヒント:勝ち負け判定関数
465:takasi
16/01/11 21:11:19.73 .net
最序盤でつまづいています
スタートボタンを押して開始→手をクリック→手を受け取り条件分岐
こういう流れで行きたいのですが
えーまず、メインのジャンケンの処理をどこに記述すればよいのかで混乱しています
466:takasi
16/01/11 21:17:10.61 .net
頭のなかではこんな感じなのですがURLリンク(i.gyazo.com)
実装の仕方がわからず・・・
さっさと質問しとけばよかったですすみません
467:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 21:20:18.45 .net
... button1_click(...) {
show_hand(1);
}
... button2_click(...) {
show_hand(2);
}
... button3_click(...) {
show_hand(3);
}
void show_hand(int player_hand) {
int comp_hand = get_comp_hand();
...手を表示する処理をここに書く...
switch(hantei(player_hand, comp_hand)) {
...勝ち負けを表示...
}
}
468:takasi
16/01/11 21:24:17.30 .net
ありがとうございます
分からなかったらまた聞きます
行ってきます
469:takasi
16/01/11 22:30:37.72 .net
今日中に終わらなそうです
470:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 22:32:51.24 .net
残りは明日にするか。
どこまでできた?
471:takasi
16/01/11 22:42:42.02 .net
判定して結果を表示させる所まで来ました
あとはあいこのループ処理と画像の表示と音声のタイミングが合ってないのでそれを直すことです
472:takasi
16/01/11 22:46:06.33 .net
・スタートおした時のジャンケンポンの効果音
・判定後のスタートをリセット
・画像のサイズをあわせる
まだまだありました
473:takasi
16/01/11 22:46:37.45 .net
明日の授業までに終わらせておきます
474:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 22:48:43.00 .net
PlaySyncを使うとそこで処理が動かなくなる。
画像を変えるなら再生の前にするとよい。
一方、Playは非同期で動く。
非同期再生処理のタイミングを調整したいなら、スレッドを使うことになる。
475:takasi
16/01/11 22:51:07.18 .net
分かりました
頭をすっきりさせるためにお風呂に入ってきます
476:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 22:51:07.43 .net
今日もよくがんばった。おやすみ。
477:takasi
16/01/11 22:51:32.48 .net
本日もありがとうございました!!おやすみなさい
478:takasi
16/01/12 00:56:08.92 .net
>>454
なんとか完成しました
今までは一つのメソッドに処理書いていたので楽でしたが
今回はメソッド同士の値の受け渡し?などがよく分かってなくて難しかったです
数こなしてなれるしか無いですね
479:片山博文MZ ◆T6xkBnTXz7B0
16/01/12 11:11:05.72 .net
>>478
add, commit, pushしてから、Githubでプルリクしなさい。
480:takasi
16/01/12 16:48:13.54 .net
おはようございます
プルリクエストしてみました。ちゃんとできていますでしょうか
体調不良のため途中で離脱するかもしれません
481:片山博文MZ ◆T6xkBnTXz7B0
16/01/12 17:14:09.31 .net
今日の勉強会は休みにします。
482:takasi
16/01/12 17:20:28.56 .net
分かりました、自習します
483:仕様書無しさん
16/01/12 18:49:16.21 .net
先生、たかし君のペースでいいので是非データベースとの連携もご教示ください!
484:takasi
16/01/13 13:50:41.92 .net
病院行こうと思ったら午前で終わってました
おはようございます
485:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 19:10:53.68 .net
ジャンケンゲームの続きだ。
URLリンク(github.com)
これを適当なフォルダにcloneしてソースを眺めてみよ。
486:takasi
16/01/13 19:26:21.36 .net
おはようございます
始めます
487:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 19:32:23.31 .net
Visibleプロパティをfalseにすると非表示になる。
SoundPlayer.Stopで音を止めることができる。
488:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 19:37:24.49 .net
コードを読んだ感想を述べよ。
489:takasi
16/01/13 19:47:25.22 .net
僕のぐっちゃぐちゃなコードに比べるとすごく綺麗にまとまっていて
これはどういう動作をするコードなのかひと目で分かります
条件分岐の負けの判定の仕方でelse if ((3 + player_hand - comp_hand) % 3 == 1)
を見てこれはすげえと思いました
全体のコード量は少ないですが、すっきりしていて感動しました
そして自分にこんな綺麗に書ける自信が無くて胃が痛くなりました
490:takasi
16/01/13 19:49:19.08 .net
こういうやり方もあるのかと色々発見がありました
以上、小学生並みの感想文でした
491:takasi
16/01/13 19:52:11.35 .net
あとじゃんけんゲームがなかなかおもしろいです
492:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 19:57:19.20 .net
その判定は大学数学の剰余類という概念を使っている。
多分、大学一年生で習うだろう。
493:takasi
16/01/13 20:04:12.87 .net
初めて聞いた単語で胃が痛くなりました
とりあえず頑張ります
ちなみに僕は数学は大の苦手です
数学の知識があったほうがどう考えてもいいですね
494:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:04:33.55 .net
今日はアプリの設定データについて勉強する。
アプリを終了した後でも、データを保存しておきたい場合、
ファイルやレジストリにデータを記録することになる。
レジストリはWindowsが持っている、階層構造を持ったデータベースで
あり、ファイルとは異なる。
495:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:10:02.84 .net
二つのTextBoxをフォームに配置し、さらにOKボタンとキャンセルボタンを置く。
496:takasi
16/01/13 20:12:34.79 .net
置きました
497:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:18:30.96 .net
OKボタンをダブルクリックして、次のコードを追加。
var key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"Software\Takashi\MySoftware");
key.SetValue("Text1", textBox1.Text);
key.SetValue("Text2", textBox2.Text);
key.Close();
498:takasi
16/01/13 20:20:17.35 .net
追加しました
499:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:23:26.62 .net
プログラムを実行してOKを押す。これでレジストリに書き込まれた。
Win+Rキーを押してregeditと入力してEnterキーを押す。
これでレジストリエディターが起動する。
HKEY_CURRENT_USER\Software\Takashi\MySoftwareがあることを
確認せよ。
500:takasi
16/01/13 20:28:09.63 .net
Tkashi\Mysofrwareとレジストリを確認しました
501:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:31:55.02 .net
次は読み込みだ。フォームのLoadイベントに次のコードを追加。
var key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Takashi\MySoftware");
textBox1.Text = key.GetValue("Text1");
textBox2.Text = key.GetValue("Text2");
key.Close();
502:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:36:28.82 .net
文字列リテラルに@が付いているのは\によるエスケープシーケンスを解釈しないためだ。
以前、"\n"は改行を表すと言った。"\t"はタブ文字だ。このように通常、""の中の\は特殊な解釈をする。
503:takasi
16/01/13 20:41:47.46 .net
オブジェクト型はString型に代入できないと注意されたのでConvert.ToStringしましたが大丈夫でしょうか
private void Form1_Load(object sender, EventArgs e)
{
var key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Takashi\MySoftware");
textBox1.Text = Convert.ToString(key.GetValue("Text1"));
textBox2.Text = Convert.ToString(key.GetValue("Text2"));
key.Close();
}
504:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:41:56.00 .net
レジストリはシステムの資源を占有するので、サイズの大きなデータを書き込むべきではない。
大きな設定データはファイルに記録する。
ではどこに設定ファイルを書き込めばいいか?
特殊フォルダのAppDataに書き込むのがいいとされる。
505:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:45:29.99 .net
>>503
key.GetValue("Text1").ToString();
でOKだ。
506:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:49:48.52 .net
特殊フォルダの場所を取得するには次のように書く。
var path = System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
507:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:57:53.42 .net
読み込みされるか実行して確認せよ。
次にレジストリエディタでMySoftwareキーを削除してプログラムを再起動せよ。
例外が発生するはずだ。実はキーが開けないときkeyはnullになる。
nullというのは無効なデータのことだ。
508:takasi
16/01/13 21:01:26.06 .net
読み込まれないです!
URLリンク(i.gyazo.com)
Form1_Loadは初めから存在してなかったので自分で作ったのですがこれが原因でしょうか
509:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 21:03:06.24 .net
キーが開けないときや作れないときはkey == nullになる。
このまま書き込んだり、読み込もうとすると例外が発生してしまう。
対処法はnullチェックをすることだ。
if (key != null) {
...
key.Close();
}
510:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 21:04:38.96 .net
>>508
それはいったん消してプロパティウィンドウ
からイベントを追加せよ。カミナリのアイコンだ。
511:takasi
16/01/13 21:12:54.68 .net
>>507例外がスローされるのを確認して
>>509nullチェックで回避しました
512:takasi
16/01/13 21:19:18.77 .net
あ、読み込みも問題なくできました
513:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 21:20:52.39 .net
課題。ジャンケンゲームでの勝ち・負け・引き分けの回数を
レジストリに記録するようにせよ。
514:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 21:22:48.11 .net
アプリ設定に使ったファイルやレジストリキーを消すのは、
インストーラ側で行うことが多い。
515:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 21:34:51.21 .net
課題が出来たら、プルリクせよ。残り時間は自習とする。
516:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 22:11:34.19 .net
質問はありませんか?
517:takasi
16/01/13 22:19:11.11 .net
質問はありませんが、値の受け渡しで頭がぐるぐるしてます
とりあえずsave_keyメソッドとload_keyメソッドを作りぐっちゃぐちゃやってます頑張ります
518:takasi
16/01/13 22:45:21.86 .net
えーと、やりたいことは分かっているんですが思考が迷子です
時間がかかりそうなので宿題とさせて下さい
えーとプログラミング適正無しでしょうか悲しいです
519:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 23:12:37.34 .net
ヒント:
アプリ側で保持するのは、回数が増えた分だ。現在の回数ではない。
レジストリへのアクセスは読み書きを一度に行う。
アプリ側の増分だけレジストリの回数を増やした後でアプリ側の増分をゼロにする。
回数を増やすのは勝敗引き分けが決まったときに行う。
回数の増分はフォーム側ではなくプログラム側で保持する。
520:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 23:16:19.59 .net
おやすみ。身体を冷やすなよ。
521:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 20:36:18.94 .net
ヘイ、ヨー!
始めっぞ
522:takasi
16/01/14 20:40:53.10 .net
おはようごじます・・・
523:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 20:44:14.18 .net
さあーて、どこまでできたかなっ♪
524:takasi
16/01/14 20:50:08.39 .net
正直に言いますとまだ出来ていません
あまりの出来の悪さに悲しみに暮れ寝て起きたら今です
○にたい
525:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 20:54:55.82 .net
ヘイ、まずは、三つのint型のメンバー変数を追加するよぉ。
初期値はゼロだぜぃ。
int kachi_count = 0;
int make_count = 0;
int aiko_count = 0;
526:takasi
16/01/14 20:56:23.94 .net
追加しました
527:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 20:58:47.83 .net
お次は、勝敗判定の箇所を探してみよー。
hantei関数の呼び出しをしている場所があるよね。
ここで判定に応じてカウント変数を1つ加算だよお!
528:takasi
16/01/14 21:02:23.71 .net
加算できました
529:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 21:03:36.91 .net
その後にレジストリのカウント値を更新だ。
CreateSubKeyはキーがなければキーを作成してそれを開く。
あればそのまま開く。
カウント値はGetValueで取得、SetValueで設定だ。
しかしまだ値を設定していないときにGetValueしたらどうなるか?
530:takasi
16/01/14 21:05:55.97 .net
例外がスローされます
531:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 21:17:48.07 .net
>>530
ノーノー、nullが返される。
var value = key.GetValue("KachiCount");
int count = kachi_count;
if (value != null)
{
count += Convert.ToInt32(value);
}
...
532:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 21:20:30.78 .net
そしてcount.ToString()をSetValueしてからkachi_countをゼロにする。
他のカウント変数も同様だ。
533:takasi
16/01/14 21:23:48.93 .net
どのタイミングでキーを作成しなければいけないのか分からないです
534:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 21:25:18.15 .net
カウントを表示するのは別のフォームで行う。
新しくフォームを追加だ。
その上にラベルをいくつか追加。
フォームのLoadイベントでレジストリを読み込んでラベルテキストをセット。
OKボタンでフォームを閉じるようにする。
535:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 21:28:59.98 .net
>>533
いつカウントを更新するかは、自由に決めることができる。
アプリが終了するときか、フォームが閉じたときか、カウンタが更新したときか。
ここではすぐに更新してほしいので、hantei関数が呼ばれた後に
レジストリを更新する。
536:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 21:33:18.31 .net
どうだね? 作れそうかな?
537:takasi
16/01/14 21:33:36.08 .net
>>534は
private void Form2_Load(object sender, EventArgs e)
{
var key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Takashi\MySoftware");
label4.Text = key.GetValue("KACHI").ToString();
label5.Text = key.GetValue("MAKE").ToString();
label6.Text = key.GetValue("AIKO").ToString();
}
で大丈夫ですよね
538:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 21:35:57.02 .net
>>537
try/catchしないならkeyとvalueのnullチェックが必要だよ。
539:takasi
16/01/14 21:36:07.69 .net
レジストリの更新はメソッドを新たに作成してそこでやらせたほうがいいですよね
540:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 21:37:03.59 .net
>>539
そうだね。
541:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 21:45:20.04 .net
\MySoftware
のところは
\JankenGUI
にしておこう。
542:takasi
16/01/14 21:46:11.30 .net
var key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Takashi\MySoftware");
if (key != null)
{
var value_kachi = key.GetValue("KACHI");
var value_make = key.GetValue("MAKE");
var value_aiko = key.GetValue("AIKO");
if (value_kachi != null) label4.Text = key.GetValue("KACHI").ToString();
if (value_make != null) label5.Text = key.GetValue("MAKE").ToString();
if (value_aiko != null) label6.Text = key.GetValue("AIKO").ToString();
こういうことでしょうか
543:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 21:48:05.12 .net
if (value_kachi != null) label4.Text = key.GetValue("KACHI").ToString();
ちょっと無駄があるな。
if (value_kachi != null) label4.Text = value_kachi.ToString();
こっち。
544:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 21:57:22.37 .net
git add -a
git commit -m "add counters"
git push origin master
545:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 22:05:30.78 .net
どうだね?
何があっても、とにかく陽気に行こうぜ
546:takasi
16/01/14 22:13:32.93 .net
もう少しで動かします
547:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 22:14:28.61 .net
どうした? ん?
548:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 22:21:25.15 .net
ブラインドタッチの特訓と基本情報の取得が必要だな。
1ヶ月以内にブラインドタッチをマスターして、
1年以内に基本情報を取得しなさい。
549:takasi
16/01/14 22:24:31.61 .net
上手くいきません
とりあえず現時点のコードをコミットした方がいいですか
550:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 22:25:37.85 .net
レジストリの更新はカウント加算の後だ。
551:takasi
16/01/14 22:27:44.43 .net
ブラインドタッチ一応できます・・・
実質的な死刑宣告と捉えたほうが良いですか・・・
552:takasi
16/01/14 22:29:36.69 .net
switch (hantei(player_hand, comp_hand))
{
case HanteiKekka.HANTEI_KACHI:
label3.Text = "あなたの勝ちです";
kachi_player.Play();
++kachi_count;
save_key("KACHI");
break;
case HanteiKekka.HANTEI_MAKE:
label3.Text = "あなたの負けです";
make_player.Play();
++make_count;
save_key("MAKE");
break;
case HanteiKekka.HANTEI_AIKO:
label3.Text = "あいこ";
aiko = true;
++aiko_count;
save_key("AIKO");
break;
}
553:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 22:30:23.51 .net
じゃあ、pushしといて。
明日見るから。
554:takasi
16/01/14 22:31:57.33 .net
わかりましたpushしておきます
555:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 22:32:05.26 .net
今日はおやすみ。
556:takasi
16/01/14 22:33:02.13 .net
すみませんでした
おやすみなさい
557:takasi
16/01/14 23:36:49.80 .net
$ git push origin master
remote: Permission to katahiromz/JankenGUI.git denied to takasi-desu.
fatal: unable to access 'URLリンク(github.com)': The requested URL returned error: 403
ぐぬぬ
558:仕様書無しさん
16/01/15 00:55:53.21 .net
URLリンク(transitive.info)
559:片山博文MZ ◆T6xkBnTXz7B0
16/01/15 01:19:31.01 .net
あ、フォーク忘れてた? ごめんね。
560:takasi
16/01/15 02:12:03.82 .net
んぐぐぐぐぐぐぐ
プスプスプスシューーーーーーーーーーー
561:takasi
16/01/15 02:20:50.29 .net
なぜでしょうpushができません
562:片山博文MZ ◆T6xkBnTXz7B0
16/01/15 07:48:52.11 .net
>>561
自分のリポジトリじゃないからね。
最初にforkすべきだった。
pushしなくていいよ。変更点少ないし。
563:takasi
16/01/15 08:22:44.17 .net
分かりました
動かして見た感じでは問題はなかったです
URLリンク(gyazo.com)
URLリンク(gyazo.com)
URLリンク(i.gyazo.com)
564:片山博文MZ ◆T6xkBnTXz7B0
16/01/15 16:39:11.05 .net
いくつか注釈しておこう。
引数がゼロ個の関数を作ることができる。
save_keyは引数のない三つの関数に分けた方がいい。
記録がない場合はゼロ回として扱うべきだ。
異常な表示にならないようにすべての場合の「状態」を管理しないといけない。
565:片山博文MZ ◆T6xkBnTXz7B0
16/01/15 19:39:31.24 .net
JankenGUIにリソースのアイコン(*.ico)を追加せよ。フリー素材で構わない。
可能ならばJankenGUIに署名を行え。
JankenGUIをReleaseビルドせよ。
Inno Setupをダウンロード&インストールせよ。
566:片山博文MZ ◆T6xkBnTXz7B0
16/01/15 19:41:08.11 .net
Inno Setupのウィザードに従ってインストーラのスクリプト(*.iss)を試作せよ。
スクリプト中の絶対パスを相対パスにせよ。
JankenGUIが使っている.net frameworkのバージョンを確認せよ。
次のサイトを参考にインストール時に.net frameworkの有無をチェックするようにせよ。
URLリンク(qiita.com)
567:片山博文MZ ◆T6xkBnTXz7B0
16/01/15 20:09:15.33 .net
今日はインストーラ作成を行う。今回の課題は英語ができないと難しいかも知れないな。
質問が有ったらお気軽に。
568:takasi
16/01/15 20:14:40.64 .net
おはようございます
準備ご始めます
569:片山博文MZ ◆T6xkBnTXz7B0
16/01/15 20:24:28.92 .net
署名は多少時間がかかると思う。今日は後回しでいい。
570:片山博文MZ ◆T6xkBnTXz7B0
16/01/15 20:36:34.17 .net
ローカルリポジトリ情報の隠しフォルダ「.git」を「rm -rf .git」で消す。
「rm -rf」はファイルやフォルダをまるごと消すLinuxのコマンドだ。
GitHubのTakasi-DesuのJankenGUIをSettingsから消して(delete)作り直す。
それからgit init, add, commit, push -uだ。
571:片山博文MZ ◆T6xkBnTXz7B0
16/01/15 20:39:05.60 .net
git remote addも忘れずに。
572:片山博文MZ ◆T6xkBnTXz7B0
16/01/15 21:07:44.34 .net
教員免許を持っていない私が指導するのだから、不充分な点も
あるかもしれないが、御了承頂きたい。
進捗報告を。
573:takasi
16/01/15 21:20:27.37 .net
Inno Setupの使い方を調べている途中です
574:片山博文MZ ◆T6xkBnTXz7B0
16/01/15 21:26:32.48 .net
Releaseビルドしたなら、bin/Releaseフォルダにexeができているだろう。
これをInno Setupのウィザードでプログラムファイルとして指定する。
575:takasi
16/01/15 21:43:42.57 .net
使い方がさっぱりわかりません
exeファイルはできましたがInno Setupのウィザードでプログラムファイルとして指定するのはどうすればよいのでしょうか
576:片山博文MZ ◆T6xkBnTXz7B0
16/01/15 21:44:30.97 .net
わからない点はある?
577:片山博文MZ ◆T6xkBnTXz7B0
16/01/15 21:47:26.33 .net
>>575
Inno Setupは日本語になっているか?
参照ボタン(browse)をクリックして、ファイルの場所を指定する。
578:takasi
16/01/15 21:52:54.29 .net
参照ボタンはどこでしょうか?
開くはスクリプトファイルしか開けないようです
今この画面ですURLリンク(i.gyazo.com)
579:片山博文MZ ◆T6xkBnTXz7B0
16/01/15 21:56:07.64 .net
File→New
580:片山博文MZ ◆T6xkBnTXz7B0
16/01/15 22:07:21.09 .net
英語が読めないなら、日本語化した方がいいんじゃないか?
581:takasi
16/01/15 22:14:29.43 .net
日本語化できますか?
インストールウィザードを日本語化するのしか見つかりませんでしたが
582:takasi
16/01/15 22:21:56.78 .net
先生、今回ばかりは無理かもしれません
使い方が全くわからなくて調べながらやらないといけないので時間が凄いかかると思います・・・
順序立てて教えていただければ分かりやすいですが、それもまた時間かかりそうですし・・・
583:片山博文MZ ◆T6xkBnTXz7B0
16/01/15 22:23:26.45 .net
InnoEditXにしようか?
584:takasi
16/01/15 22:26:31.40 .net
簡単なのであればそちらでお願いします
DLします
585:片山博文MZ ◆T6xkBnTXz7B0
16/01/15 22:36:59.62 .net
今日はこの辺でお開きといたしやしょう。
おやすみでござります。
586:takasi
16/01/15 22:38:58.93 .net
すみませぬ・・・・・・・・・おやすみなさい・・・・・・・・・・・・・・_(:3」∠)_
587:仕様書無しさん
16/01/15 23:11:10.08 .net
じゃんけんは意外と作るの面白いよね
がんば
588:仕様書無しさん
16/01/16 15:14:46.12 .net
InnoEditX
URLリンク(textexpage.s154.xrea.com)
589:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 17:22:50.44 .net
InnoEditXをDL、展開して適当なフォルダに配置する。
InnoEditXのReadMeを読んだ後で、InnoEditXを起動する。
「ツール」→「設定」で、Inno Setupの場所を指定する。
あらかじめJankenGUIにReadMe.txtとLicense.txtを追加しておく。
[Setup]タブをクリック。「基本情報」タブで、アプリの名前を入力
(「たかしのジャンケン」「たかしのジャンケン ver.1.0」)。
インストール先を入力({pf}\Takashi Janken)。
590:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 17:23:50.31 .net
「アンインストーラー」タブをクリック。
「アンインストーラーを作る」をチェック。
表示するアイコンに「{app}\JankenGUI.exe」を指定する。
{pf}は「C:\Program Files」などを表している。
{app}はインストール先のフォルダを表している。
「情報」タブをクリック。「製作者」「説明」「バージョン」を入力。
591:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 17:24:15.92 .net
「フラグ」タブをクリック。
「中断を許可」「UNCパスを許可」「アプリ用ディレクトリを作る」
「情報をレジストリに保存」をチェック。
「ダイアログ」タブをクリック。
「インストールを行いますダイアログを出さない」をチェック。
ここまで、[Setup]タブ。
592:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 17:24:42.42 .net
[Files]タブをクリック、リストを右クリックして「アイテムの追加」。
ソースファイルに「JankenGUI.exe」を選んで指定、
出力先ディレクトリを「{app}」にして、「OK」。
さらに「アイテムの追加」。「ReadMe.txt」を選んで指定、
出力先ディレクトリを「{app}」にして、「OK」。
さらにさらに「アイテムの追加」。「License.txt」を選んで指定、
出力先ディレクトリを「{app}」にして、「OK」。
593:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 17:25:18.48 .net
[Icons]タブをクリック。
このタブはショートカットアイコンの追加に関する設定だ。
リストを右クリックで「アイテムの追加」。
作成先を「{group}\たかしのジャンケン」に、
リンク先を「{app}\JankenGUI.exe」にして、「OK」。
さらに「アイテムの追加」。
作成先を「{commondesktop}\ReadMe.txt」に、
リンク先を「{app}\ReadMe.txt」にして「OK」。
さらにさらに「アイテムの追加」。
作成先を「{commondesktop}\License.txt」に、
リンク先を「{app}\License.txt」にして「OK」。
594:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 17:26:45.27 .net
さらにさらにさらに「アイテムの追加」。
作成先を「{commondesktop}\たかしのジャンケン」に、
リンク先を「{app}\JankenGUI.exe」にして「OK」。
さらにさらにさらにさらに「アイテムの追加」。
作成先を「{group}\アンインストール」に、
リンク先を「{uninstallexe}」にして、「OK」。
{group}は、スタートメニューの項目を表している。
{commondesktop}は、すべてのユーザのデスクトップを表している。
{uninstallexe}は、アンインストールプログラムを表す。
ここまで[Icons]タブ。
名前「JankenGUI.iss」を付けて保存。ビルドしてエラーがなければ
インストーラが作成される。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
595:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 19:12:34.29 .net
>>593 訂正。
× 作成先を「{commondesktop}\ReadMe.txt」に、
○ 作成先を「{group}\ReadMe.txt」に、
× 作成先を「{commondesktop}\License.txt」に、
○ 作成先を「{group}\License.txt」に、
596:仕様書無しさん
16/01/16 19:51:40.96 .net
たかし書籍化パターンだろこれw
597:仕様書無しさん
16/01/16 19:52:21.97 .net
謝辞に片山先生へのお礼が書かれてるend
598:takasi
16/01/16 20:07:07.86 .net
おはようございます
ありがとうございます・・・
始めます
599:takasi
16/01/16 20:45:19.33 .net
無事ビルド完了しました
URLリンク(i.gyazo.com)
600:仕様書無しさん
16/01/16 20:48:10.27 .net
どうでもいいことだろうけど、
>>594になぜ
Rock54: Cautionがついているのだろう
exeかな?
601:仕様書無しさん
16/01/16 20:49:17.37 .net
剛田たけしのジャイアンじゃんけん
602:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 20:49:51.11 .net
>>570-571の手順でGitHubにアップしてくれ。
以前のレポジトリは消えても構わない。
603:takasi
16/01/16 20:53:08.37 .net
作成したセットアップファイル?もフォルダに加えるんでしょうか
604:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 20:53:33.06 .net
.issもレポジトリのフォルダに入れて。
setup.exeは.gitignoreで除外して。
605:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 21:12:03.30 .net
修正1.JankenGUI.issをテキストエディタで開いて絶対パスの記述を相対パスに直しなさい。
修正2.使用しているレジストリキーをアンインストール時に削除するようにしなさい。
606:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 21:14:19.67 .net
終わったらInnoEditXで開いてビルド。
インストールしてインストールした項目をテスト、アンインストールを何度か繰り返しなさい。
607:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 21:23:48.25 .net
進捗報告を。
608:takasi
16/01/16 21:36:08.78 .net
今>>605です
609:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 21:39:38.33 .net
絶対パスと相対パスについてはご存じかな?
610:takasi
16/01/16 21:45:31.48 .net
いいえ
611:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 21:50:20.18 .net
現在のフォルダが「C:\Users」であるとき、「C:\Users\takasi\himitsu」という場
所(パス)は相対パス「takasi\himitsu」で参照できる。
「C:\Users\takasi\himitsu」は絶対パスだ。
パスを相対的に指定するか、絶対的に指定するかの違いだ。
612:takasi
16/01/16 21:54:06.18 .net
これを直すんですよね?
Name: "{group}\たかしのジャンケン"; Filename: "{app}\JankenGUI.exe";
Name: "{group}\ReadMe.txt"; Filename: "{app}\ReadMe.txt";
Name: "{group}\License.txt"; Filename: "{app}\License.txt";
Name: "{commondesktop}\たかしのジャンケン"; Filename: "{app}\JankenGUI.exe";
Name: "{group}\アンインストール"; Filename: "{uninstallexe}";
613:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 21:58:08.41 .net
{ }がついたものは直す必要ない。
[Files]の記述はどうなってる?
614:takasi
16/01/16 21:59:43.12 .net
[Files]はありません[Setup]と[Icons]のみです
615:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 22:03:53.38 .net
ファイルがインストールされていない。>>592をやり直して。
616:takasi
16/01/16 22:13:40.06 .net
これで良いでしょうか
[Files]
Source: "JankenGUI\bin\Release\JankenGUI.exe"; DestDir: "{app}";
Source: "JankenGUI\ReadMe.txt"; DestDir: "{app}";
Source: "JankenGUI\License.txt"; DestDir: "{app}";
[Registry]
Root: HKCU; Subkey: "Software\Takashi"; Flags: uninsdeletekeyifempty
Root: HKCU; Subkey: "Software\Takashi\JankenGUI"; Flags: uninsdeletekey
617:takasi
16/01/16 22:17:09.20 .net
[Files]
Source: "bin\Release\JankenGUI.exe"; DestDir: "{app}";
Source: "ReadMe.txt"; DestDir: "{app}";
Source: "License.txt"; DestDir: "{app}";
こうでした
618:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 22:17:41.38 .net
JankenGUI.issは、フォルダJankenGUIの中にあるんだろ? だったら
Source: "License.txt"; DestDir: "{app}";
じゃないかい?
619:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 22:19:04.50 .net
>>617
それでOK。テストに入りなさい。
620:takasi
16/01/16 22:20:47.16 .net
問題なくインストールでき、アンインストール時にレジストリが削除されることを確認しました
_(:3」∠)_
621:片山博文MZ ◆T6xkBnTXz7B0
16/01/16 22:24:11.12 .net
pushしたら今日はここまで。おやすみ。
622:takasi
16/01/16 22:33:30.36 .net
pushしました本日もありがとうございましたおやすみなさい_(:3」∠)_
623:takasi
16/01/16 22:36:16.91 .net
ツールの使い方が全くわからない辛い・・・
624:片山博文MZ ◆T6xkBnTXz7B0
16/01/17 13:09:32.88 .net
JankenGUIのプロパティの「公開」タブをクリックして、マイナー
バージョンを1にし(1.1)、Releaseバージョンをビルドしなさい。
プログラムに変更が有った場合、プログラムをバージョンアップしないと
インストーラがファイルを更新しないことがあるので注意。
JankenGUI.issをInnoEditXで開いて[Setup]タブをクリック。
「デフォルトのスタートメニューグループ名」を「たかしのジャンケン」にしなさい。
625:片山博文MZ ◆T6xkBnTXz7B0
16/01/17 13:15:15.24 .net
[Languages]タブをクリック。リストを右クリックして、名前を「Japanese」にし、言語ファイルで「Languages」→「Japanese.isl」を順に選んで「OK」。
[Setup]タブをクリック。「基本情報」と「情報」のバージョンを1.1にしなさい。
「基本情報」の「出力」の「セットアップファイルの出力時の名前」を
「tjanken-1.1-setup.exe」にしなさい。古いsetup.exeは削除。
.gitignoreで「tjanken-*-setup.exe」を無視するように設定しなさい。
626:片山博文MZ ◆T6xkBnTXz7B0
16/01/17 13:21:21.93 .net
JankenGUIを自由に改良しなさい。1つ改良するたびにgit add, git commitしなさい。
改良に失敗したら「git checkout (ファイル名)」で1つ元に戻しなさい。
627:片山博文MZ ◆T6xkBnTXz7B0
16/01/17 15:28:59.15 .net
次はインストーラなしのパッケージを作ってみよう。
プログラムのインストールができない環境の利用者はインストーラが使えない。
だから、インストーラなしのプログラムもそれなりに需要がある。
628:片山博文MZ ◆T6xkBnTXz7B0
16/01/17 15:32:42.17 .net
次のような内容のバッチファイル「pack-bin.bat」を作れ。
set DIR=tjanken-bin
del /Q /S %DIR%
copy bin\Release\JankenGUI.exe %DIR%
copy ReadMe.txt %DIR%
copy License.txt %DIR%
pause
629:片山博文MZ ◆T6xkBnTXz7B0
16/01/17 15:39:39.09 .net
pack-bin.batをダブルクリックすると、tjanken-binフォルダが作成され、
必要なファイルがコピーされる。
このフォルダを右クリックして「送る」→「圧縮(zip形式)」を選ぶと、
このフォルダが圧縮されたzipファイルtjanken-bin.zipができる。
これの名前を変更し、tjanken-1.1-bin.zipにすると、
インストーラなしパッケージが完成する。
.gitignoreにzipファイルとtjanken-binフォルダを無視するように
「*.zip」「tjanken-bin」を設定しなさい。
630:仕様書無しさん
16/01/17 18:24:22.58 .net
たかし半角になっててワロタw
631:takasi
16/01/17 20:15:43.13 .net
おはようございます
21時から始めます
632:takasi
16/01/17 21:36:43.63 .net
>>628でpack-bin.batを作りダブルクリックしましたがフォルダは作られませんでした
代わりにtjanken-binというファイルが出来ました
フォルダのなりぞこないでしょうかこれは
633:片山博文MZ ◆T6xkBnTXz7B0
16/01/17 21:42:09.33 .net
>>632
delとcopyの間にmkdir %DIR%を忘れてた。
できたファイル消してやり直して。
634:takasi
16/01/17 21:47:26.64 .net
>>629まで完了しました
635:片山博文MZ ◆T6xkBnTXz7B0
16/01/17 21:52:43.25 .net
アプリが使用している.Net Frameworkのバージョンを確認せよ。
ReadMe.txtに作品名、作者名、動作環境を記せ。
配布するファイルのサイズを確認せよ。
ウイルスチェックを行え。
636:片山博文MZ ◆T6xkBnTXz7B0
16/01/17 22:04:29.96 .net
frameworkのバージョンはプロジェクトのプロパティから確認できる。
ファイルサイズはファイル右クリックのプロパティで確認できる。
637:takasi
16/01/17 22:12:09.22 .net
配布するファイルとはJankenGUI.exeの事でしょうか?
638:片山博文MZ ◆T6xkBnTXz7B0
16/01/17 22:15:47.64 .net
>>637
tjanken-1.1-setup.exe
と
tjanken-1.1-bin.zip
が配布するファイルだ。
前者がインストーラつきのプログラム、後者がインストーラなしのプログラムである。
639:片山博文MZ ◆T6xkBnTXz7B0
16/01/17 22:23:57.34 .net
どうした
640:takasi
16/01/17 22:27:06.97 .net
>>635
完了しました
641:片山博文MZ ◆T6xkBnTXz7B0
16/01/17 22:28:42.72 .net
pushしたら終わりだ。
青少年はもう寝る時間だ。
おやすみ。
642:片山博文MZ ◆T6xkBnTXz7B0
16/01/17 22:39:13.20 .net
?
643:takasi
16/01/17 22:41:45.79 .net
遅くてすみません
pushしましたURLリンク(github.com)
644:仕様書無しさん
16/01/17 23:51:15.01 .net
たかしのじゃんけんゲームやってみたがよく出来てる
頑張ってな
645:takasi
16/01/17 23:59:50.66 .net
ありがとうございます
ほとんど片山先生の作品なんですけどね・・・
最近勉強できていません
体の調子が悪くて・・・起きる時間も夜・・・ふぁああああああああ
646:takasi
16/01/18 00:02:00.04 .net
最近プログラミングの適性がないのではないかと悩んでいるお年ごろです
慣れでしょうか
647:仕様書無しさん
16/01/18 00:12:07.22 .net
無料ホームページ作成
URLリンク(freehp.ojaru.jp)
648:片山博文MZ ◆T6xkBnTXz7B0
16/01/18 12:14:59.18 .net
今度は、○×ゲームだ。
URLリンク(github.com)
こいつをForkして、適当なフォルダにcloneしてくれ。
dataフォルダに、画像と音声のデータがある。
画像はInkscapeで作成、音声は自分で録音した。
649:片山博文MZ ◆T6xkBnTXz7B0
16/01/18 12:19:22.23 .net
今回は、辞書(dictionary)を使っている。
一般に辞書というのは、単語から意味を調べる書物だね。
C#で辞書というのは、あるデータに他のデータを関連づけるデータ構造だ。
単語に相当するデータをキー(key)といい、
意味に相当するデータを値(value)という。
キーをintとし、値をMasuとする辞書の型は、Dictionary<int, Masu>と書く。
650:片山博文MZ ◆T6xkBnTXz7B0
16/01/18 12:58:34.33 .net
黒い線を表示するのにLabelを使った。
Labelの背景色を黒にし、AutoSizeをFalseにしてある。
それぞれのマスはPictureBoxになっている。
画像と音声のデータはすでにリソースとして追加した。
651:takasi
16/01/18 13:15:29.04 .net
おはようございます
今日も夜から始めると思います
652:片山博文MZ ◆T6xkBnTXz7B0
16/01/18 13:28:05.84 .net
データとUIの分離のために、盤を表すBoardというクラスを用意した。
Boardに空ではないマスを数えるカウント変数countを追加せよ。
盤の初期化のときにcountをゼロにせよ。
set_masuでcountを加算せよ。
653:片山博文MZ ◆T6xkBnTXz7B0
16/01/18 13:39:44.00 .net
Boardに次のような思考関数kangaeruを追加せよ。
int kangaeru(Masu comp) {
Masu anata;
compがマルならanataはバツ。
compがバツならanataはマル。
空マスが1つ、compが2つの並びがあれば、その空きマスの番号を返す。
anataがなく、compが1つ以上の並びがあれば、その空きマスの番号を返す。
空きマスをランダムに選び、その空きマスの番号を返す。
}
654:片山博文MZ ◆T6xkBnTXz7B0
16/01/18 13:44:57.25 .net
課題。○×ゲームを完成せよ。
プレイヤーはマル(先攻)、コンピュータはバツ(後攻)とする。
プレイヤーがマルをつけたら、タイマーで2秒待ち、
コンピュータがバツをつける。
待っている間は操作できないようにせよ。
655:takasi
16/01/18 18:00:48.51 .net
ちょっと今日は夜に出てこれないです!
完成したらプッシュすれば良いでしょうか
656:片山博文MZ ◆T6xkBnTXz7B0
16/01/18 18:16:25.10 .net
好きにしたまえ。
657:片山博文MZ ◆T6xkBnTXz7B0
16/01/18 18:20:32.09 .net
今日の勉強会は休みにします。
658:takasi
16/01/19 12:56:45.26 .net
おはようございます、課題ですがまだ終わっていません
朝からずっとコードとにらめっこしていたのですが
これらがどういう動きをしていてどう使うのかが理解できませんでした
前回のじゃんけんゲームの時もでしたが、課題の難易度に対して自分の能力が全く追い付いていないと強く感じました
このままでは分からない事がある度に片山先生の言葉ををただコピペするだけで
理解せずに無駄な時間を過ごしてしまうことになってしまいそうです。
僕は>>141で言いましたとおり、頭の出来がよくありません。理解するのに普通の人より時間がかかります
分からないことだらけの今、その度に片山先生に聞いていては先生にも僕にも負担になってしまうと思います
僕に今必要なのは基礎で、それを身につけることでやっと先生の授業にちゃんと付いていけるのではないかと思います
僕のためにプログラムを書いて頂いたり、画像や音声ファイル等も用意して頂いたり、色々教えて頂き片山先生には本当に感謝しています
GUIのアプリを作るのは楽しかったです
しかし、今のままでは辛いのでしばらく授業をお休みさせていただきます
初学者向けの本でしっかり勉強してから復帰したいと思います
応援してくださった方、片山先生、その他の先生方、本当にありがとうございました
またいつか戻ってきます、パワーアップしたたかしで・・・
659:片山博文MZ ◆T6xkBnTXz7B0
16/01/19 16:58:30.49 .net
ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]・2ch.net
スレリンク(tech板)
660:仕様書無しさん
16/01/19 21:48:06.50 .net
~ 完 ~
661:takesi
16/01/20 00:10:51.81 .net
では私のスレにしてよろしいでしょうか
662:片山博文MZ ◆T6xkBnTXz7B0
16/01/20 08:51:17.77 .net
OK
663:仕様書無しさん
16/01/20 09:11:11.90 .net
たかしニートプログラミング本出版までいけよw
664:takesi
16/01/20 13:31:22.23 .net
私はPythonを勉強中です
チュートリアルを読んで条件分岐くらいまではできるようになりました
機械学習に興味があります
先生ご指導よろしくお願いします
665:takesi
16/01/20 13:32:45.56 .net
まずは何をすればいいでしょうか
paizaでDランクは全部解けたレベルです
666:仕様書無しさん
16/01/21 00:04:58.89 .net
こんばんはたかしです、急にやめてすみませんでした
今後の予定ですが、職業訓練校に行くことになりました
入学選考試験が結構難しいので一ヶ月間がんばって勉強しなくてはなりません
頑張ります。たけしさんもがんばってください。
667:仕様書無しさん
16/01/22 00:38:53.36 .net
>>662
先生!!!
668:仕様書無しさん
16/01/22 01:20:09.58 .net
訓練校ならお金もらえながら勉強できてオイシイもんね
669:片山博文MZ ◆T6xkBnTXz7B0
16/01/22 04:46:25.53 .net
私はPythonのことはあまり知りません
670:takesi
16/01/22 13:41:45.47 .net
では、Javaはどうでしょうか
Androidアプリをつくるという目標もあります
671:takesi
16/01/23 00:23:40.54 .net
>>669
先生の得意な言語はなんでしょうか
672:仕様書無しさん
16/01/23 16:15:03.02 .net
∧_∧
( ゚ω゚ ) JAVAなら任せろー
バリバリC□l丶l丶
/ ( ) やめて!
(ノ ̄と、 i
しーJ
673:takesi
16/01/23 16:20:00.27 .net
>>672
本当ですか?Java教えてくださいませ
674:t.mourning ◆HeJleJP5y2
16/01/23 16:29:08.94 .net
しょうがないにゃあ…
まずPCの環境教えてね多分windowsかな
675:takesi
16/01/23 16:32:19.93 .net
>>674
ありがとうございます!
開発環境はeclipseです
676:takesi
16/01/23 16:32:40.38 .net
>>674
windowsPCです
677:t.mourning ◆HeJleJP5y2
16/01/23 16:35:56.08 .net
把握
大学でもらった教材使えるな
ちょい探してくる
今のスキルレベルは?
678:t.mourning ◆HeJleJP5y2
16/01/23 16:42:21.05 .net
ちくせうC++とLispのしか見当たんね
まあいいや
流れ
今のスキルの確認
↓
おさらいしながらJavaの基礎一通り
↓
CUI課題
↓
GUI(androidアプリケーション)
↓
Unity導入
こんな感じでおk?
679:takesi
16/01/23 16:47:06.78 .net
おkです
今のスキルレベルは条件分岐がなんとか使えるレベルで
オブジェクト指向は完全に理解していないくらいです
Unityはさわりだけやったことがあります
680:t.mourning ◆HeJleJP5y2
16/01/23 16:50:33.63 .net
まず環境整備しよか
Github知っとる?
Gitやsubversion、CVSとかバージョン管理ソフトでもいいけど。
第一目標:Githubユーザー作ってソース共有できるようにする
681:takesi
16/01/23 16:52:13.27 .net
Github聞いたことがあります
ググってみます
682:t.mourning ◆HeJleJP5y2
16/01/23 16:55:44.75 .net
んじゃ毎回質問は
質問:~~~
と書くから答えるなり調べるなりしてね
答え大体既存の解説サイトのURL下に貼るから答えがわかったらまずそっち見てね。
したらわかんないとこあるだろうから質問タイム
の流れで。
同様に
課題:~~~
とかやるからその辺は臨機応変によろ
683:takesi
16/01/23 16:56:40.06 .net
分かりました!
684:takesi
16/01/23 16:57:21.48 .net
Githubのアカウント作りました
685:t.mourning ◆HeJleJP5y2
16/01/23 17:03:43.38 .net
バージョン管理とは
複数人で同じものを編集する(wikiなんかをイメージしてね)時に
編集が衝突(同時に同じ個所を編集しようとすること)したときに
整合性を保ったり
昔の履歴を見たいといったときに対応するためだったりのために管理すること
バージョン管理ソフトとは
そのためのソフトウェア
いろいろ実現方法の違いでソフトウェアが違う。
今有名なのはGitやsubversion
Gitとは
バージョン管理ソフト
こまけぇことはいいんだよ
Githubとは
Gitでファイル保存してくれるファイルサーバーとか思っとけばいいよ
686:takesi
16/01/23 17:10:03.93 .net
なるほど
Gihubは英語ばかりで使うのが難しいです
なんせ中学生レベルの英語しかわからないもので
687:t.mourning ◆HeJleJP5y2
16/01/23 17:13:15.24 .net
最初のうちしかサイトは見ないからがんがれ
↓にリポジトリ(ファイルのひとまとまりになったディレクトリみたいなもん)作った
URLリンク(github.com)
まずアクセスしてみて
688:takesi
16/01/23 17:15:07.04 .net
アクセスしました
…どうすればいいのでしょうか?
689:t.mourning ◆HeJleJP5y2
16/01/23 17:17:53.97 .net
右側にDownload ZIPってあるはず
そこでファイルをダウンロード
→解凍してhello.batをダブルクリック(怖かったらしないほうがいいバッチファイルわかんないだろうし)
なんにせよこれでファイルを共有できることを感じてもらえればおk
690:takesi
16/01/23 17:20:28.26 .net
できました
少し感動
691:t.mourning ◆HeJleJP5y2
16/01/23 17:23:11.40 .net
じゃあそれをeclipseでできるようにします。
課題:「eclipse github」などで検索しeclipseでgithubにアクセスする方法を調べよ
調べるまででおk
多分どっかで詰まるからやるのは一緒に
692:takesi
16/01/23 17:25:29.62 .net
調べて概要は理解しました
693:t.mourning ◆HeJleJP5y2
16/01/23 17:28:24.11 .net
eclipseを開きます
バージョンを確認してね
起動画面にheliosとかjunoとか書いてあるから
したら↓参照
URLリンク(rough-and-ready-co-jp.blogspot.jp)
694:takesi
16/01/23 17:35:17.34 .net
EGitというのが見つからないのですが
Eclipse Github 統合(タスク・フォーカス・インターフェース)
というのをインストールすればよいのでしょうか?
バージョンはMarsでづ
695:t.mourning ◆HeJleJP5y2
16/01/23 17:47:45.25 .net
作業対象に入れたURL教えて
696:takesi
16/01/23 17:51:24.67 .net
Mars - URLリンク(download.eclipse.org)
697:t.mourning ◆HeJleJP5y2
16/01/23 17:56:06.84 .net
重すぎ…
多分
Eclipse Gitチームプロバイダー
無印のやつ
698:takesi
16/01/23 18:00:40.17 .net
分かりました
インストールします
699:takesi
16/01/23 18:06:29.46 .net
コミットするというのがよく分かりません
ファイルを選択してもコミットボタンが押せません
どこかで誤ったのでしょうか
700:t.mourning ◆HeJleJP5y2
16/01/23 18:13:08.10 .net
コミットはちょい待って今環境整備中
701:t.mourning ◆HeJleJP5y2
16/01/23 18:17:01.55 .net
今から秘密鍵送る
捨てアド作ってさらして
702:t.mourning ◆HeJleJP5y2
16/01/23 18:20:15.57 .net
コミットとは
自分が更新・追加したのをGitに伝えること
これ更新したからって宣言するようなこと
プッシュとは
コミットした差分をリモートに送ること
ファイルサーバーにアップロードするようなこと
チェックアウトとは
リモートのファイルを持ってくること
ダウンロードと思えばいい
今はチェックアウトしかできないはず
703:仕様書無しさん
16/01/23 18:26:23.42 .net
wuzhaiteng3@gmail.com
秘密鍵とは何に使うのですか?
704:takesi
16/01/23 18:27:19.46 .net
つまり今はコミットしなくていいってことですね
705:t.mourning ◆HeJleJP5y2
16/01/23 18:32:22.39 .net
課題にしよか
課題:暗号を送る方法
例えば手紙をある人に送るが途中で覗き見られても
中身がばれないようにする
を一つ考えよ
706:takesi
16/01/23 18:36:58.49 .net
共通の決まりを作っておいて暗号化してそれを送る
707:t.mourning ◆HeJleJP5y2
16/01/23 18:37:12.31 .net
秘密鍵とは
秘密鍵暗号方式の共通キーもしくは
公開鍵暗号方式のペアキーのうち受信側が持つ鍵
公開鍵暗号とは
ある文章を二つのペアーの鍵によって安全に送信する方法のひとつ
1.受信者は公開鍵と秘密鍵のペアを作る
2.公開鍵を文字通り公開する
3.文章の送信者は公開鍵を用いて暗号を作る
4.暗号を送信する
5.受信者は秘密鍵を用いて暗号を複合(解読)する
このとき公開鍵では暗号を作れるが複合はできない
秘密鍵は複合できる
ということが保証されている
細かい原理は省略
708:t.mourning ◆HeJleJP5y2
16/01/23 18:40:01.85 .net
その答えは秘密鍵(共通鍵)暗号方式やね
今回使うのは↑の公開鍵暗号
URLリンク(qiita.com)
参照
709:takesi
16/01/23 18:40:04.52 .net
なるほど
どうやって使うのですか?
710:takesi
16/01/23 18:40:37.00 .net
理解しました
711:t.mourning ◆HeJleJP5y2
16/01/23 18:47:04.95 .net
秘密鍵の設定
eclipseの
ウィンドウ→設定を押す
一般→ネットワーク接続→SSH2を選択する
一般タブの秘密鍵に今送った秘密鍵を設定する
Gitリポジトリの設定
ウィンドウ→パースペクティブを開く→その他を選択する
Gitリポジトリ・エクスプローラーを選択する
Gitリポジトリの「複製」を選ぶ
URIを選ぶ(ここら辺違うかも)
URIに「git@github.com:tamochu/neet1programming.git」を入力(コピペでおk)
プロトコルにsshを選ぶ
次へを選ぶ
712:takesi
16/01/23 19:00:42.05 .net
途中でよく分からないメッセージが出てきましたが
多分出来たと思います
713:t.mourning ◆HeJleJP5y2
16/01/23 19:08:25.61 .net
eclipseのJavaパースペクティブで
neet1programmingプロジェクトが表示されていれば成功
プロジェクトを右クリックして
チーム→プル
Exam1.javaが出てくると思う
そこに
課題:1~100を足すプログラムを書きなさい
714:t.mourning ◆HeJleJP5y2
16/01/23 19:16:03.07 .net
できたらお待ちかねのコミット→プッシュ
といってもプルと同じように
チーム→コミット
を押して更新のあるファイルを選択したら
「Commit and push」を選ぶだけ
715:takesi
16/01/23 19:19:42.71 .net
Javaパースペクティブとはどこでしょうか
これは成功しているのでしょうか
スマホからなので直撮りですみません
URLリンク(i.imgur.com)
716:t.mourning ◆HeJleJP5y2
16/01/23 19:23:13.47 .net
あ、チェックアウトしてないや
Gitリポジトリのneet1programmingを右クリック
プルを選択
いろいろ聞かれるけど次へか完了でおk
717:仕様書無しさん
16/01/23 19:29:07.16 .net
完了しました
変化はありません
どうすればいいのでしょうか
718:t.mourning ◆HeJleJP5y2
16/01/23 19:29:20.48 .net
もしくはインポートしてないって可能性もあるか
Gitリポジトリのneet1programmingを展開
作業ディレクトリを右クリック
プロジェクトのインポート既存のプロジェクトのインポートを選んで次へ
neet1programmingをチェックして完了
719:仕様書無しさん
16/01/23 19:36:31.53 .net
できました
720:t.mourning ◆HeJleJP5y2
16/01/23 19:37:04.63 .net
どこまでー?
721:takesi
16/01/23 19:42:07.60 .net
Exam1,2 を出すまでできました
今から課題に取り掛かります
722:t.mourning ◆HeJleJP5y2
16/01/23 19:44:45.11 .net
ガンバ
もうすぐ飯落ち
課題作っとくからいない間気が向いたら解いてね
723:takesi
16/01/23 19:47:44.85 .net
久々にJAVAで書いたので思ったよりてこずりました
今からコミットします
724:takesi
16/01/23 19:49:38.41 .net
あれ?コミットできません
コミットボタンが押せない状態です
725:t.mourning ◆HeJleJP5y2
16/01/23 20:05:54.65 .net
コミットメッセージを入力する
726:takesi
16/01/23 20:18:14.88 .net
できました
727:takesi
16/01/23 20:33:02.01 .net
Exam2も完了しました
728:t.mourning ◆HeJleJP5y2
16/01/23 20:53:35.93 .net
戻りました
プッシュできてないっぽいかな
プロジェクトを右クリック
チーム→アップストリームへプッシュ
729:takesi
16/01/23 20:56:31.15 .net
やってみました
どうでしょうか
730:takesi
16/01/23 21:02:43.99 .net
新しいExamをEclipseに取り入れるにはどうすればいいのでしょうか?
731:t.mourning ◆HeJleJP5y2
16/01/23 21:03:57.35 .net
うーん来ない
TeamViewerで画面見せてもらていい?
732:t.mourning ◆HeJleJP5y2
16/01/23 21:05:35.97 .net
取り込みはプル
733:takesi
16/01/23 21:11:45.17 .net
了解しました
TeamViewerはちょっと…すみません
734:takesi
16/01/23 21:12:31.88 .net
よく分からなくて怖いんで
735:t.mourning ◆HeJleJP5y2
16/01/23 21:16:17.58 .net
じゃあ問診で行こう
コミットもう一度できる?
736:takesi
16/01/23 21:17:08.04 .net
できません
737:t.mourning ◆HeJleJP5y2
16/01/23 21:21:13.76 .net
じゃあコミットはちゃんとできてるな
アップストリームにプッシュはもう一度できる?
738:takesi
16/01/23 21:22:44.05 .net
やってみました
739:t.mourning ◆HeJleJP5y2
16/01/23 21:25:43.12 .net
エラーメッセージとか出た?
740:takesi
16/01/23 21:33:30.13 .net
こんなのが出てOK押してもなんともなりません
URLリンク(i.imgur.com)
741:t.mourning ◆HeJleJP5y2
16/01/23 21:35:22.82 .net
ああ、それ出てんのか
対処法忘れたからちょい待ってね
742:t.mourning ◆HeJleJP5y2
16/01/23 21:38:31.49 .net
プロジェクトを右クリック
チーム→アップストリームからフェッチしてみて
そしたら
チーム→ワークスペース同期化
出てきた画面で全部のファイル選んで右クリック
マージ済みとしてマーク
終わったらもっかいプッシュ
743:t.mourning ◆HeJleJP5y2
16/01/23 21:39:38.58 .net
ワークスペース同期化の前に
チーム→マージ
忘れてた
744:takesi
16/01/23 21:42:28.46 .net
ここからどうすればいいのでしょうか
URLリンク(i.imgur.com)
745:t.mourning ◆HeJleJP5y2
16/01/23 21:44:39.16 .net
何もフェッチできないんだったら
今度は
チーム→リベース
746:takesi
16/01/23 21:50:13.14 .net
下の項目2つともにチェックを入れればいいんですか?
747:takesi
16/01/23 21:51:43.52 .net
うーん…よく分かりません
748:t.mourning ◆HeJleJP5y2
16/01/23 21:52:34.16 .net
チェック?入れると来ないと思うが
しいて言うならリモートトラッキングのorigin/master
749:t.mourning ◆HeJleJP5y2
16/01/23 21:53:11.24 .net
×と来ない
○所ない
750:takesi
16/01/23 21:57:56.98 .net
こんな画面です
URLリンク(i.imgur.com)
751:t.mourning ◆HeJleJP5y2
16/01/23 22:04:43.11 .net
URLリンク(imgur.com)
752:takesi
16/01/23 22:06:10.16 .net
その通りになりません
753:takesi
16/01/23 22:07:21.59 .net
リベース結果
HEADはすでに最新の状態のためリベースは何もしませんでした
と出ます
754:t.mourning ◆HeJleJP5y2
16/01/23 22:08:41.92 .net
どっちもチェック入れないでやってみて
755:takesi
16/01/23 22:10:23.36 .net
そうすると>>753になります
756:t.mourning ◆HeJleJP5y2
16/01/23 22:11:31.49 .net
よしもっかいチェックアウトからやり直したほうがいいな
問題解いたファイルをどっかにコピーしといて
プロジェクトを右クリック→削除
Gitリポジトリ・エクスプローラーで右クリック→リポジトリの削除
終わったらもっかいGitの複製→インポート
その後コピーしといたファイルで上書きしてコミット→プッシュ
757:takesi
16/01/23 22:16:28.78 .net
やってみても以前と同じ状態になってコミットできません
758:t.mourning ◆HeJleJP5y2
16/01/23 22:23:26.30 .net
削除の時に出るチェックボックスチェックつけてもっかいお願い
759:takesi
16/01/23 22:26:55.43 .net
全てにチェック入れても再び行うと元の状態に戻っています
760:t.mourning ◆HeJleJP5y2
16/01/23 22:36:25.51 .net
チーム→切断
チーム→プロジェクトの共有
Git
URLリンク(imgur.com)
761:takesi
16/01/23 22:39:26.70 .net
やりました
次にどうすればいいのでしょうか
762:t.mourning ◆HeJleJP5y2
16/01/23 22:40:17.85 .net
またコミット→プッシュしてみて
763:takesi
16/01/23 22:41:20.53 .net
…(;´Д`)ウウッ…
できません
764:takesi
16/01/23 22:46:42.65 .net
teamviewer使ってみます
ID送ります
765:t.mourning ◆HeJleJP5y2
16/01/23 22:49:23.02 .net
プロジェクトを右クリック
プロパティでプロジェクトの置き場所確認してください
766:takesi
16/01/23 22:52:52.47 .net
送りました
操作できますか?
767:takesi
16/01/23 23:01:01.71 .net
これからの変更はコミットすれば届くのでしょうか
768:t.mourning ◆HeJleJP5y2
16/01/23 23:01:32.77 .net
できましたね
さっき行った操作のおさらい
マージとは
同じファイルを編集してしまった場合あとからプッシュする人が
何が二人の更新を合わせたうえで正しいか判断する必要がある
その作業をマージという
gitでは衝突(まったく同じ個所を編集)していなければ大体勝手にマージしてくれる
769:t.mourning ◆HeJleJP5y2
16/01/23 23:03:21.86 .net
そうです
またnon-fast-forwardと出たら
1.プルして再度コミット→プッシュ
2.フェッチしてマージして再度コミット→プッシュ
が原則です
770:takesi
16/01/23 23:05:45.39 .net
分かりました!
とりあえずGithubでファイルが共有できるまでになりました
自分で課題を進めていきます
今日はありがとうございました
771:takesi
16/01/23 23:07:06.59 .net
私は学生で受験生なので低浮上になるかもしれませんがよろしくお願いします
3月中頃から春休みで本格的に勉強ができますが、それまでもできるだけ毎日顔を出したいと思います
772:t.mourning ◆HeJleJP5y2
16/01/23 23:07:49.55 .net
乙です
次の課題用意+講義内容まとめときます
わかんないとこあったらカキコよろです
773:takesi
16/01/23 23:13:32.30 .net
わざわざありがとうございます
期待に沿えるよう頑張ります
774:takesi
16/01/24 13:30:33.40 .net
おはようございます
課題に取り組みます
特に配列の理解が甘いみたいなのでググりながら解いていきます
775:takesi
16/01/24 14:34:23.47 .net
Exam4,7以外は終了しました
コミット完了です
776:takesi
16/01/24 17:10:58.24 .net
いま確認したらコミットできてませんでした
なぜだろう
777:takesi
16/01/24 17:16:19.68 .net
昨日のことを思い出しながら闇雲にボタン触ってたら出来ました
こんなんでいいのやら
778:t.mourning ◆HeJleJP5y2
16/01/24 17:45:37.57 .net
うごきゃあいいんだよ
779:takesi
16/01/24 18:15:09.77 .net
Exam4,7は分かりません
他の問題もググりながら解きました
難しいですね
780:t.mourning ◆HeJleJP5y2
16/01/24 19:48:15.04 .net
じゃあ4,7のヒント出す
4
「abcdefghijklmnopqrstuvwxyz .,-」
をcharの配列で持つ
charを渡してその配列の何番目の文字(int)か調べる(関数化するとよい)
暗号の文字列を上の処理を使ってintの配列に直す
その配列すべてに同じ数xを足す
30(文字の種類数)を超えたものは30を引く
intの配列をまたcharの配列に戻す
charの配列中に「person」の並びがあるか調べる
並びがあればその並びが正解
このような数xを探す
7
たらいまわし関数とは
まずxとyを比較し
yのほうが大きければ
return y;
そうでなければ
int newX = tarai(x-1, y, z);
int newY = tarai(y-1, z, x);
int newZ = tarai(z-1, x, y);
return tarai(newX, newY, newZ);
する関数。
781:t.mourning ◆HeJleJP5y2
16/01/24 19:56:30.87 .net
今日はどれやりたい?
関数について
オブジェクト指向について
パッケージとアクセス修飾子について
782:takesi
16/01/24 20:17:01.44 .net
オブジェクト指向についてお願いします
783:t.mourning ◆HeJleJP5y2
16/01/24 20:32:16.57 .net
把握
関数については知ってるものとしてやるよー
オブジェクト指向とは
URLリンク(nobuo-create.net)
よく言われるのはものを基準にプログラミングを考えるということ
生徒というオブジェクトを考える
生徒には名前と学年という情報(もっとあるがここでは省略)がある
3人の生徒
takesi:1年生
John:2年生
Suzuki:3年生
がいた場合
オブジェクト指向を使わないでこの情報を持つとしたら
String[] names = new String[]{"takesi", "John", "Suzuki"};
int[] grades = {1, 2, 3};
とかやるわけだが、一人の情報は一人の情報でまとめて持っておきたい
そのためJavaではクラスというものを使ってオブジェクトを作る
その場合以下のようになる
class Student {
String name;
int grade;
};
Student students = new Student[3];
Student takesi = new Student;
takesi.name = "takesi";
takesi.grade = 1;
students[0] = takesi;
…以下略
784:t.mourning ◆HeJleJP5y2
16/01/24 20:39:19.09 .net
この一つのオブジェクトに属する情報は一つのオブジェクトに持たせる
というのがカプセル化とか呼ばれるオブジェクト指向に必要な要素を実現させる
カプセル化とは
学年ではなく中身では生年月日とかで情報を持っているけど
その情報は教えずに何学年かという情報だけ教えたいということがある
このとき外部から不必要な情報(今の例では生年月日)は直接アクセスできず
アクセスが許可されている情報(今の例では学年)にのみアクセスできると
情報の安全性を保つことができる
このように情報を内部に持つこと(および外部からアクセスできる情報とできない情報を管理すること)
をカプセル化という
今回は学年と年齢という情報がカプセル化されたことになる
785:takesi
16/01/24 20:43:43.29 .net
関数は概要は理解していますが
Pythonで理解したのでコードはかけません
そこは自習します
786:t.mourning ◆HeJleJP5y2
16/01/24 20:46:55.26 .net
今クラスの中には名前と学年の変数(情報)がある
生徒というオブジェクトには名前を名乗るというメソッド(行動)が可能であるとしよう
その場合
class Student {
String name;
int grade;
String getName() {
return "My name is " + name;
}
}
などとしてやれば生徒オブジェクトに自己紹介をさせることが可能になる
このようにカプセル化では変数だけではなく関数も内部に持たせることができる
あ、あとでまとめてStudentクラスコミットするから細かいとこ気にしなくていいよ
787:t.mourning ◆HeJleJP5y2
16/01/24 20:53:04.61 .net
以上のように情報を持ち行動が規定されているものをプログラミングでは
カプセル化されたオブジェクトという
課題:Studentクラスを参考にしながらTeacherクラスを作成せよ
ただしTeacherクラスは名前と担当教科の情報を持ち
授業の最初に挨拶「おはようございます。(教科名)の授業を始めます」する行動
ができるものとする
788:t.mourning ◆HeJleJP5y2
16/01/24 21:01:51.47 .net
コミットした
プルしてね
789:takesi
16/01/24 21:22:43.18 .net
コミットしました
書経のような感じでしたが
理解できるように考えながらコードを書きました
790:t.mourning ◆HeJleJP5y2
16/01/24 21:25:44.45 .net
いい感じ
続いて
課題:Teacherクラスにも自己紹介「My name is ~~~」するメソッドを追加せよ
791:t.mourning ◆HeJleJP5y2
16/01/24 21:32:11.02 .net
やってる間に次の話題書いとく
ここでTeacherクラスにもStudentクラスにも
name変数
が存在し、
getName関数
が全く同じ内容で存在することに気付く
これは何度も書くのは無駄無駄無駄ァ
これはなぜか考えると
生徒も教師も人である
人だから名前を持っている
また自己紹介もする
ということは生徒も教師も
name変数
を持ち
getName関数
を持つHumanクラスという風に考えられる
Javaではこれを
class Human {
String name;
String getName() {
return "My name is "name;
}
}
class Student extends Human {
…
}
のようにする
これを継承という
792:t.mourning ◆HeJleJP5y2
16/01/24 21:37:04.19 .net
継承とは
基本となるクラス(基底クラス・親クラス)から
それらの要素を引き継いだ新しいクラス(派生クラス・子クラス)
を作ること
派生クラスでは基底クラスのメソッド以外に派生クラスで独自に追加した
変数やメソッドを利用できる
また基本となるクラスには(基本的に)制限はなく
派生クラスの派生クラスといったものも作れる
793:takesi
16/01/24 21:39:40.63 .net
>>769の通りにしているはずがコミットできません
794:t.mourning ◆HeJleJP5y2
16/01/24 21:43:37.56 .net
ウボァ
プルした?
そのあとアップストリームへプッシュした?
795:takesi
16/01/24 21:45:55.85 .net
アップストリームにプッシュすると
non-fast-forward
と出てきます
796:t.mourning ◆HeJleJP5y2
16/01/24 21:48:17.04 .net
うーん
マージは?
797:takesi
16/01/24 21:49:39.92 .net
マージすると
結果 失敗
とでます
798:t.mourning ◆HeJleJP5y2
16/01/24 21:51:26.62 .net
じゃあリベースは?
799:takesi
16/01/24 21:56:40.77 .net
いじってたらしばらくして
HEAD はすでに最新の状態のためリベースは何もしませんでした
と出ました
800:takesi
16/01/24 21:57:58.93 .net
いきました!
リベースのリセット?のあとプッシュでいけました
801:t.mourning ◆HeJleJP5y2
16/01/24 21:59:14.89 .net
あ、きたね
じゃあ続き
Humanのクラスコミットすんね
802:t.mourning ◆HeJleJP5y2
16/01/24 22:06:13.73 .net
pullよろ
Humanクラスについてもう一つ考えてみよう
人間には性別というものがある
そこで
課題:Humanクラスにgender(性別)メンバー(変数)を追加し
それを設定する関数setGenderと取得する関数getGenderを追加せよ
その後Studentクラスの自己紹介でgetGenderせよ
803:takesi
16/01/24 22:09:37.55 .net
うーむ、難しい
時間がかかりそなので宿題ということで考えておきます
804:takesi
16/01/24 22:12:00.79 .net
>>771の通り学業が忙しため平日はあまり時間が取れません
受験が終われば時間が取れるようになるのですが…
805:t.mourning ◆HeJleJP5y2
16/01/24 22:14:06.78 .net
了解
次はオブジェクト指向の続きからね
流れ
継承
↓
多態性(オーバーロードおよびオーバーライド)
↓
継承その2(仮想関数)
↓
テンプレートクラス
↓
アクセス修飾子
それとは別に演習作っとく
806:t.mourning ◆HeJleJP5y2
16/01/24 22:14:55.55 .net
ゆっくりで構わんよ
っていうか自分も平日疲れてすぐ寝るからそのほうがありがたい
807:仕様書無しさん
16/01/24 22:55:35.64 .net
なにこのスレすごい
あとで読み返してみる
808:仕様書無しさん
16/01/25 01:05:24.47 .net
String[] names = new String[]{"takesi", "John", "Suzuki"};
int[] grades = {1, 2, 3};
のほうがはるかに合理的 データ0番、1番、2番って番号で管理できる
Suzukiが5人いたとしても番号が一意で分かれているから混同もしない
人間クラスから派生して生徒、教師ってのも変 役割が根本的に違うのだからそれぞれ別でいい
学校クラスがないのも変だな~ 学校クラスにそれぞれの生徒と教師がメンバとしているはずだ
809:takesi
16/01/25 02:04:03.82 .net
眠れないので課題やってみました
全く分かりません
どこからの知識が抜けてるのやら
Teacherクラスをコピペ改変したようなコードしか書けませんでした
810:takesi
16/01/25 02:09:44.46 .net
どこを勉強すればいいのでしょうか
今日はまとまった時間が取れそうなので勉強します
811:t.mourning ◆HeJleJP5y2
16/01/25 22:04:30.90 .net
あれで問題ない
最初はまねて
次は少し変えてみて
最後に自分で書けるようになればいい
Exam4穴埋め式にした
何か好きなパズルとかある?それ題材にする
812:takesi
16/01/25 22:08:34.00 .net
あれでいいんですか?!自身なかった
自分で書けるのか不安だったけど安心しました
あんまりパズルはしませんが…
クロスワードはやったことあります
813:t.mourning ◆HeJleJP5y2
16/01/25 22:09:29.88 .net
クロスワードはちょっと向かないなぁ
数独とかカックロとか数字しか使わない系で
814:takesi
16/01/25 22:14:32.67 .net
数独はやったことあります
815:takesi
16/01/25 22:28:17.49 .net
Exam4難しい‥
ちんぷんかんぷんです
816:t.mourning ◆HeJleJP5y2
16/01/25 22:31:44.49 .net
じゃあオーソドックスに数独にしとこうか
平日は演習問題の形でコミットするからそれとくような感じで
休日が昨日みたいな感じで
最初は強く当たって後は流れで
817:takesi
16/01/25 22:37:43.22 .net
了解しました
818:takesi
16/01/25 22:47:49.69 .net
Exam4は分かりません
どこか復習が必要でしょうか
819:t.mourning ◆HeJleJP5y2
16/01/25 23:00:28.78 .net
じゃあそれは飛ばして答えコミットする
土曜はそれの解説からね
820:t.mourning ◆HeJleJP5y2
16/01/25 23:01:26.95 .net
できたとこまででいいからコミットしてくれたらヒント書いて返す
821:takesi
16/01/25 23:09:04.26 .net
全く手を付けられませんでした
822:仕様書無しさん
16/01/26 09:52:55.08 .net
すみません
C言語ができれば
ずっと食べていけますかね?
android からwindows のソフトまで作れますよね???
823:仕様書無しさん
16/01/28 20:55:55.34 .net
なにこれ、本気で教育が始まってるの?
824:takesi
16/01/30 19:17:22.28 .net
受験との両立をしようと思っていたのですが
学校も忙しくなり受験も追い込み時期になったことで余裕がなくなってしまいました
3月12日から再開させてもらってもよろしいでしょうか
825:t.mourning ◆HeJleJP5y2
16/01/30 21:08:54.99 .net
ええよ
スレなくなってたら建ててな
826:takesi ◆5LQe9dJ7ck
16/01/30 21:24:27.65 .net
ありがとうございます
3月12日にもどってきます
トリップつけときます
827:仕様書無しさん
16/01/31 08:57:35.56 .net
>>208
ベクターとかストアに作品のせれば経験になりますか?
828:takesi ◆5LQe9dJ7ck
16/03/12 07:28:09.90 .net
おはようございます
今日から再開お願いします
課題に手を付けます
829:仕様書無しさん
16/03/12 11:53:24.79 .net
>>828
まずは空白期間に身に付けたスキルを洗い流したまえ
830:takesi ◆5LQe9dJ7ck
16/03/12 14:32:39.08 .net
>>829
Unityの基本操作とC#を少々
受験が忙しくてあまり手を付けてません
831:t.mourning ◆HeJleJP5y2
16/03/12 15:38:19.90 .net
再開すんよ
まずExam4の解説からでおk?
832:takesi ◆5LQe9dJ7ck
16/03/12 16:32:09.63 .net
はい、お願いします
Exam10も分かりそうにないです
11、12は今から取り組みます
833:t.mourning ◆HeJleJP5y2
16/03/13 00:22:17.64 .net
ホワイトデーのお返し作ってて遅れた
exam4から
問
シーザー暗号を解きなさい
まず手で解いてみる
一文字ずつずらしていき中に「person」があれば答え
プログラムで解釈する
1.文字列をn文字ずらす
2.中にpersonが含まれるか調べる
3.含まれていればそれを表示して終了、含まれていなければnに1足して1からやり直し
もう少しプログラムっぽく
for (int n = 0; n < 文字の種類数; n++) {
String text = n文字ずらした暗号;
if (textに「person」が含まれていたら) {
system.out.println(text);
break;
}
}
これを実装していくことになる
834:t.mourning ◆HeJleJP5y2
16/03/13 00:32:35.66 .net
・文字の種類数
まず文字のchar配列を作っておく
そうすることでずらす処理や文字種数を取得するのに便利になる
static final char[] chars = {
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' ','.',',','-'
};
そうしたうえで配列の要素数はlengthで取得する
つまり
chars.length
・n文字ずらした暗号
文字列を文字ごとに分解して分解した文字をn文字をずらす
もともと暗号文はcharの配列であるので暗号文に対してforで一つずつアクセスし
n文字ずらした文字を取得すればよい
この最中するのが文字種数30より大きくなったaに戻ることを考慮すること
これは30で割ったあまりとすれば解決できる
・textに「person」が含まれていたら
StringにはindexOfというメソッドがありそれによって文字列が含まれているかどうかを調べることができる
indexOfで文字列が含まれていない場合は返り値は-1になる
835:t.mourning ◆HeJleJP5y2
16/03/13 00:39:43.32 .net
Exam10ヒント
数列の状態は
int[9][9]の配列で持とうExam8参照
まずは枠線なしで数字のまま出力することを目標にする
その後0だったら0でなくスペースを表示するように変更する
最後に枠線を表示する
上と下の枠線は固定で構わない
左右の枠線は数字を表示する前と後に「|」を表示すればよい
表示する関数は
System.out.println()
と
System.out.print()
だ
上は出力したら改行も出力され
下は改行は出力されない
使い分けよう
836:takesi ◆5LQe9dJ7ck
16/03/13 06:51:26.23 .net
すみません昨日は私用で全く課題ができませんでした
今日も19時まで予定があるのでそれ以降に取り組みます
空いた時間に解説理解しておきます
837:t.mourning ◆HeJleJP5y2
16/03/13 20:01:30.22 .net
こっちも今体空いた
次の課題とか用意しとく
終わり次第多態性についてやるよ
838:t.mourning ◆HeJleJP5y2
16/03/13 20:40:52.29 .net
課題1個追加した
プル忘れないでね
多態性についてやるから適当なところで切り付けて
839:takesi ◆5LQe9dJ7ck
16/03/13 20:47:28.57 .net
今やっと私用が終わりました
今から取り組みます
840:仕様書無しさん
16/03/13 20:59:23.27 .net
同じような境遇のものとして応援してます
頑張って
841:takesi ◆5LQe9dJ7ck
16/03/13 21:28:43.66 .net
最近の課題は僕には解けないものが多いのですが、基本がなってないのでしょうか?
やり方は分かるのですがコードに置き換えられません
今日は次の説明をお願いします
明日じっくり課題をやります
842:t.mourning ◆HeJleJP5y2
16/03/13 21:55:33.42 .net
単純に慣れの問題じゃないかな
写経量が少ない
今は調べてパクるだけでいい
そのうちここ変えたらどうなるかなって思ったら
実際やってみて違いを調べたりしてみるとよさげ
じゃあ多態性について
オブジェクト指向の重要な要素の一つ多態性(ポリモーフィズム)
URLリンク(www.nulab.co.jp)
多態性とは
別のオブジェクトに対し同じ関数を定義したいことがある
例えば生徒と教室の二つのオブジェクトがあるとする
この二つは共通の親クラスを持っているわけではない
しかし、両方とも名前(String name)を持っており
名前を取得する共通の関数(getName)を作りたいと思っているとする
この際引数として渡されるオブジェクトによって挙動を変える関数が作ることができる
これを多態性という。
Javaにはオーバーライドとオーバーロードという二つの多態性の実現方法がある。
オーバーライド:二つのオブジェクトが親子(継承の親子)関係にある時親クラスで定義されたものを子クラスで再定義すること
例)HumanクラスとProfessorクラス
class Human {
String name;
String getName() {
return name;
}
}
class Professor extends Human {
String getName() {
return "Prof."+name;
}
}
843:t.mourning ◆HeJleJP5y2
16/03/13 22:04:25.17 .net
オーバーロード:二つのオブジェクトがどのような関係であろうとかまわないが、
同じ関数の引数として違うオブジェクトを渡した際に違う挙動を定義すること
例)ClassRoomクラスとStudentクラス
String getName(ClassRoom classRoom) {
return classRoom.name + " class";
}
String getName(Student student) {
return "student:" + student;
}
以上からわかるように
オーバーライドはメンバー関数のみ
オーバーロードはどのような関数でもできるといった違いがある
今はそのようなものがあると知っておくだけでおk
気づかないうちに使ってて、あとからこれが多態性だったのかってなると思う
844:t.mourning ◆HeJleJP5y2
16/03/13 22:17:48.08 .net
習うより慣れろ
課題:Humanクラスで実装されているメンバー関数getNameをStudentクラスでオーバーライドせよ
その再表示する内容は
My name is ~~~
↓
I'm ~~~
にせよ
課題:PrintUtilクラスを作成せよ
PrintUtilクラスには以下の二つのオーバーロードした関数を作成せよ
public static void printName(Human x) {
//ここに表示処理を書く
}
public static void printName(Teacher x) {
//ここに表示処理を書く
}
Humanを渡した関数はnameを表示(System.out.printlnするだけ)
Teacherを渡した関数はnameの前に「Mr.」をつけて表示せよ
その後
Student student = new Student();
student.name = "takesi";
PrintUtil.printName(student);
としてどのように表示されるか確認しその理由を考えよ
845:仕様書無しさん
16/03/14 08:39:59.84 .net
良スレage
846:仕様書無しさん
16/03/14 11:07:56.73 .net
FJネクスト エフ・ジェー・ネクスト 迷惑勧誘電話7 [無断転載禁止]・2ch.net
スレリンク(estate板)
847:takasi
16/03/14 20:24:33.70 .net
お久しぶりです
職業訓練校のプログラミングコースに合格したので4月から通うことになりました
たけしくん、お互いがんばりましょう
848:仕様書無しさん
16/03/14 20:50:44.53 .net
あげ
849:takesi ◆5LQe9dJ7ck
16/03/14 21:21:45.84 .net
今日も忙しくてできませんでした
疲れたので寝ます
明日で卒業なのでこれからはちゃんと時間が取れるようになります
何度もすみません
850:仕様書無しさん
16/03/15 18:05:56.72 .net
>>847
職業訓練通ってたが明らかに君はそのレベルを超えてるね
多分javaでweb系のアプリ作ったり、androidアプリ作ったりすると思うけど
プログラムなんか言語が違くてもだいたいやることは一緒だからjavaもずっと出来るのかな
まあお金ももらえるし、プログラムだけじゃなくてインターネットの仕組みやらコンピュータの仕組みやらを勉強できるから頑張りな
851:仕様書無しさん
16/03/15 18:06:37.05 .net
javaもずっと→すっと
852:takesi ◆5LQe9dJ7ck
16/03/16 22:28:22.36 .net
だいぶ粘ったのですがExam10,11,12,13は分かりません
853:仕様書無しさん
16/03/16 22:51:23.20 .net
スレにも問題公開していただけませんか?
私も挑戦してみたいです
854:t.mourning ◆HeJleJP5y2
16/03/17 21:08:43.46 .net
URLリンク(github.com)
は公開リポジトリだから勝手に見てね
一応何も書いてない問題のほうをexam/original
に置いたからそっち見るとよいかと思われ