السلام عليكــم ورحمـة الله وبركاتــه
أعتقد أني احترت بما فيه الكفاية في هذه المشكلة وسأعود للأسمبلي حالما أنتهي هنا :angry:
المثال كالتالي مأخوذ في الأجزاء المهمة منه:
[color= #007f00;]#include <iostream>
[color= #007f00;]#define WIDTH 5
[color= #007f00;]#define HEIGHT 5
[color= #0000ff;]struct pt [color= #000000;]{
[color= #0000ff;]int row [color= #000000;]: [color= #ff0000;]1;
[color= #0000ff;]int col [color= #000000;]: [color= #ff0000;]1;
[color= #000000;]} en_cell, ex_cell;
[color= #0000ff;]void findEntry[color= #000000;]([color= #0000ff;]char [color= #000000;](maze[color= #000000;])[color= #000000;][[color= #000000;]][color= #000000;][[color= #ff0000;]40[color= #000000;]],[color= #0000ff;]int,[color= #0000ff;]int,[color= #0000ff;]char,pt [color= #000000;]* cell[color= #000000;]);
[color= #0000ff;]int main[color= #000000;]([color= #0000ff;]int argc,[color= #0000ff;]char [color= #000000;]*argv[color= #000000;][[color= #000000;]][color= #000000;])
[color= #000000;]{
[color= #0000ff;]int width [color= #000000;]= WIDTH;
[color= #0000ff;]int height [color= #000000;]= HEIGHT;
[color= #0000ff;]char maze[color= #000000;][[color= #ff0000;]40[color= #000000;]][color= #000000;][[color= #ff0000;]40[color= #000000;]] [color= #000000;]= [color= #000000;]{[color= #000000;]([color= #A31515;]'1',[color= #A31515;]'1',[color= #A31515;]'1',[color= #A31515;]'1',[color= #A31515;]'1'[color= #000000;]),[color= #000000;]([color= #A31515;]'1',[color= #A31515;]'1',[color= #A31515;]'3',[color= #A31515;]'3',[color= #A31515;]'1'[color= #000000;]),[color= #000000;]([color= #A31515;]'1',[color= #A31515;]'3',[color= #A31515;]'3',[color= #A31515;]'3',[color= #A31515;]'1'[color= #000000;]),[color= #000000;]([color= #A31515;]'1'
,[color= #A31515;]'3',[color= #A31515;]'1',[color= #A31515;]'3',[color= #A31515;]'4'[color= #000000;]),[color= #000000;]([color= #A31515;]'1',[color= #A31515;]'2',[color= #A31515;]'1',[color= #A31515;]'1',[color= #A31515;]'1'[color= #000000;])[color= #000000;]};
[color= #007f00;]// supposedly you filled the 2-dimensional array like this
[color= #007f00;]// 1 1 1 1 1
[color= #007f00;]// 1 1 3 3 1
[color= #007f00;]// 1 3 3 3 1
[color= #007f00;]// 1 3 1 3 4 -> 4, represents the entrance
[color= #007f00;]// 1 2 1 1 1 -> 2, represents the exit
[color= #0000ff;]char en [color= #000000;]= [color= #A31515;]'3',ex [color= #000000;]= [color= #A31515;]'4'; [color= #007f00;]// 3 for right most column, 4 for bottom most row in a 2-di
mensional array
findEntry[color= #000000;](maze,width,height,en,[color= #000000;]&en_cell[color= #000000;]);
[color= #0000ff;]return [color= #ff0000;]0;
[color= #000000;]}
[color= #0000ff;]void findEntry[color= #000000;]([color= #0000ff;]char maze[color= #000000;][[color= #000000;]][color= #000000;][[color= #ff0000;]40[color= #000000;]],[color= #0000ff;]int cols,[color= #0000ff;]int rows,[color= #0000ff;]char en,pt [color= #000000;]* cell[color= #000000;])
[color= #000000;]{
[color= #0000ff;]int i [color= #000000;]= [color= #ff0000;]0;
[color= #0000ff;]switch [color= #000000;](en[color= #000000;])
[color= #000000;]{
[color= #0000ff;]case [color= #A31515;]'1'[color= #000000;]:
[color= #0000ff;]for [color= #000000;](i; i [color= #000000;]< rows; i[color= #000000;]++[color= #000000;])
[color= #000000;]{
[color= #0000ff;]if [color= #000000;](maze[color= #000000;][i[color= #000000;]][color= #000000;][[color= #ff0000;]0[color= #000000;]] [color= #000000;]== [color= #A31515;]'4'[color= #000000;])
[color= #000000;]{
cell[color= #000000;]-[color= #000000;]>row [color= #000000;]= i; [color= #007f00;]// خطأ في الاسناد تكون القيمة صحيحة وبعد الاسناد خاطئة
cell[color= #000000;]-[color= #000000;]>col [color= #000000;]= [color= #ff0000;]0;
break;
[color= #000000;]}
[color= #000000;]}
break;
[color= #0000ff;]case [color= #A31515;]'2'[color= #000000;]:
[color= #0000ff;]for [color= #000000;](i; i [color= #000000;]< cols; i[color= #000000;]++[color= #000000;])
[color= #000000;]{
[color= #0000ff;]if [color= #000000;](maze[color= #000000;][[color= #ff0000;]0[color= #000000;]][color= #000000;][i[color= #000000;]] [color= #000000;]== [color= #A31515;]'4'[color= #000000;])
[color= #000000;]{
cell[color= #000000;]-[color= #000000;]>row [color= #000000;]= [color= #ff0000;]0;
cell[color= #000000;]-[color= #000000;]>col [color= #000000;]= i;
break;
[color= #000000;]}
[color= #000000;]}
break;
[color= #0000ff;]case [color= #A31515;]'3'[color= #000000;]:
[color= #0000ff;]for [color= #000000;](i; i [color= #000000;]< rows; i[color= #000000;]++[color= #000000;])
[color= #000000;]{
[color= #0000ff;]if [color= #000000;](maze[color= #000000;][i[color= #000000;]][color= #000000;][cols[color= #ff0000;]-1[color= #000000;]] [color= #000000;]== [color= #A31515;]'4'[color= #000000;])
[color= #000000;]{
cell[color= #000000;]-[color= #000000;]>row [color= #000000;]= i;
cell[color= #000000;]-[color= #000000;]>col [color= #000000;]= [color= #000000;](cols[color= #ff0000;]-1[color= #000000;]);
break;
[color= #000000;]}
[color= #000000;]}
break;
[color= #0000ff;]case [color= #A31515;]'4'[color= #000000;]:
[color= #0000ff;]for [color= #000000;](i; i [color= #000000;]< cols; i[color= #000000;]++[color= #000000;])
[color= #000000;]{
[color= #0000ff;]if [color= #000000;](maze[color= #000000;][rows[color= #ff0000;]-1[color= #000000;]][color= #000000;][i[color= #000000;]] [color= #000000;]![color= #000000;]= [color= #A31515;]'4'[color= #000000;])
[color= #000000;]{
cell[color= #000000;]-[color= #000000;]>row [color= #000000;]= [color= #000000;](rows[color= #ff0000;]-1[color= #000000;]);
cell[color= #000000;]-[color= #000000;]>col [color= #000000;]= i;
break;
[color= #000000;]}
[color= #000000;]}
[color= #000000;]}
[color= #000000;]}الكهرباء ستقطع وأنا أكتب بسرعة :lol:
