このブログを検索

2019年9月30日月曜日

メモ Xcode で一括インデント

メモ帳
 Xcodeをしようした時 一括インデントの方法

 command + [  で範囲内 左
 command + ]  で範囲内 右




今日の教訓
 もっと先に知っておけば楽だったのに。。。

今後の Progate の勉強。

Progate を利用させていただいています。
僕も Java のコースは 一回りして、
今、HTML&CSS のコースを勉強しています。

Javaのコースは 全て 学習した範囲内だったので、
理解していたかどうかの チェックに活用できました。

  ただ、例外処理に対しての学習がないので、
  InputStreamReader や sleep に対する学習が出来ない。
  せっかくの Javaなのに GUI の学習がない。

Progate は Swift コースも今後無くなり、
Web上の 言語に特化していく様です。

おそらく、Javaも 今後なくなるのかな。。。

今現在、HTML&CSS を学習させて頂いているのですが、
おそらく いくら繰り返したとしても、
自分の HPは作れないと思いました。

だから Progateでは
自分の 文法のチェック、
新しい 刺激の確認を行おう。

今日の教訓
 いいとこ取りで 学習を続けよう。


2019年9月29日日曜日

スラスラわかる HTML&CSSのきほん

スラスラわかるHTML&CSSのきほん
この本を最後までパラパラめくってみると、
FC2ホームページでのサイト公開まで
載っていた。

ここで、新しい目標。
オイラ、自分のHPを作って
完成物を掲載しよう!

新たな目標。

実は、Javaと違って
HTML CSS は 覚えることより、
地道な作業が多く 中だるみ状態

早く、自分のHPを作るのだ。


今日の教訓
 目標があるとやる気が出てくるね。

2019年9月28日土曜日

スラスラわかる HTML&CSSのきほん

新しい 教材を購入しました。
その名は
スラスラわかるHTML&CSSのきほん


Progateと一緒に HTML&CSS の勉強を続けよう。

今日の教訓
 少しぽちぽちと打ち込んでみたが、
 Progateで 覚えたことが頭に入っている。

2019年9月27日金曜日

Progate HTML & CSS 初級編

Progate の HTML & CSS 初級編

 Progate のウェブ上ではなく
 テキストエディタで入力したものを
 Progateのウェブに貼り付けてみた。

 この際、
 <!doctype html> とか
 <link rel="stylesheet" href="stylesheet.css"> とか
 実際に ウエブ上には関係のないものも、
 記載する必要がある。

 これが「間違い」と判定されると
 めんどくさい。

 試してみよう。


 ポチッとしてみたら、
 正解になった。

 すごいな Progate !!

 
今日の教訓
 <head>部は何も考えずに
 指で覚えられるように 記載できる様になろう。

2019年9月26日木曜日

Java入門教室 Lesson11-6 図形を動かす ③

「Java入門教室」 図形を動かすプログラム。

 動く円 (左右に動く)に、もう1つ円 (上下に動く)、
 さらに 斜めに動く円を作りました。
 



 出来上がった!!
  ただの 安っぽいスクリーンセーバーだ ww

⭐️ 3つの円が動く
//◯動く方向を変えてみよう
//◯方向の変数を作ろう
//上下方向に動く球を新たに作ろう

import java.awt.*;
import java.awt.event.*;
class Slanting1{
    public static void main(String[] args){
        MyWindow mw = new MyWindow();
        Thread th = new Thread(mw);
        th.start();
    }
}

class MyWindow extends Frame implements Runnable {
    int cx1 = 0; //左右に動く球
    int cy1 = 200;
    int dire1 = 1; //1 右方向  2 左方向
    
    int cx2 = 200; //上下に動く球
    int cy2 = 0;
    int dire2 = 3; //3 下方向  4 上方向
    
    int cx3 = 500;
    int cy3 = 0;
    int dire3 = 5; //5右下 6右上 7左上 8左下
    
    MyWindow(){
        setTitle("2つの円を動かす");
        setSize(600, 400);
        setVisible(true);
        addWindowListener( new WinListener() );
    }
    
