CEmi6653’s blog

忘備録

【ホームページ制作】HTML練習用コード

HTMLの忘備録です。

そういえば最近、Web系触ってない。。練習するか。。
が。。あれっHTMLの書き方ってなんだっけ??
なんか宣言()とかheadタグ()の中にも何か書いたよね。CSSの読み込みはもちろん、他にもあったな。。

久々すぎて忘れていましたので、テンプレートとして残します。

実行環境
VScode(Visual Studio Code)

事前準備
VScodeのインストール
・テスト用のフォルダ作成とテスト用のフォルダの中に、テスト用のhtml、css、jsファイル(拡張子.html,.css,.js)の作成
■階層
Testフォルダ - index.html
L index.css
L index.js
※ファイル名は適当に決めてください。

VScode(Visual Studio Code)を開き、フォルダを開く。
Windows: 「Ctrl」+ 「K」 + 「O」
macOS:[Command]+[O]

index.htmlに以下のソースをコピペ

<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="utf-8"/>
        <!-- レスポンシブ対応用タグ -->
        <meta name="viewport" content="width=device-width,initial-scale=1"/>
        <!-- 検索結果がタイトル下に表示される文章 -->
        <meta name="description" content="検索結果のタイトル下に表示される文章" />
        <title>模倣サイト</title>
        <!-- ブラウザのタブに表示されるサイトアイコン -->
        <link rel="icon" href=""> 
        <link rel="apple-touch-icon" href="" />
        <!-- スマホでホーム画面にページを保存したときに使われるアイコン -->
        <link rel="apple-touch-icon-precomposed" href="" /> 
        <!-- og -->
        <meta property="og:title" content="タイトル" />
        <meta property="og:type" content="website"> <!-- website または blog または article -->
        <meta property="og:description" content="ページの簡単な説明" />
        <meta property="og:url" content="ページのURL" />
        <meta property="og:site_name" content="サイトのタイトル" />
        <meta property="og:image" content="サムネイル画像のURL" />
        <!-- css -->
         
        <!-- ブラウザ由来のCSSを無効 -->
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.css"/> 
        <!-- CSS読み込み -->
        <link rel="stylesheet" href="index.css"/>
  <!-- JS読み込み -->
  <script type="text/javascript" src="index.js"></script>
    </head>
    <body>
        <h1>タイトル</h1>
        <p>テキスト</p>
    </body>
</html>

※使用するJSファイルによってはタグ直前もしくは、タグ直前だった気がする。


■階層例
Testフォルダ - imgフォルダ - 画像1.png
L HTMLフォルダ - index.html
L JSフォルダ - index.js
L CSSフォルダ - index.css
この場合のhtmlでJS,CSS,imgの読み取り
絶対パス相対パスはご自身の勉強のためお調べください。

        <!-- 省略 -->
        <!-- CSS読み込み -->
        <link rel="stylesheet" href="./CSSフォルダ/index.css"/>
        <!-- JS読み込み -->
        <script type="text/javascript" src="./JSフォルダ/index.js"></script>
    </head>
    <body>
        <h1>タイトル</h1>
        <p>テキスト</p>
        <!-- <img src="画像ファイルの場所" alt="代替文字"> -->
        <img src="./imgフォルダ/画像1.png" alt="画像1">
    </body>
</html>

さあ練習しましょう。
もしよければサンプルとして使用してください。

またね。

C# StreamReaderを使用したCSVの読み取り

C# 忘備録です。
こちらの実装では、ストリームリーダーでCSVファイルの読み込みをし、リスト型の変数に格納します。

動作環境
Windows11 visual studio2022 .net framework4.7.2 WindowsForm

CSVファイルの読み込み用に新しいクラスを作成します。
プロジェクトファイルを右クリックし、「追加」を選び、「クラス」を選択します。

VC#クラスの追加


名前は適当に「CSVRead」にします。

VC# クラス作成02

「追加」をクリックすると「CSVRead.cs」というクラスが作成されます。

VC# クラス作成03

新しいクラスを作成したら、usingを追加します。
using System.IO;を追記するとストリームリーダが使用できるようになります。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO; //追記
using System.Threading.Tasks;

namespace hatenaForm
{
    internal class CSVRead
    {
    }
}

