
##########################################################
###       Decrypt a message——liyu  2021-12-04            #
##########################################################


# Task 2(1)----------------------------------------------------------------------


#Create Polybius matrix
Polybius<-matrix(c(NA, "Z", "M", "D", NA, "K", "W", "Q", NA, "G",
                   "V", NA, "A", NA, "R", NA, "E", NA, "T", "O",
                   NA, "J", "I", "S", "B", "P", "Y", NA, "F", NA,
                   "L", NA, NA, "C", NA, "U", "H", "N", NA, "X"),
                 ncol = 10, byrow = T)

#Define row names  as rownames
# rownames(Polybius)<-c("0", "1", "2", "3")
rownames(Polybius)<-c(0:3)
#Define column names as colnames
# colnames(Polybius)<-c("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
colnames(Polybius)<-c(0:9)
#Show Polybius matrix
Polybius


# get the message ----------------------------------------------------------------------

# create the letter table

lettersTable <- matrix(NA,nrow = 26,ncol = 2)
k =0
for (i in 1:10){
  for (j in 1:4){
     if (!is.na(Polybius[j,i])){
       k = k + 1
       lettersTable[k,1] = Polybius[j,i]
       lettersTable[k,2] = paste(as.character(j-1),as.character(i-1),sep = "")
     }
  }
}


key <- "24160 63616 14162 61935 14163 71602 26222 33719 18008"
key <- gsub(" ","",key)
nchar(key)
for (i in 1:nrow(lettersTable)){
  key <- gsub(lettersTable[i,2],lettersTable[i,1],key)
}

message1 <- gsub("\\d+","",key)
message1


# END ---------------------------------------------------------------------