    public void run() {
        while(true) {
            switch(dire1) {  //左右に動く球の方向転換
                case 1:
                    cx1 = cx1 + 2;
                    if(cx1>600) dire1 = 2; //左方向に転換
                    break;
                case 2:
                    cx1 = cx1 - 2;
                    if(cx1<0) dire1 = 1; //右方向に転換
                    break;
            }
            switch(dire2) { //上下に動く球の方向転換
                case 3:
                    cy2 = cy2 + 2;
                    if(cy2>400) dire2 = 4; //上方向に転換
                    break;
                case 4:
                    cy2 = cy2 - 2;
                    if(cy2<0) dire2 = 3; //下方向に転換
                    break;
            }
            switch(dire3){ //斜めに動く球の方向転換
                case 5: //右下の場合
                    cx3 = cx3 + 2; cy3 = cy3 + 2;
                    if(cx3>600 && cy3>400) dire3 = 7;
                    if(cx3>600 && cy3<400) dire3 = 8;
                    if(cx3<600 && cy3>400) dire3 = 6;
                    break;
                case 6: //右上の場合
                    cx3 = cx3 + 2; cy3 = cy3 - 2;
                    if(cx3>600 && cy3<0  ) dire3 = 8;
                    if(cx3<600 && cy3<0  ) dire3 = 5;
                    if(cx3>600 && cy3>0  ) dire3 = 7;
                    break;
                case 7: //左上の場合
                    cx3 = cx3 - 2; cy3 = cy3 - 2;
                    if(cx3<0   && cy3<0  ) dire3 = 5;
                    if(cx3<600 && cy3<0  ) dire3 = 8;
                    if(cx3<0   && cy3>0  ) dire3 = 6;
                    break;
                case 8: //左下の場合
                    cx3 = cx3 - 2; cy3 = cy3 + 2;
                    if(cx3<0   && cy3>400) dire3 = 5;
                    if(cx3<0   && cy3<400) dire3 = 5;
                    if(cx3>0   && cy3>400) dire3 = 7;
                    break;
            }
            
            repaint();
            try{ Thread.sleep(15); } catch(InterruptedException e) {}
        }
    }
    
    public void paint(Graphics g) {
        g.setColor(Color.LIGHT_GRAY);
        g.fillRect(0, 0, 600, 400);
        g.setColor(Color.GREEN);
        g.fillOval(cx1-30, cy1-30, 60, 60);
        g.setColor(Color.PINK);
        g.fillOval(cx2-30, cy2-30, 60, 60);
        g.setColor(Color.YELLOW);
        g.fillOval(cx3-30, cy3-30, 60, 60);
    }
}

class WinListener extends WindowAdapter{
    public void windowClosing(WindowEvent e){ System.exit(0); }

}

今後の改良点。
・斜めに動く円ばかり救った場合、
 条件分岐の部分は1つにまとめられるのかな。
・円ではなく ドット絵を動かしてみたい。
・マウスを押すと 方向を変えたり出来るのかな。
・金魚鉢のプログラミングを作りたい。
これらは 今すぐには出来ないな、Java入門教室をもっと勉強しよう。

今日の教訓
 やりたいことが、いっぱい。

2019年9月25日水曜日

Java入門教室 Lesson11-6 図形を動かす ②

「Java入門教室」 図形を動かすプログラム。

 動く円 (左右に動く)に、もう1つ円 (上下に動く)物を
 新たに 作りました。
 


 動く物って やっぱり楽しいね。
 ボーッと見てしまうよ。

⭐️ 2つの円が動く
//◯動く方向を変えてみよう
//◯方向の変数を作ろう
//上下方向に動く球を新たに作ろう

import java.awt.*;
import java.awt.event.*;
class Main3{
    public static void main(String[] args){
        MyWindow mw = new MyWindow();
        Thread th = new Thread(mw);
        th.start();
    }
}

class MyWindow extends Frame implements Runnable {
    int cx1 = 0;
    int cy1 = 200;
    int dire1 = 1; //1 右方向  2 左方向
    
    int cx2 = 200;
    int cy2 = 0;
    int dire2 = 3; //3 下方向  4 上方向
    
    MyWindow(){
        setTitle("2つの円を動かす");
        setSize(600, 400);
        setVisible(true);
        addWindowListener( new WinListener() );
    }
    