では、ストリームリーダを使用できるようになりましたので実装していきます。


まずはメソッドを追加します。

sing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO; //追記
using System.Threading.Tasks;

namespace hatenaForm
{
    internal class CSVRead
    {
        public void CsvRead01()
        {

        }
    }
}

他のクラスから呼び出す(参照できるようにする)ため、privateではなくpublicにします。

ストリームリーダで読み込みと書いてある内容をすべて変数に入れるようにwhile文でループします。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO; //追記
using System.Threading.Tasks;

namespace hatenaForm
{
    internal class CSVRead
    {
        public void CsvRead01()
        {
            //リスト型の初期化と宣言
            List<string[]> str = new List<string[]>();
            //CSVを読み込みモードで開く,文字種はsjis,※代表的なものでいうとUTF-8
            StreamReader ls = new StreamReader(@".\Formchange.csv", Encoding.GetEncoding("sjis"));
            while (!ls.EndOfStream)
            {
                // CSVファイルの一行を読み込む
                string ln = ls.ReadLine();
                // 読み込んだ一行をカンマ毎に分けて配列に格納する
                string[] lnvalues = ln.Split(',');
                //strに格納
                str.Add(lnvalues);

            }
            //CSVファイルを閉じる
            ls.Close();
        }
    }
}

※このときのパスはデバックの実行ファイルからの相対パスで指定しています。

読み込みはこれで完了で、変数にも格納できましたが、今回は読み取りで必要な場所だけを指定します。
わたしは適当に「Formchange.csv」という適当なcsvファイルを作成しました。

VC# CSV読み取り

8行目から読み込みたいため、foreach文で回しながら条件分岐で追記します。
※もっと効率が良いコードはそのへんの落ちていると思います。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO; //追記
using System.Threading.Tasks;

namespace hatenaForm
{
    internal class CSVRead
    {
        List<string[]> TestItem = new List<string[]>();
        public void CsvRead01()
        {
            //リスト型の初期化と宣言
            List<string[]> str = new List<string[]>();
            //CSVを読み込みモードで開く,文字種はsjis,※代表的なものでいうとUTF-8
            StreamReader ls = new StreamReader(@".\Formchange.csv", Encoding.GetEncoding("sjis"));
            while (!ls.EndOfStream)
            {
                // CSVファイルの一行を読み込む
                string ln = ls.ReadLine();
                // 読み込んだ一行をカンマ毎に分けて配列に格納する
                string[] lnvalues = ln.Split(',');
                //strに格納
                str.Add(lnvalues);

            }
            //CSVファイルを閉じる
            ls.Close();

            int c = 0;
            foreach (string[] l in str)
            {
                c++;
                //リスト[1]番目の文字数が0のとき、以降の処理がスキップする。ただしforeachは続く。
                //8行目から読み込み
                if (l[1].Length == 0 || c <= 7)
                {
                    continue;
                }

                TestItem.Add(l);

            }
        }
    }
}

