プログラミング食堂

プログラミング食堂

プログラミング初心者・中高生向けにプログラミング・IT・IPA国家試験などの情報を発信します!自作フローチャートを無償で公開・配布しています!

MENU

お品書き(トップ)

プログラミング食堂へようこそ!

この食堂では、自作フローチャートを無償で公開・配布したり、プログラミングの基礎講座など、プログラミングに関するプロジェクトを遂行していきます!

 

f:id:TBSten:20210313165539p:plain

 

 お品書き 

記事を上げてしばらくしたらこちらに載せます。

最新情報はこちらを見てね!

tbsten.hatenablog.com

 

フローチャート

 ゲーム

 アルゴリズム

 

 使い方・利用規約 

フローチャートセットの使い方です。

tbsten.hatenablog.com

 

 フローチャートなどを利用するときは利用規約を必ず確認してください!

tbsten.hatenablog.com

 

 

 クレジット 

 お世話になっているソフトやサイトは下のリンクから!

tbsten.hatenablog.com

 

 

 

 

 

【フローチャート】マンカラ

f:id:TBSten:20210413003530p:plain

今回は世界最古のボードゲームの一つである「マンカラ」を作りました!

昔何かの大会の流れ図でチェスのクイーン問題(?)が出されたのを思い出して、ボードゲームでネタ探ししていたらちょうどいいお題を見つけました。余りの使い方がキモになる流れ図に仕上がりました!

ちなみにマンカラのルールは世界に100種類以上あるといわれています。ここで取り扱っていないルールを調べて、問題に加えてみるのも面白いと思いますよ!

【流れ図】

フローチャートセット

↓↓↓下のリンクからダウンロード↓↓↓
Mankara.zip - Google ドライブ


コメント

世界最古のボードゲームの一つであるマンカラですがルールによっては、

  • 左右両側のマスの数字が多いほうが勝ち
  • 振り分ける時に左右両側が最後だと、もう一度選んで振り分けができる
  • 時計回りではなく反時計回り

など、様々なルールがあります。

アドバイス

問題としても改造するにしても、上に挙げたようなルールを追加することができると思いますよ。

フローチャートセットについて

この記事ではフローチャートを掲載するだけでなく、実際にゲームとして遊べるように、Java言語で作成したプログラムを、フローチャートの画像とともに配布しています。記事のリンクをクリックするとGoogleドライブが開くので、画面上側(たぶん)のダウンロードボタンを押してダウンロードしてください。ゲームの起動方法などはReadMe.txtファイルを参照してください。利用規約については以下ページをご覧ください。

当ブログが配布するコンテンツの利用規約について - プログラミング食堂

何か質問があればコメントや連絡してください!

今日の余談

これから他のボードゲームフローチャートも作ってみたいですが、カードゲームなんかも作ってみたいなーって思っています。

作成者

TBSten(当記事管理者)

この記事が参考になったらぜひ高評価☆よろしくお願いします!

【フローチャート】組み合わせ問題

f:id:TBSten:20210410232953p:plain

今回は組み合わせ問題を作りました!

とある遊園地での出来事、「どのアトラクションに乗ればいいかが分かんない!」今回のプログラムはそんなときに使うプログラムです(意味不明)。

与えられたものの中からいくつか取り出し、条件にあう最適なものを取り出す、といった処理になっています。そのために全パターンを試していくといった処理があります。

【流れ図】

フローチャートセット

↓↓↓下のリンクからダウンロード↓↓↓
Amusement.zip - Google ドライブ


コメント

全ての組み合わせを試していくという処理は実は2種類の方法で実装できます。関数の再帰を利用した方法(今回はこちら)と、繰り返しをめちゃくちゃ使う方法です。後者は繰り返しが何重にもなるので、前者の方が優れた方法といえそうです。

ある日似たような問題を考えた時に、自分ははじめ繰り返しを何重にも重ねる方法しか思いつきませんでした笑笑。地獄の10重ループは今でも覚えています。。。

アドバイス

問題にするには結構な良問なんじゃないでしょうか。例えば問題中には「maxHappinessという配列の中の数を合計する」といった、変数・配列の名前には沿わない処理が出てきたり、組み合わせを求めるためのloop関数の引数は要チェックです。ぜひ参考にどうぞ!!

フローチャートセットについて

この記事ではフローチャートを掲載するだけでなく、実際にゲームとして遊べるように、Java言語で作成したプログラムを、フローチャートの画像とともに配布しています。記事のリンクをクリックするとGoogleドライブが開くので、画面上側(たぶん)のダウンロードボタンを押してダウンロードしてください。ゲームの起動方法などはReadMe.txtファイルを参照してください。利用規約については以下ページをご覧ください。

当ブログが配布するコンテンツの利用規約について - プログラミング食堂