    public void run() {
        while(true) {
            switch(dire1) {  //左右に動く球の方向転換
                case 1:
                    cx1 = cx1 + 2;
                    if(cx1>600) dire1 = 2; //左方向に転換
                    break;
                case 2:
                    cx1 = cx1 - 2;
                    if(cx1<0) dire1 = 1; //右方向に転換
                    break;
            }
            switch(dire2) { //上下に動く球の方向転換
                case 3:
                    cy2 = cy2 + 2;
                    if(cy2>400) dire2 = 4; //上方向に転換
                    break;
                case 4:
                    cy2 = cy2 - 2;
                    if(cy2<0) dire2 = 3; //下方向に転換
                    break;
            }
            
            repaint();
            try{ Thread.sleep(15); } catch(InterruptedException e) {}
        }
    }
    
    public void paint(Graphics g) {
        g.setColor(Color.LIGHT_GRAY);
        g.fillRect(0, 0, 600, 400);
        g.setColor(Color.GREEN);
        g.fillOval(cx1-30, cy1-30, 60, 60);
        g.setColor(Color.PINK);
        g.fillOval(cx2-30, cy2-30, 60, 60);
    }
}

class WinListener extends WindowAdapter{
    public void windowClosing(WindowEvent e){ System.exit(0); }

}

斜めに動く円を付け加えてみようかな
 (↑難易度 高め)

今日の教訓
 楽しいぞ〜〜〜

2019年9月24日火曜日

Java入門教室 Lesson11-6 図形を動かす

「Java入門教室」 図形を動かすプログラム。

 前回、この本で学習した時には
 意味も解らず 写経してました。

 今回は ウインドウのサイズを変えたり、
 色を変えたりスピードを変えたり出来るようになりました。
 

 あと、
Thread th = new Thread(mw);

 という、記載が 感覚としては判るんだけど、
 口で 説明出来ないな (他人に教える事は出来ない)。

 次は、この真ん中にある 円の動きを変えてみよう。
 現在は 左から右への一方通行。
 それを 左右に往復に変えるのだ。

今日の教訓
 スレッドって 難しいけど
 ワクワクするのだ。

2019年9月23日月曜日

Java入門教室 Lesson10-10 キャンバスに描く

「Java入門教室」 キャンバスに 円を描くプログラム。
 
 try { Thread.sleep(300);} catch(Exception e) {}


を使って、
 少しずつ 円を描くプログラムにしてみた。
 

 
次は、動く物を作りたいな。
 スレッドの勉強をしよう。 

今日の教訓
 スレッドって 何回か勉強してるんだけど、
 全く 覚えてないぞ。

2019年9月22日日曜日

テキストエディタ Atom をダウンロード。

Progate で Atomの テキストエディタをダウンロードしてみた。


 今、Javaを勉強している時 使っているのは
 Mac の Xcode
  (あえて eclipse は 使ってない 何故ならば 英語のスペルを 覚えたいからだ)

 今回、Atomをダウンロードしたけど、
 Xcode のままでいいのではないかと思う。

 Xcodeって 本格的に使用できれば 便利なソフトらしい。

 今、こうやって Blogを更新している最中にも、
 Xcodeの更新が終わらない。。。
 (すごい 重さだ)

 やっぱり、Xcodeで勉強しよう。
 
今日の教訓
 CSSの定義って 結構面倒だ。
 だけど、手で何も考えないようにタイプ出来るようになろう。

2019年9月21日土曜日

Progate HTML & CSS 初級編を やっと終了。

 Progate の HTML & CSS 初級編をやっと終了。

 かと言って、理解して 勝手に手が動く状態には程遠い。
 初級編を何回か繰り返そう。

 
今日の教訓
 次は 環境構築をするのだ。

2019年9月20日金曜日

アホ男子のための 学習プログラム ⑧

「アホ男子のための 学習プログラム」

 アホ男子 向けに 間違えた時に
 おバカなコメントを ランダムに表示する様にした。


⭐️ おバカなコメントを表示

import java.awt.*;
import java.awt.event.*;
class Division2{
    public static void main(String[] args){
        MyWindow mw = new MyWindow();
    }
}