このままだと、クラスを呼び出していないため、Form1の作成されるタイミングでクラスを呼び出します。
Form1を編集します。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace hatenaForm
{
    public partial class Form1 : Form
    {
        //クラス型の変数を作成 //追記
        CSVRead TestCSV = new CSVRead();
        public Form1()
        {
            InitializeComponent();
            //クラス型の変数名+クラスのメソッド名 //追記
            TestCSV.CsvRead01();
        }
        


        //ただ一つのフォームのインスタンスを保持するフィールド
        private static Form1 _instance;

        //ただ一つのフォームにアクセスするためのプロパティ
        public static Form1 Instance
        {
            get
            {
                //_instanceがnullまたは破棄されているときは、
                //新しくインスタンスを作成する
                if (_instance == null || _instance.IsDisposed)
                {
                    _instance = new Form1();
                }
                return _instance;
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Visible = false;
            Form2 form2 = new Form2(); 
            form2.ShowDialog();
            this.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //パターン2
            this.Hide();
            Form3.Instance.Show();
            Form5.Instance.ShowDialog();
            
        }
    }
}

クラス型の変数を定義し、クラス型の変数名でメソッドを呼び出します。
これで「CSVReadのCsvRead01」メソッドが動きます。

これだけだとCSVReadのCsvRead01を動かしただけなので、Form1に変数を用意し格納します。
Form1とCSVReadを編集します。
Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace hatenaForm
{
    public partial class Form1 : Form
    {
        //クラス型の変数を作成
        CSVRead TestCSV = new CSVRead();
        //CSVReadクラスから移動
        List<string[]> TestItem = new List<string[]>();
        public Form1()
        {
            InitializeComponent();
            //クラス型の変数名+クラスのメソッド名
            //引数にリスト型変数を指定
            TestCSV.CsvRead01(TestItem);
        }
        


        //ただ一つのフォームのインスタンスを保持するフィールド
        private static Form1 _instance;

        //ただ一つのフォームにアクセスするためのプロパティ
        public static Form1 Instance
        {
            get
            {
                //_instanceがnullまたは破棄されているときは、
                //新しくインスタンスを作成する
                if (_instance == null || _instance.IsDisposed)
                {
                    _instance = new Form1();
                }
                return _instance;
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Visible = false;
            Form2 form2 = new Form2(); 
            form2.ShowDialog();
            this.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //パターン2
            this.Hide();
            Form3.Instance.Show();
            Form5.Instance.ShowDialog();
            
        }
    }
}

CSVRead.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO; //追記
using System.Threading.Tasks;

namespace hatenaForm
{
    internal class CSVRead
    {
       
        public void CsvRead01(List<string[]> TestItem)
        {
            //リスト型の初期化と宣言
            List<string[]> str = new List<string[]>();
            //CSVを読み込みモードで開く,文字種はsjis,※代表的なものでいうとUTF-8
            StreamReader ls = new StreamReader(@".\Formchange.csv", Encoding.GetEncoding("sjis"));
            while (!ls.EndOfStream)
            {
                // CSVファイルの一行を読み込む
                string ln = ls.ReadLine();
                // 読み込んだ一行をカンマ毎に分けて配列に格納する
                string[] lnvalues = ln.Split(',');
                //strに格納
                str.Add(lnvalues);

            }
            //CSVファイルを閉じる
            ls.Close();

            int c = 0;
            foreach (string[] l in str)
            {
                c++;
                //リスト[1]番目の文字数が0のとき、以降の処理がスキップする。ただしforeachは続く。
                //8行目から読み込み
                if (l[1].Length == 0 || c <= 7)
                {
                    continue;
                }

                TestItem.Add(l);

            }
        }
    }
}

Form1にList型変数を宣言し、クラス型の変数のメソッドの引数に指定します。
Form1を読み込んだタイミングで、CSVファイルの読み込みクラスが呼び出され、List型変数に格納されました。

実装は以上になります。


またね。。。

CSVファイルとxlsxファイルのエクスポート


Excel忘備録#1

この間、CSVファイルとxlsxファイルのエクスポート機能を知りました。
DBファイルとしてcsv,xlsxを扱うにはあるあるかもですね。

では実装します。

エクセルを新しく開きます。
適当に3行くらい入力します。
1行目に「1,果物名,りんご」、2行目に「2,果物名,ばなな」、3行目に「3,果物名,みかん」と入力します。

エクセルに入力

3x3のマスができました。
CSVファイルにエクスポートします。

「ファイル」をクリックし、「エクスポート」を選択します。
ファイルの種類を変更します。

そこにCSVがありますので選択し、「名前をつけて保存」で完了です。

エクセル エクスポート画面

作成された、csvファイルをサクラエディタで確認すると、1行目に「1,果物名,りんご」、2行目に「2,果物名,ばなな」、3行目に「3,果物名,みかん」と保存されています。

CSVファイルをサクラエディタで開く

この方法でCSVファイルとxlsxファイルのエクスポートができます。
逆も可能です。csvファイルからxlsxファイルに変換できます。

開発系だとCSVファイル操作はあるのではないでしょうか。

またね。

Word 目次機能

Word 忘備録 #1

社会人になって初めてWordで資料を作りました。
Wordの使い方など全然知らなかったため、いい大人になってから恥をかきました。

動作環境
windows11 x64 word2022

Wordの目次の機能の使い方を紹介します。

Wordを開き、新規作成で白紙の状態にします。
一枚目は白紙を用意し、二枚目には例として上から「1 見出し1」「1.1 見出し2」「2 見出し1」「2.1 見出し2」「3見出し1」「3.1 見出し2」として入力します。
「見出し1」は見出し1に、「見出し2」は見出し2にします。

Word スタイル 見出し

上部メニュー「表示」を選択し、表示の欄の「ルーラー」と「ナビゲーションウィンドウ」をチェックします。

Word上部メニューの表示

白紙にカーソルを合わせます。
上部メニューの「参考資料」を選択し、目次をクリックします。
例として「自動作成の目次2」を選択します。

Word 参考資料 目次

一枚目の白紙に目次ができました。
この目次は、見出し1,見出し2のページを自動で改善してくれます。

試しに、「1 見出し1」「2 見出し1」「3 見出し1」毎にページの区切りをします。
「1.1見出し2」の最終行にカーソルを合わせ、上部メニューの「挿入」を選択し、ページの区切りをクリックします。
「2.1見出し2」も同様にページの区切りをします。

Word 挿入 ページ区切り

「1 見出し1」「2 見出し1」「3 見出し1」毎にページが区切られます。
目次を確認します。すると自動的に目次のページの変更されます。

Word 目次の完成

以上になります。
うまく組み合わせてください。

またね。

C# フォーム読み込み時別フォームを表示

C# 学習忘備録

フォーム2かフォーム3が表示されたら別フォームを上に重ねようか。
2つのパターンを紹介します。

※前回の続き
cemi6653.hatenablog.com


動作環境
Windows11 visualstudio2022 C# .net framework4.7.2 WindowsForm

事前準備
Form4とForm5を新しく追加します。
Form4とForm5はそれぞれボタンコントロールを一つ配置します。

方法
パターン1:読み込み時に表示

Form2デザインでForm2のプロパティを開き、イベントを選択。
※プロパティ画面の上側にある鍵マークの横の稲妻マーク。
イベントの動作「Shown」をダブルクリックします。

Formプロパティのイベント

Form2.csに書き込みます。

Form2.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace hatenaForm
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Visible = false;
            Form1 form1 = new Form1();
            form1.ShowDialog();
            this.Close();
        }

        private void Form2_Shown(object sender, EventArgs e)
        {
            Form4 form4 = new Form4();
            form4.ShowDialog();
        }
    }
}

