דעתכם בנושא פרוייקט שעשיתי - פרקטל שטיח סירפינצקי

זה המקום לכל נושא שאינו מתאים לאף פורום אחר, כולל דיונים בנושאים שאינם קשורים למג'יק.

מנהלים: kabanist, Sir Psycho Sexy

שלח תגובה
Seeker Of Rain
Moderator
הודעות: 2410
הצטרף: 03/9/2001 , 2:00
מיקום: עמק חפר (ח.צ)
אמר/ה תודה: 0
קיבל תודה: 0
יצירת קשר:

דעתכם בנושא פרוייקט שעשיתי - פרקטל שטיח סירפינצקי

שליחה על ידי Seeker Of Rain »

כשיעורים קיבלתי פרוייקט סוף סימסטר באסמבלי לממש את שטיח סרפינצקי (זה פרקטל פשוט בעל מימד 1.89 ... אם הנושא מעניין מישהו http://en.wikipedia.org/wiki/Sierpinski_carpet - רק ששם הקוד הוא בJava שלא דומה לצערי אפילו קצת לאסמבלי)

בכל אופן בגלל אופי הפרקטל קצב הגידול שלו הוא חזקת 3 - וכך נוצר מצב מעיק קצת שאם אני משתמש בכמות אינטרבלים כדי שכל הפרקטל יכנס למסך DOS (אין מה לעשות עוד תכונה של תכנות אסמבלי) אני מקבל פרקטל קטן - אבל רואים את כולו ואת התכונות שלו.

אם אני משתמש באינטרבל אחד יותר מהמקסימלי למסך אני מקבל פרקטל הרבה יותר מרשים אבל רואים ממנו כמות קטנה מידי כך שיתכן שאי אפשר לראות כלל שמדובר בפרקטל...

לכן צירפתי קישורים לשתי התוכניות - ורציתי לשמוע את חוות דעתכם מי מהם הייתם מגישים (אפשר רק אחד להגיש) זה שרואים בו את כל הפרקטל אך הוא לא מרשים - או זה שרואים רק חלק מהפרקטל אך החלק מאוד מרשים אבל ידרשו ממני הסברים (יותר נכון הוכחות) מדוע עדיין אני מקבל פרקטל שלם למרות שרואים רק חלק ממנו.

פרקטל שלם

פרקטל חלקי

יש להמתין כמה שניות ואז מופיע כפתור "הורדה" מצד ימין של המסך (בחלק העליון שלו)

מכיוון שמדובר בתוכנות DOS יתכן שלא כל מחשב יצליח להריץ אותם (ואז יש לרשום בrun את הפקודה cmd ולהריץ שם)

תודה :)
seeker of rain
MosheJW
Rising Scrub
הודעות: 1869
הצטרף: 13/11/2004 , 18:00
מיקום: בית שמש
אמר/ה תודה: 0
קיבל תודה: 0
יצירת קשר:

שליחה על ידי MosheJW »

האחד הגדול יותר טוב.
גם הכוחות זה טוב. (אני מניח שזה דברים מסובכים נכון?)
Y כתב:אנשים לא יודעים להבדיל בין איכות לזבל ומבחינתם יהודה לוי לבוש בירוק ו-Llanowar Elves זה אותו הדבר.
Seeker Of Rain
Moderator
הודעות: 2410
הצטרף: 03/9/2001 , 2:00
מיקום: עמק חפר (ח.צ)
אמר/ה תודה: 0
קיבל תודה: 0
יצירת קשר:

שליחה על ידי Seeker Of Rain »

האמת שזה לא מסובך כ"כ כשעושים את זה בצורה מתמטית ... רקורסיבית קצת פחות נעים
kabanist
Moderator
הודעות: 4442
הצטרף: 22/5/2003 , 9:47
מיקום: קרית חיים
אמר/ה תודה: 0
קיבל תודה: 0
יצירת קשר:

שליחה על ידי kabanist »

הורדתי את השלם ולא הצלחתי לראות גם דרך שורת הפקודה.
Seeker Of Rain
Moderator
הודעות: 2410
הצטרף: 03/9/2001 , 2:00
מיקום: עמק חפר (ח.צ)
אמר/ה תודה: 0
קיבל תודה: 0
יצירת קשר:

שליחה על ידי Seeker Of Rain »

הממ כן עוד כמה נתקלו בזה - זורק אותם מחלון הcmd חזרה לWindows לא יודע למה זה קורה אבל אם לפני זה הופכים את זה לחלון מלא (alt + enter על החלון) זה לא קורה...