class MyWindow extends Frame implements ActionListener{
    TextField tf;
    Button btn;
    int moto; //割られる数値です。
    int waru; //割る数値です。
    int ans; //答え
    static int count = 1; //出題数
    static int correct_answers; //正解数
    int bottoncount = 1; //1→回答 2→次の問題 3→最後
    MyWindow(){
        setTitle("問題集");
        setSize(640, 400);
        setLayout(null); //レイアウトの解除
        tf = new TextField(20); //テキストフィールドのインスタンスの作成
        tf.setBounds(80, 300, 380, 30); //x,t 大きさx,y
        add(tf); //テキストフィールドの配置
        btn = new Button(); //ボタンのインスタンスの作成
        btn.addActionListener(this);
        btn.setLabel("回答");
        btn.setBounds(480, 300, 100, 35); //x,t 大きさx,y
        add(btn);//ボタンの配置
        setVisible(true);
        addWindowListener( new WinListener() );
    }
    
    public void paint(Graphics g){
        Font font1 = new Font("MS Pゴシック",Font.PLAIN, 40);
        g.setFont(font1);
        g.setColor(Color.DARK_GRAY);
        g.drawString( questions() , 80, 130);
    }
    
    public void actionPerformed(ActionEvent e){
        if(e.getSource() == btn) judgment();
    }
    
    public String questions(){ //出題するメソッド
        waru = rnd(40) + 2; //割る数値(2〜40)
        ans = rnd(20)+1; //答え(1〜20)
        moto = waru * ans; //割られる数値
        System.out.println(moto + " ÷ " + waru + " = " + ans);//験算用
        return moto + " ÷ " + waru + " = ";
    }
    
    void judgment(){
        if(bottoncount == 1){
            String str = tf.getText();
            int num = 0;
            try{
                num = Integer.parseInt(str);
            }
            catch(Exception e){
                System.out.println(e); //後に消去
            }
            System.out.println(num); //試験用 入力した数値を 表示
            if (ans == num){
                stop(2000);
                correct_answers++;
                tf.setText(num + "  正解だよ!!");
            }
            else if(num == 0){ //numに数値が入力されなかった場合。
                stop(2000);
                tf.setText(str + " 半角数値で入力してね。");
            }
            else{
                stop(2000);
                tf.setText("正解は" + ans + " ! " +  comment() );
            }
            btn.setLabel("次の問題");
            count++;
            //bottoncount = 2;
            if(count <= 5) bottoncount = 2; //5問出題で終了
            else bottoncount = 3;
            System.out.println(count + "回目の出題です。");
        }
        else if(bottoncount == 2){
            tf.setText("");
            btn.setLabel("回答");
            bottoncount = 1;
            repaint();
        }
        else if(bottoncount == 3){
            tf.setText("おっしまい よく頑張ったね。 正解数は 5問中 " + correct_answers + "問だよ。");
        }
    }
   
    public void stop(int times){ //時間を止めるメソッド
        try{ Thread.sleep(times); } catch(Exception e) {}
    }
    
    public int rnd(int max) { return(int)(Math.random()*max);} //整数の乱数を返すメソッド
    
    public String comment(){
        String[][] com = {
            {"おまえは","おまえの足の裏は","おまえの未来は","おまえのカーチャンは","来年のおまえは"},
            {"臭い","よく分からない","ヌルヌルした","カレー味の","イカの味がする","べちょべちょした"},
            {"出べそだ","ウンチだ","ケシカスだ","便器だ","パンツだ","小学生だ"}
        };
            int r1 = rnd(com[0].length);
            int r2 = rnd(com[1].length);
            int r3 = rnd(com[2].length);
            return (com[0][r1] + " " + com[1][r2]+ " " + com[2][r3] + " !!");
    }
}

class WinListener extends WindowAdapter{
    public void windowClosing(WindowEvent e){System.exit(0);}

}


少しだけ、喜ぶのかな。。。

今日の教訓
 さて次は何を作ろう。

2019年9月19日木曜日

アホ男子のための 学習プログラム (一応完成) ⑦

「アホ男子のための 学習プログラム」

 一応、5問の問題を出して 結果を表示する所まで
 作る事がでけた。