Form4.cs クリックイベントで閉じるだけ。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace hatenaForm
{
    public partial class Form4 : Form
    {
        public Form4()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
フォームを閉じる場合は読み込み時に表示

Form2のLoadイベントだとフォームの生成前の話なのでForm4が表示されない。
Form4を生成されてからでないと、コンストラクタが使用できないためShownイベントを使用。
※後で、データの受け渡しをするときにShownじゃないと渡せなかったからShownにしています。


パターン2:Showを重ねがけ。一番上に表示させたフォームしか操作させたくないためShowDialog():を使用。

Form5.cs にフィールドを配置,ボタンクリックイベントでフォームを非表示
Form5.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace hatenaForm
{
    public partial class Form5 : Form
    {
        public Form5()
        {
            InitializeComponent();
        }

        //ただ一つのフォームのインスタンスを保持するフィールド
        private static Form5 _instance;

        //ただ一つのフォームにアクセスするためのプロパティ
        public static Form5 Instance
        {
            get
            {
                //_instanceがnullまたは破棄されているときは、
                //新しくインスタンスを作成する
                if (_instance == null || _instance.IsDisposed)
                {
                    _instance = new Form5();
                }
                return _instance;
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Hide();
            Form3.Instance.Show();
            
        }
    }
}

Form5をShowDialog表示する

Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace hatenaForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //ただ一つのフォームのインスタンスを保持するフィールド
        private static Form1 _instance;

        //ただ一つのフォームにアクセスするためのプロパティ
        public static Form1 Instance
        {
            get
            {
                //_instanceがnullまたは破棄されているときは、
                //新しくインスタンスを作成する
                if (_instance == null || _instance.IsDisposed)
                {
                    _instance = new Form1();
                }
                return _instance;
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            this.Visible = false;
            Form2 form2 = new Form2(); 
            form2.ShowDialog();
            this.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //パターン2
            this.Hide();
            Form3.Instance.Show();
            Form5.Instance.ShowDialog();
            
        }
    }
}
フォームを順番に表示させるだけ。


以上になります。
参考になればいいかなと思います。
まだまだ駆け出しなのでもっときれいにソースコードをかけるようにしなければ。。

またね。

C# Formの画面遷移 見せ方

C#の忘備録
組み込み系でね、画面構築をしたときに少し苦戦したから残します。

動作環境
windows11 64bit visualstudio2022 コミュニティ .net framework4.7.2 WindowsForm

以下の2つをご紹介します。
・Formを作成、削除の場合(closeで閉じる場合)
・FormをShowとhideで表示非表示

まず、「プロジェクト名」を右クリックでメニューを出し、「追加」で「フォーム」を選択。

visualstudio2022 フォームの追加

フォームを2つ作成します。※デフォで「Form2.cs」Form2はパターン1用、Form3はパターン2用
Form1デザイナーでボタンコントロールを2つ、Form2,Form3のデザイナーでボタンコントロールを一つずつ配置します。

配置は、デザイナー画面左側にあるのツールボックスのbuttonを選択し、Formデザイン内にドラッグ&ドロップ(掴んで離す)

ボタンコントロール追加


ちなみにコントロールの詳細はコントロール選択後にプロパティで表示。

コントロールのプロパティ

コントロールの名前を変えることは多い。プロパティのTextにデフォでbottun1と入力されているので変更すれば画面上の文字表示が変わります。
※ここでは詳細は説明しないので色々触ってみて。

Form1のボタンコントロールをダブルクリックでクリックイベント時のコードを表示、書き込みます。

ボタンコントロールをダブルクリック

パターン1:Showで開き、クローズで閉じる(毎回新しくフォームを作っている)
Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace hatenaForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Visible = false;
            Form2 form2 = new Form2(); 
            form2.ShowDialog();
            this.Close();
        }
    }
}

