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

2017/04/05 21:25:02

MixJuice GET URL : kidspod.club/mj/180

ANAGMA 初期型(2016冬プロコン仕様)

このプログラムは、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
2 CLS:CLV
3 WAIT70:LC11,11:?"<<";:WAIT10:?"A";:WAIT10:?"N";:WAIT10:?"A";:WAIT10:?"G";:WAIT10:?"M";:WAIT10:?"A";:WAIT10:?">>":WAIT70
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:IFN>9999ORN<1000GOTO30
40 A=4*G:GSB400:NEXT
140 CLS:LC0,0:?"INPUT:":LC0,12:?"OUTPUT:"
160 K=INKEY():CLK:IFK=0ORK=10ORK=9GOTO160
170 IFK=24POKE#AA0+I,95+(Q=1)*[W]-(Q=2)*[W]:POKE#920+I,95:GOTO330
175 IFK=127RUN
178 IFK<>8GOTO190
180 IFI=0POKE#920,0:POKE#AA0,0:GOTO160
182 IFW>-1&&I>-1I=I-1:W=W-1:POKE#920+I,0:POKE#AA0+I,0:GOTO160
184 IFW<0W=11:GOTO182
186 IFI<0GOTO160
190 IFW<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:IFW=12W=0
350 IFI=320I=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