From 30d9f8cce36436b0abd18552fe448229b520a15f Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 6 Apr 2026 09:34:24 +0400 Subject: [PATCH 1/2] all files fixed --- .../java/org/example/fromalharith/Main.java | 40 ++++++++- .../java/org/example/fromalharith/board.txt | 15 ++++ .../example/fromalharith/slitheringCode.java | 89 +++++++++++++++++++ .../fromalharith/sprint3/climbingCount.java | 14 +++ .../fromalharith/sprint3/hollowPyramid.java | 30 +++++++ .../fromalharith/sprint3/loopChallenge.java | 20 +++++ .../fromalharith/sprint3/starMountain.java | 19 ++++ .../sprint3/theStaircaseChallenge.java | 17 ++++ 8 files changed, 242 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/example/fromalharith/board.txt create mode 100644 src/main/java/org/example/fromalharith/slitheringCode.java create mode 100644 src/main/java/org/example/fromalharith/sprint3/climbingCount.java create mode 100644 src/main/java/org/example/fromalharith/sprint3/hollowPyramid.java create mode 100644 src/main/java/org/example/fromalharith/sprint3/loopChallenge.java create mode 100644 src/main/java/org/example/fromalharith/sprint3/starMountain.java create mode 100644 src/main/java/org/example/fromalharith/sprint3/theStaircaseChallenge.java diff --git a/src/main/java/org/example/fromalharith/Main.java b/src/main/java/org/example/fromalharith/Main.java index b123c16f..e71c9f68 100644 --- a/src/main/java/org/example/fromalharith/Main.java +++ b/src/main/java/org/example/fromalharith/Main.java @@ -1,6 +1,42 @@ package org.example.fromalharith; + +import java.io.IOException; +import java.net.URISyntaxException; +import java.nio.file.Files; +import java.nio.file.Path; + public class Main { public static void main(String[] args) { - System.out.println("Check 1 Check 2"); + Path mazePath = null; + char[][] maze; + + try { + mazePath = Path.of(Main.class.getResource("./data/.txt").toURI()); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + + try { + String fileContent = Files.readString(mazePath); + String[] lineOfFile = fileContent.split("\n"); + int lineLength = lineOfFile[0].length(); + maze = new char[lineOfFile.length][]; + + for (int row = 0; row < lineOfFile.length; row++) { + char[] currRow = lineOfFile[row].toCharArray(); + + for (int col = 0; col < currRow.length; col++) { + maze[row][col] = currRow[col]; + } + } + } catch(IOException e){ + throw new RuntimeException(e); + } + + for (int row=0; row<10; row++){ + for (int col=0; col<10; col++) + System.out.printf("%c",maze[row][col]); + } + System.out.println(); + } } -} diff --git a/src/main/java/org/example/fromalharith/board.txt b/src/main/java/org/example/fromalharith/board.txt new file mode 100644 index 00000000..628914cc --- /dev/null +++ b/src/main/java/org/example/fromalharith/board.txt @@ -0,0 +1,15 @@ +- - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - +- - - - - o o o o o - - - - - +- - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/java/org/example/fromalharith/slitheringCode.java b/src/main/java/org/example/fromalharith/slitheringCode.java new file mode 100644 index 00000000..75c9e11d --- /dev/null +++ b/src/main/java/org/example/fromalharith/slitheringCode.java @@ -0,0 +1,89 @@ +package org.example.fromalharith; + +import java.io.*; +import java.util.*; + +public class slitheringCode { + public static void main(String[] args) throws IOException { + + String filePath = "src/main/java/org/example/fromalharith/board.txt"; + + // Read file and remove spaces into logical grid + List lines = new ArrayList<>(); + try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { + String line; + while ((line = br.readLine()) != null) { + lines.add(line.replace(" ", "")); // remove spaces for grid + } + } + + int rows = lines.size(); + int cols = lines.get(0).length(); + + char[][] grid = new char[rows][cols]; + + for (int r = 0; r < rows; r++) { + grid[r] = lines.get(r).toCharArray(); + } + + // Initialize snake queue + Queue snake = new LinkedList<>(); + for (int r = 0; r < rows; r++) { + for (int c = 0; c < cols; c++) { + if (grid[r][c] == 'o') { + snake.offer(new int[]{r, c}); + } + } + } + + Scanner sc = new Scanner(System.in); + + // directions + String[] dirs = {"up", "down", "left", "right"}; + int[][] moves = { + {-1, 0}, // up + {1, 0}, // down + {0, -1}, // left + {0, 1} // right + }; + + while (true) { + for (int r = 0; r < rows; r++) { + for (int c = 0; c < cols; c++) { + System.out.print(grid[r][c] + " "); + } + System.out.println(); + } + + System.out.print("Enter your move!: "); + String direction = sc.next(); + int steps = sc.nextInt(); + + for (int step = 0; step < steps; step++) { + int[] head = ((LinkedList) snake).getLast(); + int newRow = head[0]; + int newCol = head[1]; + + for (int i = 0; i < dirs.length; i++) { + if (direction.equals(dirs[i])) { + newRow += moves[i][0]; + newCol += moves[i][1]; + } + } + + // check board + if (newRow < 0 || newRow >= rows || newCol < 0 || newCol >= cols) { + System.out.println("Hit the wall!"); + break; + } + + // move snake + snake.offer(new int[]{newRow, newCol}); + grid[newRow][newCol] = 'o'; + + int[] tail = snake.poll(); + grid[tail[0]][tail[1]] = '-'; + } + } + } +} diff --git a/src/main/java/org/example/fromalharith/sprint3/climbingCount.java b/src/main/java/org/example/fromalharith/sprint3/climbingCount.java new file mode 100644 index 00000000..f73813c4 --- /dev/null +++ b/src/main/java/org/example/fromalharith/sprint3/climbingCount.java @@ -0,0 +1,14 @@ +package org.example.fromalharith.sprint3; + +public class climbingCount { + public static void main(String[] args) { + + for (int i = 1; i <= 5; i++) { + for (int j = 1; j <= i; j++) { + System.out.print(j + "\t"); + } + System.out.println(); + } + + } +} diff --git a/src/main/java/org/example/fromalharith/sprint3/hollowPyramid.java b/src/main/java/org/example/fromalharith/sprint3/hollowPyramid.java new file mode 100644 index 00000000..ef21fda6 --- /dev/null +++ b/src/main/java/org/example/fromalharith/sprint3/hollowPyramid.java @@ -0,0 +1,30 @@ +package org.example.fromalharith.sprint3; + +public class hollowPyramid { + public static void main(String[] args) { + + int n = 5; + for (int i = 1; i <= n; i++) { + for (int j = 0; j < n - i; j++) { + System.out.print(" "); + } + + if (i == n){ + for (int k = 1; k < n + n; k++) { + System.out.print("*"); + } + } + else { + System.out.print("*"); + } + if (i != n && i != 1) { + + for (int l = 1; l < i + i - 2; l++) { + System.out.print(" "); + } + System.out.print("*"); + } + System.out.println(); + } +} +} diff --git a/src/main/java/org/example/fromalharith/sprint3/loopChallenge.java b/src/main/java/org/example/fromalharith/sprint3/loopChallenge.java new file mode 100644 index 00000000..f1e7996c --- /dev/null +++ b/src/main/java/org/example/fromalharith/sprint3/loopChallenge.java @@ -0,0 +1,20 @@ +package org.example.fromalharith.sprint3; + +import java.util.Scanner; + +public class loopChallenge { + public static void main(String[] args) { + + Scanner inputObjBuffer = new Scanner(System.in); + + for (int i = 1 ; i < 5 ; i++) { + for (int j = 1; j <= i; j++) { + System.out.print(j + " "); + } + for (int m = i-1; m >= 1; m--) { + System.out.print(m + " "); + } + System.out.println(); + } + } +} diff --git a/src/main/java/org/example/fromalharith/sprint3/starMountain.java b/src/main/java/org/example/fromalharith/sprint3/starMountain.java new file mode 100644 index 00000000..b47a764e --- /dev/null +++ b/src/main/java/org/example/fromalharith/sprint3/starMountain.java @@ -0,0 +1,19 @@ +package org.example.fromalharith.sprint3; + +public class starMountain { + public static void main(String[] args) { + + int Rows=5; + for (int i = 1 ; i <= Rows ; i++) { + for (int j = i; j <= Rows; j++) { + System.out.print(" "); + } + for (int star = 1; star <= 2 * i - 1; star++) { + System.out.print("*"); + } + System.out.println(""); + } + + } + + } diff --git a/src/main/java/org/example/fromalharith/sprint3/theStaircaseChallenge.java b/src/main/java/org/example/fromalharith/sprint3/theStaircaseChallenge.java new file mode 100644 index 00000000..0ac370a3 --- /dev/null +++ b/src/main/java/org/example/fromalharith/sprint3/theStaircaseChallenge.java @@ -0,0 +1,17 @@ +package org.example.fromalharith.sprint3; + +public class theStaircaseChallenge { + public static void main(String[] args) { + + + for (int i=1 ; i<=5 ; i++){ + for (int j=1 ; j<=i ; j++) { + System.out.print("#"); + } + System.out.println(); + } + + + } +} + From a7901b8c840120b452b293546d14a65326a957b5 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 12 Apr 2026 09:28:18 +0400 Subject: [PATCH 2/2] The Maze --- .../java/org/example/fromalharith/Main.java | 133 ++++++++++++++---- .../java/org/example/fromalharith/board.txt | 25 ++-- 2 files changed, 117 insertions(+), 41 deletions(-) diff --git a/src/main/java/org/example/fromalharith/Main.java b/src/main/java/org/example/fromalharith/Main.java index e71c9f68..6d778674 100644 --- a/src/main/java/org/example/fromalharith/Main.java +++ b/src/main/java/org/example/fromalharith/Main.java @@ -1,42 +1,123 @@ -package org.example.fromalharith; +package com.Main; -import java.io.IOException; -import java.net.URISyntaxException; -import java.nio.file.Files; -import java.nio.file.Path; +import java.io.*; +import java.util.*; public class Main { + public static void main(String[] args) { - Path mazePath = null; - char[][] maze; try { - mazePath = Path.of(Main.class.getResource("./data/.txt").toURI()); - } catch (URISyntaxException e) { - throw new RuntimeException(e); - } + File file = new File("C:/Users/Codeline/Desktop/For AaabAlhosni/AgileOraclesExperimentProject/src/main/java/org/example/fromalharith/board.txt"); - try { - String fileContent = Files.readString(mazePath); - String[] lineOfFile = fileContent.split("\n"); - int lineLength = lineOfFile[0].length(); - maze = new char[lineOfFile.length][]; + if (!file.exists()) { + System.out.println("Board file not found!"); + return; + } - for (int row = 0; row < lineOfFile.length; row++) { - char[] currRow = lineOfFile[row].toCharArray(); + // Load maze + List lines = new ArrayList<>(); + BufferedReader br = new BufferedReader(new FileReader(file)); - for (int col = 0; col < currRow.length; col++) { - maze[row][col] = currRow[col]; + String line; + while ((line = br.readLine()) != null) { + if (!line.trim().isEmpty()) { + lines.add(line.toCharArray()); } } - } catch(IOException e){ - throw new RuntimeException(e); + br.close(); + + int rows = lines.size(); + int cols = lines.get(0).length; + + char[][] maze = new char[rows][cols]; + for (int i = 0; i < rows; i++) { + maze[i] = lines.get(i); } - for (int row=0; row<10; row++){ - for (int col=0; col<10; col++) - System.out.printf("%c",maze[row][col]); + int startR = -1, startC = -1; + + // Find start + for (int i = 0; i < rows; i++) { + for (int j = 0; j < cols; j++) { + if (maze[i][j] == '@') { + startR = i; + startC = j; + } + } } - System.out.println(); + + if (startR == -1) { + System.out.println("Start '@' not found."); + return; + } + + // Replace @ by 0 + maze[startR][startC] = '0'; + + boolean[][] visited = new boolean[rows][cols]; + Stack stack = new Stack<>(); + stack.push(new int[]{startR, startC}); + + while (!stack.isEmpty()) { + + int[] pos = stack.peek(); + int r = pos[0]; + int c = pos[1]; + + visited[r][c] = true; + + // Print maze + for (int i = 0; i < rows; i++) { + for (int j = 0; j < cols; j++) { + if (i == r && j == c) { + System.out.print("@ "); + } else { + System.out.print(maze[i][j] + " "); + } + } + System.out.println(); + } + + System.out.println(); + Thread.sleep(300); + + // Goal check + if (maze[r][c] == 'E') { + System.out.println("Goal reached!"); + return; + } + + // Move: Right, Down, Left, Up + if (c + 1 < cols && !visited[r][c + 1] && + (maze[r][c + 1] == '0' || maze[r][c + 1] == 'E')) { + + stack.push(new int[]{r, c + 1}); + + } else if (r + 1 < rows && !visited[r + 1][c] && + (maze[r + 1][c] == '0' || maze[r + 1][c] == 'E')) { + + stack.push(new int[]{r + 1, c}); + + } else if (c - 1 >= 0 && !visited[r][c - 1] && + (maze[r][c - 1] == '0' || maze[r][c - 1] == 'E')) { + + stack.push(new int[]{r, c - 1}); + + } else if (r - 1 >= 0 && !visited[r - 1][c] && + (maze[r - 1][c] == '0' || maze[r - 1][c] == 'E')) { + + stack.push(new int[]{r - 1, c}); + + } else { + stack.pop(); + } + } + + System.out.println("No path found."); + + } catch (Exception e) { + System.out.println("Error: " + e.getMessage()); } } +} \ No newline at end of file diff --git a/src/main/java/org/example/fromalharith/board.txt b/src/main/java/org/example/fromalharith/board.txt index 628914cc..10890a23 100644 --- a/src/main/java/org/example/fromalharith/board.txt +++ b/src/main/java/org/example/fromalharith/board.txt @@ -1,15 +1,10 @@ -- - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - -- - - - - o o o o o - - - - - -- - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - \ No newline at end of file +1111111111 +@000000001 +1111101111 +1001100001 +1010101101 +1010000101 +1011110101 +1000010111 +111101000E +1111111111 \ No newline at end of file