同じく、Form2に書き込みます。

Form2.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace hatenaForm
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Visible = false;
            Form1 form1 = new Form1();
            form1.ShowDialog();
            this.Close();
        }
    }
}

this.Visible = false;で現在のフォームを非表示にします。
フォームを生成します。
ShowもしくはShowDialogで表示します。
this.Closeで現在のフォームを閉じます。

パターン1:完了。


パターン2:フォームをshowとHideで使い分け。
※こちらのほうが業務上多く使います。(個人の実践値)
フィールドでインスタンス情報を保持(Form情報)条件分岐でFormがあったら作成するし、なかったら作成しない

Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace hatenaForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //ただ一つのフォームのインスタンスを保持するフィールド
        private static Form1 _instance;

        //ただ一つのフォームにアクセスするためのプロパティ
        public static Form1 Instance
        {
            get
            {
                //_instanceがnullまたは破棄されているときは、
                //新しくインスタンスを作成する
                if (_instance == null || _instance.IsDisposed)
                {
                    _instance = new Form1();
                }
                return _instance;
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            this.Visible = false;
            Form2 form2 = new Form2(); 
            form2.ShowDialog();
            this.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //パターン2
            Form3.Instance.Show();
            this.Hide();
        }
    }
}

フィールドを配置

Form3.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace hatenaForm
{
    public partial class Form3 : Form
    {
        public Form3()
        {
            InitializeComponent();
        }
        //ただ一つのフォームのインスタンスを保持するフィールド
        private static Form3 _instance;

        //ただ一つのフォームにアクセスするためのプロパティ
        public static Form3 Instance
        {
            get
            {
                //_instanceがnullまたは破棄されているときは、
                //新しくインスタンスを作成する
                if (_instance == null || _instance.IsDisposed)
                {
                    _instance = new Form3();
                }
                return _instance;
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //パターン2
            Form1.Instance.Show();
            this.Hide();
        }
    }

Showで指定しているフォームを表示します。
this.Hideで現在のフォームを非表示にします。

dobon.netを参考にしました。
動かしてみてください。

パチスロ鉄拳5を打ってみた。

この間の忘備録です。

つい先日、しょうもないド平日に名機「パチスロ 鉄拳2nd」に似ていると言われている「鉄拳5」を打ちに行きました。
結論から言うと、いい意味でも悪い意味でも鉄拳2ndに似ているなと思いました。

鉄拳5(AT中の逆押しナビ時そのまま揃う)

僕は導入からまだ3回しか打っていませんが、数回打てば設定はわかりやすい機種だと思います。(上は打ったことがありません。)

やっぱり魅力は鉄拳アタックではないでしょうか。

鉄拳アタック

あぁ~。うつくしいですね~。※Apex シア

では簡単にまとめます。

まず、ベースは1K33回転くらい。
※レア役はチェリだけ狙えばフリー打ち(チェリー3枚、スイカチャンス目11枚)
※通常時は左から押すこと、ペナルティを喰らいます。

AT3種類ありますが、ポール?のやつは
中押し逆押しで全てのレア役をベルで隠し、最終ゲームでいくつ乗ったかをジャッジします。
普通にシャオユウとキングがおもろい。。

下の挙動の整理。。
■下の挙動
イカが重い(1/130くらい)※1以下
低確中の強役(チャ目、強チェ)のAT抽選が空気(1/10を下回る)※1以下
※高確中はボナ連打や強役をバンバン引いてやっと入る。
ボーナスがおかしいくらい重い(平均1/400くらい)※1以下
特定ボーナスに騙される。(チャンス目+ボーナス,スイカ+ボーナス)
※体感はマド2の特定ボーナスの感覚(チャンス目+異色,スイカ+赤同色)
AT,ボーナス終了画面ほぼデフォ(体感8割はデフォ画面)

■この台を打つポイント
たしか、有利区間の移行のタイミングはリセ時、AT終了時、ボーナス終了時32ゲーム後になっています。
鉄拳ラッシュとボーナスのダブル抽選をしているはずなので、ボーナス後は必ず鉄拳ゾーンに行きます。重複時のレア役の前兆です。
リリ「ARTとボーナスのダブル抽選、今どき当然ですわ。」※鉄拳2nd

■AT中伸ばすポイント
・エクストラのゲーム数をなんとしてでも増やす。
・赤七ボーナスで2回以上の青七揃いをする(1/40くらいのため)
※通常時、1回目AT確定、2回目Exstra上乗せ、3回目デビルラッシュ
・鉄拳バトル中はベル以上で自力で書き換える
・AT中のハズレ50%の振り分けに勝つ(左下のアイコンを早く鉄拳王にするため)

■爆発景気
・エクストラ中のビック以上(鉄拳アタック確定)
・平八特化中にレグ(コンボが繋がるため、エクストラゲーム上乗せがおかしくなる)
※オーガチャレンジみたいな待機時間(3,2,1)のときのレグでもOK
・レグ中の1.2%のクライマックスバトルに勝利し無限AT(50%)
・ケロットモードでのAT当選※殆ど見ないし、バトルに中々入らずにボーナスを引いて有利区間が変わり、モードが落ちる。
・デビルラッシュ(レグ中の中チェ、鉄拳チャンス中の中チェ、フリーズ、エピソードボーナスの一部(カズミ))


忘備録としては、特殊なケースが有りました。
■ATあたったときに平八特化がついてきた。ボナ中の青七揃いからの当選時

平八特化ゾーン

■エクストラ中ではないのに、逆押しカットイン青七揃い。そのままボーナス。

AT中のカットイン時(エクストラ外)

■通常時に単独赤七を引きそのまま鉄拳アタック(天井60ゲーム前、もしかしたら鉄拳アタックのモードに居たかも)
謎鉄拳アタック→赤七を引いた後に、鉄拳アタックか普通のボーナスかみたいな演出が入り鉄拳アタックになった。※赤七鉄拳アタックのため少し乗った。

■通常時中の中段チェリーのエピソードボーナス(平八特化)
弱チェの前兆中に来るもんだからびっくりしました。


上でも出ないときは出ないし、下でも意外と伸びる要素もあって個人的には好きの部類です。

計3回、7000~10000ゲームくらい回しました。
下にもかかわらず引きが強ければ、全然伸びます。

投資が7万、回収が4万。
早く3万を取り返したいですね。。the 養分。

あっちなみに鉄拳5の低設定を打つなら引きが弱い日はすぐに撤退しましょう。。
天井前ボーナス、天井前ボーナス2連単で40.5K~50.0Kは平気で持っていかれます。

またね。