תודה בכל אופן :wink:
Arie
מארגן טורנירים בדרום
הודעות: 4472
הצטרף: 20/3/2003 , 21:46
מיקום: באר שבע
אמר/ה תודה: 0
קיבל תודה: 0

שליחה על ידי Arie »

הורדתי וראיתי את שניהם, אני מציע לך להגיש את הגדול, במיוחד אם אתה יכול להוכיח שהוא כן שלם. אני חושב שזה ירשים יותר אם תוכיח את זה למרות שלא רואים הכל,
ד"א
בכל מקרה אני די בטוח שמי שנתן את המשימה מודע ל'בעיה' הזאת ובדיוק רוצה שתחליטו מה להגיש.
sliver
Sliver Overlod
הודעות: 5941
הצטרף: 30/5/2004 , 0:11
מיקום: רחובות
אמר/ה תודה: 0
קיבל תודה: 0
יצירת קשר:

שליחה על ידי sliver »

העלת בי נשכחות. אני זוכר שהכנתי פרקטלים של משולשים עוד ב quick basic.
בינתיים כבר שכחתי הכל.
Slivers don't learn. They just know
שופט לבל 8 ומארגן הבין גלאקטי של ויזארדס.
Seeker Of Rain
Moderator
הודעות: 2410
הצטרף: 03/9/2001 , 2:00
מיקום: עמק חפר (ח.צ)
אמר/ה תודה: 0
קיבל תודה: 0
יצירת קשר:

שליחה על ידי Seeker Of Rain »

זה נושא דיי מרתק, בכל אופן תודה לכולם.

הפרוייקט יוגש היום בבוקר
Taloc
MTGil Apprentice
הודעות: 125
הצטרף: 06/9/2002 , 2:00
אמר/ה תודה: 0
קיבל תודה: 0

Re: דעתכם בנושא פרוייקט שעשיתי - פרקטל שטיח סירפינצקי

שליחה על ידי Taloc »

Seeker Of Rain כתב:בכל אופן בגלל אופי הפרקטל קצב הגידול שלו הוא חזקת 3 - וכך נוצר מצב מעיק קצת שאם אני משתמש בכמות אינטרבלים כדי שכל הפרקטל יכנס למסך DOS (אין מה לעשות עוד תכונה של תכנות אסמבלי) אני מקבל פרקטל קטן - אבל רואים את כולו ואת התכונות שלו.
That's because your using VGA.
If you use Super VGA you can use 800x600,1024x768,etc.
I changed your program test_4.exe to use 1024x768.
You can see it here
http://geocities.com/tacolmtg/768.zip
It also works slowly, but this can be fixed,
there is a problem with using a screen over 64k and i used
a simple a solution instead of a good one.
It also draws more then the box you wanted. 768 pixels.

Are you required to optimize the code too?
For example here

קוד: בחירת הכל

push    ax
mov     ax, word_100EC
add     word_100EC, ax
add     word_100EC, ax
pop     ax
push,pop is not doing anything, since you don't read ax latter anyway
Can also use a shl ax,1 instead of the first add.
And use xor reg,reg instead of mov reg,0
There are a lot of tricks in asm.

I also saw you used

קוד: בחירת הכל

mov     cx, word_100E2
mov     dx, word_100E4
To make sure cx and dx didn't get modifed elsewhere.
But when you "Write a dot on the screen" you don't make sure bh==0.
How come?
Seeker Of Rain
Moderator
הודעות: 2410
הצטרף: 03/9/2001 , 2:00
מיקום: עמק חפר (ח.צ)
אמר/ה תודה: 0
קיבל תודה: 0
יצירת קשר:

שליחה על ידי Seeker Of Rain »

אין אצלי את ההוראות האלו - השתמשת בdebug על התוכנית כנראה - ולכן ראית שטויות שהקומפיילר הוסיף מסיבות שלו.

בכל אופן לא נדרשה אופטימיזציה.

לגבי bh לא היה צורך לבדוק את זה, מכיוון שהוא אופס לפני הקריאה לפונקציה.
Taloc
MTGil Apprentice
הודעות: 125
הצטרף: 06/9/2002 , 2:00
אמר/ה תודה: 0
קיבל תודה: 0

שליחה על ידי Taloc »

Seeker Of Rain כתב: לגבי bh לא היה צורך לבדוק את זה, מכיוון שהוא אופס לפני הקריאה לפונקציה.
It doesen't get zeroed before the call.
The only place that changes bh is
mov bx, word_100EC
found inside the other function.
If the loop goes more then 6 times then bh will get changed and the
program won't display anything.
שלח תגובה