Enjoy programming more!
Kidspod is a post site which supports young programmers.
First step to join us.
Register as a member
For members

2017/03/12 19:32:09

MixJuice GET URL : kidspod.club/mj/167

ANAGMA A型

このプログラムは、PCNこどもプロコン2016冬に応募して「上坂会計グループ賞」を受賞した「ANAGMA」の改良版です。

~~主な新機能~~
・暗号化モード時のカタカナ、小文字のアルファベット、オリジナルキャラクター、その他図形の入力の無効化

操作方法(必読)
ANAGMAをスタートさせると、画面中央に「 <<ANAGMA>> 」という文字が表示されます。
1>画面上部に、「MODE CHOICE」と表示されます。
「ENCODE:1」と、「DECODE:2」という文字が表示されます。
1を押すと『暗号化モード』になり、2を押すと『復号化モード』になります。
2>画面上部に「PLEASE INPUT 12 DIGIT CODEKEY」と表示されて、
その下に「<4 DIGIT x3>」と表示されます。
そして、画面中央に「?」と、カーソルが表示されます。
そこに、あらかじめ決めておいた12桁のキーコード(0は使わないこと)を例のように入力します。入力したら、準備OKです。
   (例)「123456789123」の場合

       ?1234
       ?5678
       ?9123

3>画面上部に「INPUT:」、画面中央に「OUTPUT:」と表示されます。
『暗号化モード』のときに平文(読める文章)を入れると、「OUTPUT:」の下に暗号文が出てきます。
『復号化モード』のときに暗号文を入れると、「OUTPUT:」の下に平文が出てきます。
バックスペースを押すと、どちらのモードでも文字を消去することができます。
4>使える文字・編集機能
使用できる文字は、大文字のアルファベットと数字と、キーボードに書いてある記号(&、!等)、矢印記号(↑、↓、→、←)が、それぞれのキーを押すと表示されます。
スペースとバックスペースも使えます。
5>その他
ちなみに、カタカナや小文字のアルファベット、イチゴジャムオリジナルのキャラクターは、暗号化するときに使うと、キーボードで入力できない記号が含まれている暗号文になってしまうので、入力できないようになっています。
ちなみに、ANAGMAでは「F10」キーを押すと、アンダーバー(_)を表示できるようにしました。
また「Delete」キーを押すと、ANAGMAが再起動します。
プログラムの400行目を少し変えると、暗号をもっと複雑にすることができます。

※復号してみて下さい!
キーコード: 5264 6463 5322
暗号文  : MGRPU%

これからは、ANAGMAの新機能を公開していきたいと思います。
コメント・フォローお願いします!

  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

SOURCE CODE

1 'ANAGMA-A
2 CLS:CLV
3 LC10,12:?"<<ANAGMA>>":WAIT60
14 CLS:LC10,1:?"MODE CHOICE":LC11,7:?"ENCODE: 1":LC11,9:?"DECODE: 2"
16 K=INKEY():IFK=49Q=1:GOTO20ELSEIFK=50Q=2:GOTO20
18 GOTO16
20 CLS:CLK:W=0:LC1,2:?"PLEASE INPUT 12 DIGIT CODEKEY"
22 LC10,4:?"<4 DIGIT x3>"
25 FORG=0TO2
30 LC12,12+2*G:INPUTN:IF N>9999ORN<1000GOTO30
40 A=4*G:GSB400:NEXT
140 CLS:LC0,0:?"INPUT:":LC0,12:?"OUTPUT:"
160 K=INKEY():CLK:IF K=0 GOTO160
162 IF K=8ORK=10 GOTO170
163 IF K=24 GOTO170
164 IF K<27ORK>127 GOTO160
170 IF K=24POKE#AA0+I,95+(Q=1)*[W]-(Q=2)*[W]:POKE#920+I,95:GOTO330
173 IF K=127 RUN
176 IF K=10 POKE#920+I,10:POKE#AA0+I,10:GOTO330
178 IF K<>8GOTO190
180 IF I=0POKE#920,0:POKE#AA0,0:GOTO160
182 IF W>-1&&I>-1I=I-1:W=W-1:POKE#920+I,0:POKE#AA0+I,0:GOTO160
184 IF W<0W=11:GOTO182
186 IF I<0GOTO160
190 IF W<0W=11
200 POKE#920+I,K
320 POKE#AA0+I,K+(Q=1)*[W]-(Q=2)*[W]
330 I=I+1:W=W+1:IF W=12W=0
350 IF I=320 I=0
360 GOTO160
400 [A]=N/1000:[A+1]=(N%1000)/100:[A+2]=((N%1000)%100)/10:[A+3]=((N%1000)%100)%10:RTN

COMMENT

Kidspod運営チーム
Kidspod運営チーム2017/04/18 19:58:13

簡単に見破れない暗号をいとも簡単に作れてしまうのがすごい! ENIGMAに対するANAGMAという名前も素敵ですね。新機能も楽しみです。