何か質問があればコメントや連絡してください!

今日の余談

高校時代、先生にJavaで全組み合わせを求める問題を出されたことがあって、下みたいにただひたすらにfor文を重ねてたのを覚えています。

for(int a = 0;a < 10;a++){
  for(int b = 0;b < 10;b++){
    for(int c = 0;c < 10;c++){
      for(int d = 0;d < 10;d++){
        for(int e = 0;e < 10;e++){
          : : :
          : : :
          : : :
        }
      }
    }
  }
}

こんな読みにくいコード、皆さんは書かないようにしてくださいね。。。笑

作成者

TBSten(当記事管理者)

この記事が参考になったらぜひ高評価☆よろしくお願いします!

フローチャートセットがアップデートされました!

今回、フローチャートセットをより使いやすくするために、大幅に変更を加えました!

f:id:TBSten:20210401210859p:plain
新しいフローチャートセット

具体的には

  • 一部のファイルの名前を「flow」に

  • 全てにナビゲーションページ「ステーション.html」を追加

新コンテンツ「ステーション.html」は、HTML形式(ダブルクリックするとブラウザで閲覧できる)ファイルです。

フローチャートセットの実行の仕方や改造方法などを解説しています。

またソースコードの内容は特に変わっていません。

今後、過去に投稿した「使い方」の記事もこのバージョンに合わせていくので少々お待ちください。

まずはご報告までに。

【フローチャート】【ヨビノリ】ダイクストラのアルゴリズム

f:id:TBSten:20210331022231p:plain

今回はダイクストラアルゴリズムです!

今回が初の有名アルゴリズム編です!第1回は経路探索のアルゴリズムダイクストラアルゴリズムです!場所の情報から最適な経路を探すことができるアルゴリズムです!

今回は以下の動画を参考にさせていただきました!

youtu.be

ディズニーランドなんて聞いたことないですね、勉強になりました(すっとぼけ)!

問題中のアルゴリズムの手順については上の動画内の手順を引用させていただいたので、内容にまず間違いありません!笑(タイピングミス以外...)

「予備校のノリで学ぶ「大学の数学・物理」」略してヨビノリさんから使用許可もいただきました!本当にありがとうございます!!!

【流れ図】

フローチャートセット

↓↓↓下のリンクからダウンロード↓↓↓

Dijkstra.zip - Google ドライブ


コメント

フローチャートとしては過去最短の短さになっていますが、配列の添え字や繰り返し条件など、問題として穴にできる部分はとても多く作る人によっては良質な問題になるとおもいます。さすが有名アルゴリズム!やっぱ、先人の知恵は借りるものですね!笑

アドバイス

配列の添え字や最小を探すアルゴリズムの部分など問題にしやすい、かつ良質な問題になるという素晴らしいアルゴリズムになっています(作者の主観)。

地図データの入力方法は、よくダイクストラアルゴリズムの解説にあるような「〇〇[a][b]は aとb間の距離を示す」のパターンではないので、そっちパターンで作ってみるのもいいかも!

フローチャートセットについて

この記事ではフローチャートを掲載するだけでなく、実際にゲームとして遊べるように、Java言語で作成したプログラムを、フローチャートの画像とともに配布しています。記事のリンクをクリックするとGoogleドライブが開くので、画面上側(たぶん)のダウンロードボタンを押してダウンロードしてください。ゲームの起動方法などはReadMe.txtファイルを参照してください。利用規約については以下ページをご覧ください。

当ブログが配布するコンテンツの利用規約について - プログラミング食堂

何か質問があればコメントや連絡してください!

今日の余談

ダイクストラアルゴリズムGoogleマップにも使われていたりして、結構有名なので流れ図くらいググったら出てこないかなーって心配していましたが、全然ありませんでした!各言語で実装されたのはあるんですけど、フローチャートとなるとなぜか激減しました。

最後に、ヨビノリさん、お忙しい中、本当にありがとうございました!

作成者

TBSten(当記事管理者)

この記事が参考になったらぜひ高評価☆よろしくお願いします!

ヨビノリさんのチャンネルを登録していない人はチャンネルチャンネル登録お願いします! www.youtube.com

フローチャートセットの使い方3---ブログの記事の活用---

今回はフローチャート公開時のブログの記事のページについて説明します。

f:id:TBSten:20210331024216p:plain

フローチャート配布時の概要

docs.google.com

記事の全体構造

プログラミング食堂では原則以下の項目が上から順にフローチャートの記事が配信されます。

  1. 概要
  2. フローチャートセットのリンク
  3. コメント
  4. アドバイス
  5. フローチャートセットについて
  6. 今日の余談

概要では各々のフローチャートの説明などが書いてあります。

f:id:TBSten:20210320202650p:plain
Google Chromeで画像をダウンロードする

