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
に置いたからそっち見るとよいかと思われ
855:t.mourning ◆HeJleJP5y2
16/03/17 21:13:29.04 .net
>>852
あいよじゃあ解説してく
あと次から問題レベル下げたほうがいい?
↑の844の課題はやっといてね
Exam10.part1
9×9のintの配列を用意せよ
Exam10.part2
上の配列をすべて0で初期化せよ。
(厳密には既に初期化されているが明示的に初期化せよ)
まずはここまでやってコミットよろ
856:仕様書無しさん
16/03/18 23:52:52.65 .net
>>854
ありがとさんです
857:takesi ◆5LQe9dJ7ck
16/03/20 10:20:50.34 .net
進学の準備やらで忙しく課題ができませんでした
今日は予定がないので今から取り組みます
858:takesi ◆5LQe9dJ7ck
16/03/20 11:44:15.30 .net
わかる範囲でやってみました
完全に感覚です
859:t.mourning ◆HeJleJP5y2
16/03/20 12:13:26.19 .net
赤入れたからプルしてね
今はこんな感じかなでいい
間違えたほうが経験になるしね
Exam10.part3
できた配列の数字を表示する
→OK
Exam10.part4
各行の始めと終わりに「|」を出力する
System.out.print("|");
を行えばよい。
Exam10.part5
表示する前と後に「+-----------------+」を表示する
System.out.println("+-----------------+");
を行えばよい
次ここまでね
860:takesi ◆5LQe9dJ7ck
16/03/20 13:21:11.96 .net
すみません用事が出来てしまいました
また夕方頃に再開します
861:takesi ◆5LQe9dJ7ck
16/03/20 19:59:56.41 .net
コミットしました
862:t.mourning ◆HeJleJP5y2
16/03/21 11:14:11.62 .net
あとはデータを入れる
Exam10.part6
穴埋め問題にするのでプルして解くこと
Exam10.part7
0はスペースで表示にする
System.out.print(sudoku[a][b] + " ");
↓
if (~~~) {
System.out.print(sudoku[a][b]);
} else {
System.out.print(" ");
}
と変更し~~~を適切な条件句に直しなさい
863:仕様書無しさん
16/03/21 15:48:55.73 .net
懐かしいな
コンソールでオセロとかやったな
864:takesi ◆5LQe9dJ7ck
16/03/21 16:37:59.02 .net
コミットしました
865:t.mourning ◆HeJleJP5y2
16/03/21 18:03:51.60 .net
おk
Exam10はそのまま発展問題にしていくからちょい待ってね
Exam11.part1~3
Exam12.part1~3
課題:数値のソートとは何か調べなさい
課題:数値の配列「4,3,8,1」を小さい順に並べなさい。ただし過程を細かく記述すること。
課題:プログラムでのソートの実装方法を3つ挙げなさい(中身を理解する必要はない)
Exam13.part1
課題:平方根とは何か述べよ
866:t.mourning ◆HeJleJP5y2
16/03/21 18:11:42.38 .net
Exam10をもとに数独解くプログラム作ってくよ
Sudokuクラス作ったのでそっち見てね
課題:表示する処理を関数化せよ
ただし以下の2通りで関数化すること
public void print(){}
public static void printState(Sudoku x){}
上はメンバー関数としてthis.sudokuを表示させる。
下はスタティック関数としてSudokuクラスを受け取りx.sudokuを表示させる。
ヒント:上の実装にはsudokuをSudokuクラスのメンバーに持てばよい。
867:takesi ◆5LQe9dJ7ck
16/03/21 19:12:06.12 .net
>>865
コミットしました
868:takesi ◆5LQe9dJ7ck
16/03/21 19:19:41.00 .net
>>866
わかりませんでした
関数の知識が乏しいのでしょうか
課題の意味があまり理解できません
869:t.mourning ◆HeJleJP5y2
16/03/22 21:20:23.44 .net
プルした
まずソートの解説から
ソートとは:特に解説無し
小さい順に並べる:これはクイックソートと呼ばれるソートの考え方です。
とても速いといわれるソートの一種で実装は再帰を使った方法などいくつかあります。
実装方法:
1.バブルソートがこれになります。
バブルソートとはソートの様子を可視化した際に
泡(小さい値)が水面(列の最初)に上がっていくようであることから名づけられました。
海底(列の最後)から水面(列の最初)まで隣り合った値を比較し、
大小が逆なら入れ替えを行うと、
水面(列の最初)には泡(最小の値)が来る。
これを水面を下げながら行うことで全ての列がソートできるというもの。
例)
4381
↑↑
8>1なので入れ替える
4318
↑↑
3>1なので入れ替える
4138
↑↑
4>1なので入れ替える
1438←一番小さい「1」が列の最初に来た。水面を下げてまた海底から。
870:t.mourning ◆HeJleJP5y2
16/03/22 21:27:04.37 .net
1 438
↑↑
3<8なので入れ替え無し
1 438
↑↑
4>3なので入れ替え
1 348←2番目に小さい「3」が2番目に来た。同様に3番目。
13 48
↑↑
4<8なので入れ替え無し
1348
ソート完了
これをふまえてExam11に再チャレンジ
ヒント
int a[2] = {1, 3};
の入れ替えは以下のように行う
int x = a[0];
a[0] = a[1];
a[1] = x;
n番目とm番目なら
int x = a[n];
a[n] = a[m];
a[m] = x;
n-1番目とn番目なら…
871:t.mourning ◆HeJleJP5y2
16/03/22 21:38:07.95 .net
2.これは選択ソートと呼ばれるソート方法になります
一番小さい数を探し(選択し)最初に持ってくる。
残りからまた一番小さい数を探し(選択し)最初に持ってくる。
以下繰り返しで、最後まで行うとソートが完了する。
例)
4318
「4318」の中で一番小さいのは「1」
1番目と「1」を入れ替える
1 348
「348」の中で一番小さいのは「3」
2番目と「3」を入れ替える(もともと2番目なので入れ替え無し)
13 48
「48」の中で一番小さいのは「4」
3番目と「4」を入れ替える(もともと3番目なので入れ替え無し)
1348
ソート完了
同様にExam12に再チャレンジ
ヒント
一番小さい数を探すときにその場所も一緒に覚えておく。
一番小さい数だけを探す方法は以下のように行う。
int a[4] = {4, 3, 1, 8};
int min = a[0];
for (int i = 1; i < a.length; i++) {
if (a[i] < min) {
min = a[i];
}
}
872:t.mourning ◆HeJleJP5y2
16/03/22 21:53:01.98 .net
3.これがクイックソートになります
なぜ早いかはググれ
というわけでExam14でクイックソートを実装してもらいます。
勿論11,12が終わったのち。
次、関数について
関数とは
プログラミングにおいては処理の集合を関数と呼ぶ。
集合なのでもちろん1つの処理だけでも良いし、何千何万個もの処理の集まりでも良い。
処理の集合をまとめて一つのものに定義すると何がうれしいかというと、
同一処理を繰り返し書かなくてもよいということである。
例えば1~10の2乗-1の値を表示する場合何も考えずに書くと
System.out.println((1 * 1) - 1);
System.out.println((2 * 2) - 1);
System.out.println((3 * 3) - 1);
System.out.println((4 * 4) - 1);
System.out.println((5 * 5) - 1);
System.out.println((6 * 6) - 1);
System.out.println((7 * 7) - 1);
System.out.println((8 * 8) - 1);
System.out.println((9 * 9) - 1);
System.out.println((10 * 10) - 1);
となる。
これではプログラムより電卓を使ったほうがいいかもしれない。
873:t.mourning ◆HeJleJP5y2
16/03/22 22:12:29.04 .net
関数を使う場合は
int func(int n) {
return ((n * n) - 1);
}
System.out.println(func(1));
System.out.println(func(2));
System.out.println(func(3));
System.out.println(func(4));
System.out.println(func(5));
System.out.println(func(6));
System.out.println(func(7));
System.out.println(func(8));
System.out.println(func(9));
System.out.println(func(10));
となる。
関数には引数と呼ばれるものがあり、
それを受け取り引数ごとに違う処理をしたり、
違う結果を返したりすることができる。
また、Javaのオブジェクト指向ではメンバ関数と呼ばれるインスタンスの処理を定義することができる。
HumanクラスのgetName関数などがメンバ関数となる。
メンバ関数はそのインスタンスの変数にアクセスできるため、
引数として渡されているような挙動が可能である。
逆にインスタンスに(あまり)関係のない挙動をふるまう関数を
静的関数、スタティック関数などと呼ぶ。
staticを関数の宣言部につけ、関数から参照できるのは
(基本的に)そのクラスのstaticな変数か
引数として渡された変数のみである。
以上を踏まえて
課題:Sudokuクラスの70~84行目を何でもよいので関数化せよ
874:takesi ◆5LQe9dJ7ck
16/03/23 11:57:39.19 .net
コミットしました
Exam11はできましたが12と関数についてはわからなかったのでなんとなくでやりました
875:仕様書無しさん
16/03/25 00:11:55.28 .net
>>1
はしめてのC!!
876:t.mourning ◆HeJleJP5y2
16/03/26 10:17:44.28 .net
12と関数赤付けた。コメント見ながらもっかいやってみてね
関数についてはここでも少し解説
Javaでは関数の中に関数(クロージャという)は作ることはできない
public static void main(String[] args)
も関数の一つで実行するときクラス内にこれがあればこれを呼ぶという特権がついている
関数は基本的にクラスの直下に記述する。
class Hoge {
public static void main(String[] args){
…
}
void print(){
…
}
static void printState(Hoge hoge){
…
}
boolean isHuga(){
…
}
static boolean nearlyEquals(Hoge a, Hoge b) {
…
}
…
}
ダメな例
class Piyo{
public static void main(String[] args){
print(){
…
}
}
}
877:t.mourning ◆HeJleJP5y2
16/03/26 10:50:47.42 .net
Exam13
探査とかいうプログラミングの問題
数あてゲームの自動化したものと考えればよい
数あてゲーム(Exam14に差し込んでやります)
1.AとBの二人で行う
2.まずAが好きな数を頭の中で決める
3.Bが数を言う
4.同じか大きいか小さいかをAが答える
5.同じでなければ3からやり直し
これを少数にして「同じ」の範囲をある程度決めたものがExam13
上の例でいうと
2.Aが√2を頭の中で決める
3.Bが少数を言う(x)
4.精度2桁とすると
x<1.40:小さい
1.40<=x<=1.42:同じ
1.42<x:大きい
とAが答える
問題と考えればいい
まずは数あてゲームをExam14で作る。
プルして上から順に解くこと
調べてもわからなくなった時点で一旦手を止めここに書き込むこと
878:takesi ◆5LQe9dJ7ck
16/03/28 19:38:29.48 .net
用事が入ってしまい1日まで課題ができません
度々すみません
879:takesi ◆5LQe9dJ7ck
16/04/02 12:56:42.03 .net
8日からのスタートでお願いします
また用事が入ってしまいました
すみません
880:仕様書無しさん
16/04/09 16:12:40.41 .net
>>8
>>ファイルを作成、編集しました!
と画像がありますが、
どうすれば、画像のようにメモ帳に文字を出せるのでしょうか?
どうぞよろしくお願いします。
881:仕様書無しさん
16/04/09 20:56:22.07 .net
>>880
全角キーを押してローマ字入力、変換
882:仕様書無しさん
16/04/09 21:13:04.13 .net
>>881
ご回答ありがとうございます。
できれば、もう少し詳細に教えていただけないでしょうか?
全くの初心者なものですから…。
883:仕様書無しさん
16/04/09 21:24:41.83 .net
>>882
プログラミングの前にパソコンの使い方を勉強した方がいい
884:仕様書無しさん
16/04/09 21:49:19.68 .net
ここにもスマホバカが
885:仕様書無しさん
16/04/10 08:31:07.34 .net
>>8
バイナリエディタに入力したものを、メモ帳にどうやって反映させるのでしょうか?
886:仕様書無しさん
16/04/10 09:08:12.73 .net
>>885
保存して開き直す
887:仕様書無しさん
16/04/10 10:21:03.79 .net
URLリンク(gyazo.com)
「俺の名前はタカシだ」と入力したつもりが、上記のように記号がいくつかでてくるだけです。
888:仕様書無しさん
16/04/10 10:22:53.68 .net
URLリンク(gyazo.com)
「俺の名前はタカシだ」と入力したつもりが、上記のように記号がいくつかでてくるだけです。
889:仕様書無しさん
16/04/10 11:22:40.57 .net
>>888
メモ帳に入力する
890:仕様書無しさん
16/04/10 11:40:39.83 .net
>>889
ああ、そういう意味だったんですね。
私は、バイナリエディタに入力したものが、連動してテキストのメモ帳に表記されるものと思っていました。
どうも、失礼致しました。
また、解らないことがあったら、またよろしくお願いします。
891:takesi ◆5LQe9dJ7ck
16/04/11 20:58:15.27 .net
遅れて申し訳ありません
できるところまでコミットしました
全然できませんでした
出来が悪くてすみません
892:t.mourning ◆HeJleJP5y2
16/04/13 18:35:25.04 .net
最初からできる人なんていないから。
また赤付けた
というより若干答え書いた
差分のところよく見て理解してね
またできるとこまでtry
893:takesi ◆5LQe9dJ7ck
16/04/16 19:22:15.22 .net
遅くなってすみません
コミットしました
894:仕様書無しさん
16/04/16 21:04:50.77 .net
明日まで出先だから月曜日また赤つけます
次進めそうなら解説とかその時書く
895:仕様書無しさん
16/04/24 15:02:23.98 .net
NHK教育を見て49941倍賢く昼 [無断転載禁止](c)2ch.net
スレリンク(liveetv板)
896:t.mourning ◆HeJleJP5y2
16/04/24 23:28:48.01 .net
遅くなったけどまた赤つけた
Exam12はあと一息がんば
Exam14はequalは一致を判定する関数なので比較には使いません
一応比較にはcompareToという関数があるが、この場合は一旦
lineを数値に変換してから<,==,>で比較しましょう
こっちはもう一息かな
897:仕様書無しさん
16/05/02 16:19:36.60 .net
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrent(Covenant)がオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise氏)がそういう人と話したいそうなので、よろしければツイートお願いします
URLリンク(twitter.com)
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
通話料が激安になるブラステル(050 Free)で、かなり遅延や音声途切れが発生する方は、以下の設定を試してください
○ Wifiと3Gのコーデックは2つ(GSM、G.711u-Law)とも有効にしておく
○ エコーキャンセルをOFF(チェックを外す)にする
○ あとの設定はデフォルトのまま
URLリンク(blog.livedoor.jp)
上記の設定でも音質が良くならない人は、wolfsonの高音質チップを搭載した機種(Galaxy 初代S、S3、S6、 AQUOSPhone ZETA SH-06E、AQUOSPhone si SH-07E、AQUOSPhone Xx 206SH、 Galaxy Note II)に買い換えて下さい。
500円以下の格安SIMで使えて登録・月額無料、IPベース発信なら携帯へは5.5円/30秒、固定へは8円/3分(月額無料でこの価格はすごい!)
URLリンク(blog.jikoman.jp)
あと、050Freeの起動もしくは発着信が2週間以上ないとプッシュサーバー期限切れでプッシュ着信が出来なくなるので、Llama Location Profilesで1週間に一度050Freeを自動起動するように設定すると、2週間以上経過してもプッシュ着信できます
最後にロケットストーブの焚き口へ超省電力なDC扇風機で風を送ると、横引き煙突が12m以上あっても煙が逆流してきません。
よって、横引き煙突で超高効率な熱回収ができるので薪が少量で済みます
あと、燃焼室の大きさは『無煙竹ボイラMBG150』で検索して参考にして下さい
URLリンク(i.imgur.com)
URLリンク(jp.misumi-ec.com)
URLリンク(livedoor.blogimg.jp)
7
898:仕様書無しさん
16/05/05 08:53:33.67 .net
個数 名前
96 t.mourning ◆HeJleJP5y2
281 takasi
80 takesi
21 takesi ◆5LQe9dJ7ck
4 たかし
97 仕様書無しさん
318 片山博文MZ ◆T6xkBnTXz7B0
何でt.mourningと片山君は熱心なのか
899:takasi
16/05/22 00:31:52.76 .net
たかしです
この年で就職できるか不安です
たかしでした
900:仕様書無しさん
16/05/30 05:44:44.02 .net
たかしです・・・・たかしです・・・・たかしです・・・・
901:仕様書無しさん
16/05/30 21:28:33.80 .net
たかしかし
902:takasi
16/06/01 22:14:23.52 .net
たかしです
誰か僕を拾ってくれませんか
なんちゃって
たかしでした
903:仕様書無しさん
16/06/01 22:28:51.79 .net
>>902
スレの前半で片山さんと特訓してた、たかしさん?
職業訓練校は、どうだった?
まだ、通っているのかな?もう修了したのかな?
904:takasi
16/06/01 23:26:23.70 .net
はい、そのたかしです。まだ通校しております
訓練校はIT関連の知識を幅広く学べて良いと思います
企業とのマッチングの場も設けてくれます
ニート上がりの人にはリハビリになると思います
実際に生活リズムが改善されました
ただ、いまたかしは悩んでいます
いろんな事に悩みすぎて何に悩んでるのか分からない悩みです
905:takasi
16/06/01 23:43:47.05 .net
その悩みを話せる人がいないので自問自答の日々です・・・
906:仕様書無しさん
16/06/02 00:30:09.75 .net
>>904
おー、久しぶり。っていっても、自分はずっとROMってただけだけどね。
職業訓練校、まだ通っているんだね。ここに書き込んでた頃は、昼夜逆転した生活だったから、ついていけるか、ちょっと心配してたので、ほっとした。生活ペースが身に付いて、良かったね。
訓練校の同期の人たちと、悩みを話したりしないの? 訓練校をでた後の進路が、最大の悩みなのかな?