# creat matrix Polybius
col1<-c(NA, "Z", "M", "D", NA, "K", "W", "Q", NA, "G")
col2<-c("V", NA, "A", NA, "R", NA, "E", NA, "T", "O")
col3<-c(NA, "J", "I", "S", "B", "P", "Y", NA, "F", NA)
col4<-c("L", NA, NA, "C", NA, "U", "H", "N", NA, "X")
Polybius<-rbind(col1,col2,col3,col4)
rownames(Polybius)<-c(0, 1, 2, 3)
colnames(Polybius)<-c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
# display matrix
Polybius

#convert the message into a vector of individual characters£¬
#Display the encrypted message as a vector ciphertext
message<-"CAPTURETHEHILL"
m<-nchar(message)
x<-NULL
y<-NULL
ciphertext<-NULL
for(i in 1:m){
  x[i]<-substring(message,i,i)
  y[i]<-which(Polybius==x[i])
  a<-ifelse(y[i]%%4==0,3,y[i]%%4-1)   
  b<-ifelse(y[i]%%4==0,y[i]%/%4-1,y[i]%/%4)   
  ciphertext<-c(ciphertext,a,b)
}
x
ciphertext

#Convert the ciphertext from a vector containing each digit as a separate element into a vector finaltext that contains one element
p1<-length(ciphertext)
p2<-p1%%5
p3<-ifelse(p1%/%5==0,p1%/%5,p1%/%5+1)
c<-sample(0:9,5-p2,replace=TRUE)  #vector c stores random number
ciphertext<-c(ciphertext,c)
o<-NULL
for(i in 1:p3){
  o[i]<-paste(ciphertext[(5*i-4):(5*i)],collapse="")
}
finaltext<-paste(o,collapse=" ")
finaltext
