【Scratch】秘密のお手紙作り!スクラッチで暗号文を書こう!

上のアイキャッチ画像はAIによって生成されました。

友達ともだちと手紙のやりとり、楽しいですよね!

でも、もし手紙を落としてしまったり、だれかに見られてしまったら一大事…!

特に好きな人のことや、なやみなんか、絶対ぜったいに見られたくないですよね。

そこで、この記事ではScratchを使って「暗号文を作ったりもどしたりするプログラム」の作り方を紹介しょうかいします。

このプログラムがあれば、手紙の内容ないようをだれにも読めない秘密ひみつの言葉に変えることができます。

秘密ひみつの言葉で手紙を書けば、安心して大切な話もできますね!

 

このプログラムを使って、人の悪口を書いたり、いじめをしたりするのは絶対ぜったいにダメ!
約束してくださいね。

 

Scratchはインターネットにつながるパソコンから無料で利用できます。

Scratch公式サイト: https://scratch.mit.edu/

Scratchのアカウントの作り方と基本的な使い方は、下の記事で紹介しょうかいしています。

 

スポンサーリンク

2つのリストを使って暗号文を作る

2つのリストを使って暗号文を作る

暗号文を作る方法はいろいろありますが、今回は2つのリストを使った方法紹介しょうかいします。

あいうえお順にならんだ「かなリスト」と、順番がバラバラな「カナリスト」を作り、対応たいおうする文字に変える仕組みです。

 

完成プログラム

完成したソースコードは下の通りです。

暗号にするプログラム

暗号にするプログラム

ひらがなで文字列(ならんだ文字の集まり)を入力すると、暗号にしてくれるプログラムです。

ひらがな以外の文字はそのまま出力されます。

 

暗号をもどすプログラム

暗号をもどすプログラム

暗号文を元にもどせないと意味がありませんね。

カタカナで暗号文を入力すると、もとの文字列にもどしてくれるプログラムも作ります。

 

リストから文字を探すプログラム

リスト検索(ブロック定義)

リストから文字をさがすプログラム。ブロック定義ていぎにしなくてもOKです。

 

スポンサーリンク

プログラム解説

このプログラムは、変数リストブロック定義ていぎを使います。

  • 変 数:データを一時的に覚えておくための入れ物
  • リスト:たくさんのデータを順番にならべ管理できるようにしたもの
  • ブロック定義ていぎ:ある処理しょりをまとめたもの

 

下の記事でくわしく解説かいせつしています。使い方がよく分からない人は読んでみてくださいね。

 

スプライトを準備する

スプライトをひとつ準備じゅんびします。

暗号をもどすプログラムは、暗号にするプログラムを作ってからスプライトをコピーして作るので、最初はひとつでOKです。

スプライトの見た目や背景はいけいは好きなモノを選んでください。

 

変数・リスト・ブロック定義を作成

変数・リスト・ブロック定義

必要な変数・リスト・ブロック定義ていぎを作成します。

 

変数

変数カテゴリ→「変数を作る」から、変数を4つ作ります。

  • 入力:入力した文字列
  • 出力:出力する文字列
  • in:入力した文字列の何番目の文字か
  • list:リストの何番目か

 

リスト

変数カテゴリ→「リストを作る」から、リスト2つを作ります。

  • かなリスト:あいうえお順にならんでいる
  • カナリスト:順番がバラバラになっている

メモ帳などにデータを作ってから読み込むと、楽ですよ。

 

ブロック定義

ブロック定義ていぎも2つ用意します。

ブロック定義ていぎカテゴリ→「ブロックを作る」で作れます。

  • かなリスト検索けんさく
  • カナリスト検索けんさく

中の処理しょりは、後で解説かいせつします。

 

暗号にするプログラム

暗号にするプログラム解説

スプライトをクリックした時に、実行します。「このスプライトがされたとき」を出しましょう。

「(出力)を( )にする」で、変数「出力」を初期化します。

「(暗号に変換へんかんしたい文字列を入力してください)と聞いて待つ」「(入力)を(答え)にする」で、入力された文字列を変数「入力」に格納かくのうします。

入力した文字列を1文字ずつ取り出して、かなリストにあるか検索けんさくします。

「(in)を(1)にする」で、変数「in」の初期設定せっていします。1文字目から順番にみるので、初期は1です。

「(入力の長さ)回かえす」で、入力した文字数分くり返しましょう。

ブロック定義ていぎ「かなリスト検索けんさくで、かなリストの何番目の文字か検索けんさくします。変数「list」には、かなリストの何番目か格納かくのうされます。

 

かなリストにあった場合と、なかった場合で処理しょりを分けます。

「もし (list) > かなの長さ なら」の中には、リストになかった場合処理しょりを入れます。

「(出力)を(出力と入力のin番目ばんめの文字)にする」で入力した文字をそのまま出力しましょう。

「でなければ」の中には、リストにあった場合処理しょりを入れます。

「(出力)を(出力とカナのlist番目ばんめの文字)にする」で、カナリストの対応たいおうする文字を出力しましょう。

「(in)を(1)ずつ変える」で、入力した文字列の次の文字をみるようにし、くり返しの最初の処理しょりへもどります。

 

くり返しをぬけたら「(出力)と(5)秒言う」変換へんかん後の文字列を表示ひょうじしましょう。

 

かなリスト検索

かなリスト検索解説

入力した文字が、かなリストの何番目の文字か検索けんさくするブロック定義ていぎを作ります。

「(list)を(1)にする」で変数「list」の初期設定せっていします。1番目の要素ようそから順番にみるので、初期は1です。

以下の条件じょうけんをどちらか満たすまで「(list)を(1)ずつ変える」を実行します。

  • 入力のin番目ばんめの文字 = かなのlist番目ばんめ → リストにあった
  • list > かなの長さ → 最後までみたけれどリストになかった

 

暗号をもどすプログラム

暗号にするプログラムでは、入力した文字がかなリストの何番目の文字かさがし、対応たいおうするカナリストの文字に変換へんかんしました。

暗号をもどすプログラムではそのぎゃくを行います。

    • 暗号にする :かな → カナ
    • 暗号をもどす:カナ → かな

暗号にするプログラムのスプライトをコピーして、どこを直せばいいか自分で考えてみてくださいね。

 

まとめ

「暗号文を作ったりもどしたりするプログラム」の作り方を紹介しょうかいしました。

約束を守って、みんなと仲良く楽しい手紙の交換こうかんを楽しんでくださいね!

 

タイトルとURLをコピーしました