⭐️ 5問出題
//◯合っているかどうかの確認
//◯回答後ボタンを変える
//5回出題させる
import java.awt.*;
import java.awt.event.*;
class Last2{
    public static void main(String[] args){
        MyWindow mw = new MyWindow();
    }
}

class MyWindow extends Frame implements ActionListener{
    TextField tf;
    Button btn;
    int moto; //割られる数値です。
    int waru; //割る数値です。
    int ans; //答え
    static int count = 1; //出題数
    static int correct_answers; //正解数
    int bottoncount = 1; //1→回答 2→次の問題 3→最後
    MyWindow(){
        setTitle("問題集");
        setSize(640, 400);
        setLayout(null); //レイアウトの解除
        tf = new TextField(20); //テキストフィールドのインスタンスの作成
        tf.setBounds(80, 300, 370, 30); //x,t 大きさx,y
        add(tf); //テキストフィールドの配置
        btn = new Button(); //ボタンのインスタンスの作成
        btn.addActionListener(this);
        btn.setLabel("回答");
        btn.setBounds(480, 300, 100, 35); //x,t 大きさx,y
        add(btn);//ボタンの配置
        setVisible(true);
        addWindowListener( new WinListener() );
    }
    
    public void paint(Graphics g){
        Font font1 = new Font("MS Pゴシック",Font.PLAIN, 40);
        g.setFont(font1);
        g.setColor(Color.DARK_GRAY);
        g.drawString( questions() , 80, 130);
    }
    
    public void actionPerformed(ActionEvent e){
        if(e.getSource() == btn) judgment();
    }
    
    public String questions(){ //出題するメソッド
        waru = (int)(Math.random()*40)+2; //割る数値(2〜40)
        ans = (int)(Math.random()*20)+1; //答え(1〜20)
        moto = waru * ans; //割られる数値
        System.out.println(moto + " ÷ " + waru + " = " + ans);//験算用
        return moto + " ÷ " + waru + " = ";
    }
    
    void judgment(){
        if(bottoncount == 1){
            String str = tf.getText();
            int num = 0;
            try{
                num = Integer.parseInt(str);
            }
            catch(Exception e){
                System.out.println(e); //後に消去
            }
            System.out.println(num); //試験用 入力した数値を 表示
            if (ans == num){
                stop(2000);
                correct_answers++;
                tf.setText(num + "  正解だよ!!");
            }
            else if(num == 0){ //numに数値が入力されなかった場合。
                stop(2000);
                tf.setText(str + " 半角数値で入力してね。");
            }
            else{
                stop(2000);
                tf.setText(num + " はまちがい 正解は " + ans + " だよ。");
            }
            btn.setLabel("次の問題");
            count++;
            //bottoncount = 2;
            if(count <= 5) bottoncount = 2; //5問出題で終了
            else bottoncount = 3;
            System.out.println(count + "回目の出題です。");
        }
        else if(bottoncount == 2){
            tf.setText("");
            btn.setLabel("回答");
            bottoncount = 1;
            repaint();
        }
        else if(bottoncount == 3){
            tf.setText("おっしまい よく頑張ったね。 正解数は 5問中 " + correct_answers + "問だよ。");
        }
    }
   
    public void stop(int times){ //時間を止めるメソッド
        try{ Thread.sleep(times); } catch(Exception e) {}
    }
}

class WinListener extends WindowAdapter{
    public void windowClosing(WindowEvent e){System.exit(0);}

}


このままでは、アホ男子が喜びそうもないので、
遊びゴコロをくすごろう。

今日の教訓
 もっと 楽しい物にするのだ。

2019年9月18日水曜日

アホ男子のための 学習プログラム⑥

「アホ男子のための 学習プログラム」

 まだ完成してないんだけど、
 息子くんに やらせてみた。



やっぱり、息子くん 間違えた。

今日の教訓
 よーし、完成させよう。

2019年9月16日月曜日

Progateで HTML & CSS を学んでみた

Progate

 Progateで Java の レッスンは 一通り学習したんだけど、
 他の レッスンも受けてみたくなった。
 (課金してるしね)

 そいでもって 選んだ コースは
 HTML & CSS
 ホームページ等を作るのに必須の言語。

 オイラ、全く出来てないんだよね。

 だから、学習。

 毎日 少しだけでも コツコツ勉強しよう。