f:id:TBSten:20210320202654p:plain
Google Chromeで画像をダウンロードする

フローチャートセットのリンクには、フローチャートセットがあるGoogleDriveへのリンクがあります。以下の記事を参考にフローチャートセットをダウンロードしてみてください!

tbsten.hatenablog.com

コメントには作者の作ってみた感想や注意点などが書いてあります。

アドバイスには、フローチャートを改造する上でのポイントやアイデアが書いてあったり、問題として穴を作るときにポイントになる事が書いてあります。ぜひ参考にして問題を作ったり、改造してみてください!!!

フローチャートセットについてには利用規約などが書いてあるページへのリンクがあります。利用する前に確認して下さい。

今日の余談には作者のどうでもいいことが書かれています。暇な人は読んでみてください!

【フローチャート】もぐらたたき

f:id:TBSten:20210331022718p:plain

今回はもぐらたたきを作りました!

今回、流れ図はシンプルですが、新たな試みを二つ試してみました。

  • マウス入力
  • 2次元配列を使わない(1次元配列を使った)マップの管理

今まではキーボード入力のみを対象にゲームを組んでいたのですが、マウス入力を導入しました。キーボード入力と違って応用するとスマホアプリにもアルゴリズムが生かせるのがいいですよね!

「2次元配列を使わない(1次元配列を使った)マップの管理」というのが分かりにくいと思うので説明しますね。

いままでは初めに2次元配列を用意してそれをマップに見立ててキャラクターが移動したら2次元配列の値を更新するといった方法でキャラクターを管理していました。

こうすることで、座標を指定すればすぐにわかります。(例えば3,7の位置にいるキャラは"配列[3][7]"を見ればわかります)

f:id:TBSten:20210320193014p:plain

この方法ではキャラクターの位置が直感的に分かりやすいですが、座標の範囲が大きい場合には、配列がとても多きくなってしまいます。これはコンピュータに負荷をかけすぎてしまい、処理が遅くなってしまいます。

(例えば画面が1000×500で構成されているときは1000×500=50万個の要素がいります。)

今回は、キャラクターのデータの一覧である1次元配列(フローチャート中ではmogura)を用意して、キャラクターの情報が変わったら対応するキャラクターの配列内の要素を書き換えるといった方法で管理しています。

f:id:TBSten:20210320193017p:plain

この方法で管理すればどれだけ座標の範囲がが大きかったとしても影響は少ないです。

そのかわりこの方法では保持するキャラクターの数が大きくなると処理が遅くなってしまいます。キャラクターの数が多いときは2次元配列を使う方法、座標の範囲が広いときは1次元配列をたくさん使う方法を用いるなど柔軟にプログラムが組めるようにしましょう!


(かなり前置きが長くなりました)


【流れ図】

フローチャートセット

↓↓↓下のリンクからダウンロード↓↓↓

Moguratataki.zip - Google ドライブ


コメント

今回、1次元配列で管理する方法を実装するためにJavaプログラムについて変更・追加したところがあります。Javaでの改造をされている方はご注意下さい。

アドバイス

問題にする上では、変数「s」などあえて問題中の説明がない・または少ないところが、いくつかあるのでそこを問題にすることで満点阻止が狙えると思います。

改造する上では、モグラが移動するときに重ならないようにしたり、モグラにHPを設定して、数回たたかないと倒されないモグラを作ってみたりすると面白いと思います。

フローチャートセットについて

この記事ではフローチャートを掲載するだけでなく、実際にゲームとして遊べるように、Java言語で作成したプログラムを、フローチャートの画像とともに配布しています。記事のリンクをクリックするとGoogleドライブが開くので、画面上側(たぶん)のダウンロードボタンを押してダウンロードしてください。ゲームの起動方法などはReadMe.txtファイルを参照してください。利用規約については以下ページをご覧ください。

当ブログが配布するコンテンツの利用規約について - プログラミング食堂

何か質問があればコメントや連絡してください!

今日の余談

今回のプログラムは元々は最近はやりのTPSシューティングゲームみたいなのにしようと思っていたのですが、気づいたらモグラたたきになっていました笑笑。もうそろそろゲームだけじゃなくてアルゴリズムフローチャートも作っていきたいと思っています!何かリクエストがあればぜひ教えてください!

作成者

TBSten(当記事管理者)

この記事が参考になったらぜひ高評価☆よろしくお願いします!

公式LINEができました!

公式LINEができました!

f:id:TBSten:20210331024302p:plain

公式LINEでは、LINE限定の「ランダムフローチャート」を用意していたり、不定期でこの食堂のお知らせを発信したりします!

下のボタンから友達になってください!

友だち追加

今日の余談

作るのが思ったよりも難しくなかったので、今後どこかでLINEチャットボットの作り方を紹介したいなーと思っています。