По сути, мое задание - хранить сообщение в двумерном массиве, и это сообщение поставляется с сопроводительным сообщением, которое представляет собой серию штрихов и цифр O, которые необходимо «поместить поверх» исходного сообщения с определенной координатой (строка, столбец), чтобы показать сообщение.В настоящее время я застрял на том, как «разместить» исходное сообщение поверх исходного сообщения для декодирования текста.Мои друзья сказали мне, чтобы я проанализировал обложку сообщения и написал серию if
утверждений, в которых говорилось: «Если есть o, возьмите это измерение в двумерный массив и добавьте его в переменную сообщения».
Это сообщение:
«Мы считаем эти истины самоочевидными, что все люди созданы равными, что они наделены своим Создателем определенными неотчуждаемыми правами,что среди них - Жизнь, Свобода и Погоня за Счастьем. Чтобы обеспечить эти права, среди мужчин учреждаются правительства, получающие свои справедливые полномочия с согласия управляемых, - что всякий раз, когда любая форма правления становится разрушительной для этих целей,Народ вправе изменять или отменять его, а также учреждать новое правительство, основывая его на таких принципах и организуя свои полномочия в такой форме, которая, по их мнению, скорее всего повлияет на их безопасность и счастье ».
И это сообщение на обложке:
-O------O-----O-------------------------
--O----O--------------------O------O----
------O---O-----------------------------
----------------------O--------------O--
------------------------------O-----O---
-----------------------------------O----
-------O---------------------O----------
Любая помощь приветствуется, спасибо.
Редактировать: Пока я заполнил2d массив с сообщением и 2d массив с сообщением обложки.Сопроводительное сообщение должно помещаться поверх исходного массива сообщений, начиная с [2][5]
.Надеюсь это поможет.
import java.io.*;
import java.util.*;
public class M {
public static void main(String[] args) throws FileNotFoundException {
File inFile = new File("input.txt");
Scanner scanFile = new Scanner(inFile);
int lines;
lines = scanFile.nextInt();
String message = "";
for (int i = 0; i <= lines; i++)
message += scanFile.nextLine();
message = message.replace(" ", "");
message = message.replace(",", "");
message = message.replace("-", "");
String[][] am = new String[lines][59];
fill2DArray(am, message);
print2DArray(am);
System.out.println(Arrays.deepToString(am).replace("], ", "]\n"));
String r = scanFile.nextLine();
r = r.replace(",", "");
String ro = r.substring(0,1);
String co = r.substring(1);
int crow = Integer.parseInt(ro);
int ccol = Integer.parseInt(co);
int cline = scanFile.nextInt();
System.out.println(cline);
String cover = "";
for (int u = 0; u <= cline; u++)
cover += scanFile.nextLine();
String[][] cm = new String[cline][40];
fill(cm, cover);
print2DArray(cm);
}
public static void fill2DArray(String[][] arr2D,String message)
{
int counterLetters = 0;
for(int i =0;i<arr2D.length;i++) //arr.2D.length gives row length
{
for(int j = 0;j<arr2D[i].length;j++)//arr2D[].length gives column length
{
arr2D[i][j] = message.substring(counterLetters, counterLetters+1);
counterLetters++;
}
System.out.println();
}
}
public static void fill(String[][] arr2D,String cover)
{
int counterLetters = 0;
for(int i =0;i<arr2D.length;i++) //arr.2D.length gives row length
{
for(int j = 0;j<arr2D[i].length;j++)//arr2D[].length gives column length
{
arr2D[i][j] = cover.substring(counterLetters, counterLetters+1);
counterLetters++;
}
System.out.println();
}
}
public static void print2DArray(String[][] arr2D)
{
for(int i =0;i<arr2D.length;i++) //arr.2D.length gives row length
{
for(int j = 0;j<arr2D[i].length;j++)//arr2D[].length gives column length
{
System.out.print(arr2D[i][j]);
}
System.out.println();
}
}
}