今日の教訓
 HTMLは基礎だしね。

アホ男子のための 学習プログラム (作成中) ⑤

「アホ男子のための 学習プログラム」

 問題を再度出題をするにはどうすれば良いか。
 とりあえず、出題は前回 作った 割り算プログラムをそのまま使用。
 前回のプログラムでは、
 ラベルの上に問題を書き、
 そのラベルを更新した。

 今回は g.drawString() を用いて記載している。

 どうやって、再度 書き直す事が出来るのか。。。

 paint(Graphics g) と記入してもダメ。
 g.drawString() と記入しても 「ハイ消えた!!」
 上記を色々組み合わせたり、色々 消したりしてもだめ。

 そんな時、閃いた。
 
 「Java入門教室」で書いてあった 謎の文章。
 repaint(); だ!!

 よく解らないけど、試しにコンパイル。
 理由は解らないけど でけた!!



⭐️ 問題を再度 表示。
//◯問題を表示させるためのclassを作成
//◯問題を表示させる
//◯ボタンを反応させる
//◯合っているかどうかの確認
//回答後ボタンを変える
import java.awt.*;
import java.awt.event.*;
class Question2{
    public static void main(String[] args){
        MyWindow mw = new MyWindow();
    }
}


class MyWindow extends Frame implements ActionListener{
    TextField tf;
    Button btn;
    int moto; //割られる数値です。
    int waru; //割る数値です。
    int ans; //答え
    static int count = 1; //出題数
    static int Correct_answer; //正解数
    int bottoncount = 1; //1→回答 2→次の問題 3→最後
    MyWindow(){
        setTitle("問題集");
        setSize(640, 400);
        setLayout(null); //レイアウトの解除
        tf = new TextField(20); //テキストフィールドのインスタンスの作成
        tf.setBounds(80, 300, 370, 30); //x,t 大きさx,y
        add(tf); //テキストフィールドの配置
        btn = new Button(); //ボタンのインスタンスの作成
        btn.addActionListener(this);
        btn.setLabel("回答");
        btn.setBounds(480, 300, 100, 35); //x,t 大きさx,y
        add(btn);//ボタンの配置
        setVisible(true);
        addWindowListener( new WinListener() );
    }
    
    public void paint(Graphics g){
        Font font1 = new Font("MS Pゴシック",Font.PLAIN, 40);
        g.setFont(font1);
        g.setColor(Color.DARK_GRAY);
        g.drawString( questions() , 80, 130);
    }
    
    public void actionPerformed(ActionEvent e){
        if(e.getSource() == btn) judgment();
    }
    
    public String questions(){ //出題するメソッド
        waru = (int)(Math.random()*40)+2; //割る数値(2〜40)
        ans = (int)(Math.random()*9)+1; //答え(1〜9)
        moto = waru * ans; //割られる数値
        System.out.println(moto + " ÷ " + waru + " = " + ans);//験算用
        return moto + " ÷ " + waru + " = ";
    }
    
    void judgment(){
        if(bottoncount == 1){
            String str = tf.getText();
            int num = 0;
            try{
                num = Integer.parseInt(str);
            }
            catch(Exception e){
                System.out.println(e); //後に消去
            }
            System.out.println(num); //試験用 入力した数値を 表示
            if (ans == num){
                stop(2000);
                tf.setText(num + "  正解だよ!!");
            }
            else if(num == 0){ //numに数値が入力されなかった場合。
                stop(2000);
                tf.setText(str + " 半角数値で入力してね。");
            }
            else{
                stop(2000);
                tf.setText(num + " はまちがい 正解は " + ans + " だよ。");
            }
            btn.setLabel("次の問題");
            bottoncount = 2;
        }
        else if(bottoncount == 2){
            tf.setText("");
            btn.setLabel("回答");
            bottoncount = 1;
            repaint();
        }
    }
   
    public void stop(int times){ //時間を止めるメソッド
        try{ Thread.sleep(times); } catch(Exception e) {}
    }
}

class WinListener extends WindowAdapter{
    public void windowClosing(WindowEvent e){System.exit(0);}

}


次はカウントとか 細かいことを あれこれ。

今日の教訓
 repaint(); をもっと調べよう。