איך ליצור מחולל טקסט רנדומלי וראיון בשבעה לילות
מחוללי טקסט רנדומלי הם דרך יפה לשים ללעג כל מה או מי שיש לו סגנון התבטאות אופייני שניתן לחקותו. לשם מה לנו מחולל טקסט רנדומלי? אמרתי, למטרת בדיחה – ובדיחה, בעיקר בדיחת אינטרנט, אם לוקח להכין אותה יותר מ-15 דקות זה כבר לא זה.
ראשית, כשמדברים על מחולל טקסט רנדומלי חובה להזכיר את המחולל המעולה, האשר-עידנייזר, שמייצר טקסטים רנדומליים המורכבים מתוך כתביו של העתידן, ד"ר אשר עידן.
התגובמולטור – אספר למי שעוד לא שמע ויש לו כוח לשמוע, הוא מחולל התגובות שיצרתי לפני זמן מה, אמולטור של תגובות. מחולל התגובות עבר מיד ליד ברשת, התגלגל קצת בטוויטר וגם חצה את תקרת הזכוכית והגיע עד לבלוגיה המודפסת.
עידו קינן דיבר איתי ורשם את מה שאמרתי, והדברים פורסמו במוסף סוף השבוע של ידיעות בשבעה לילות. ראיון זה שערך איתי קינן, פורסם אצלו בבלוג.
כדי ליצור מחולל טקסט, אפשר להשתמש ב- Chomsky Random Text Generator (פייתון) שמייצר טקסטים רנדומליים מתוך כתביו של נועם חומסקי (אפשר פשוט להחליף את התכנים, לתכנים שלכם).
אפשרות נוספת, קצת יותר מקצועית, היא rmutt, סקריפט שמתיימר לייצר משפטים עם היגיון סמנטי על פי חיבור של רשימות מילים לפי נושא, נשוא, פעלים, תארים ואלמנטים תחביריים שונים.
היות ואמרנו שבדיחת רשת צריך להכין ב-15 דקות או אחר תזה כבר לא זה, מותר להשתמש בהדרך הקלה שתהיה JavaScript פשוט.
נניח ונרצה ליצור משפט פשוט המורכב משלוש רשימות:
רשימה 1: אני, אתה, הוא, האיש, הילד.
רשימה 2: אוהב, שונא, לא סובל, מחפש.
רשימה 3: תפוזים, את אמא, את הים בחורף, שלום.
בתוך קוד ה-HTML, נפתח קוד JS:
<script language="JavaScript">
כאן יבוא שאר הקוד...
</script>
בתוך אזור הסקריפט נוסיף שלושה מערכים, עבור הרשימות:
var list1 = new Array ();
list1[0] = "אני";
list1[1] = "אתה";
list1[2] = "הוא";
list1[3] = "הילד";
var list2 = new Array ();
list2[0] = "אוהב";
list2[1] = "שונא";
list2[2] = "לא סובל";
list2[3] = "מחפש";
var list3 = new Array ();
list3[0] = "תפוזים";
list3[1] = "את אמא";
list3[2] = "את הים בחורף";
list3[3] = "שלום";
כעת ניצור משתנים (אחד עבור כל רשימה) שיקבלו ערך רנדומלי:
var LR1 = Math.floor(4*Math.random())
var LR2 = Math.floor(4*Math.random())
var LR3 = Math.floor(4*Math.random())
ניצור משתנה שיחבר את המילים לפי המשתנה הרנדומלי עבור כל רשימה:
var rText = list1[LR1]+" "+list2[LR2]+" "+list3[LR3]+".";
כל שנותר כעת הוא להעביר את המשתנה למסך:
document.write(rText);
בכל כניסה לדף יופיע טקסט רנדומלי שונה. ניתן להוסיף כפתור במקום מסוים בקוד ה-HTML שיבצע רענון לדף, כלומר, יחולל טקסט חדש.
<a href="javascript:location.reload(true);">חולל טקסט</a>
תוספת:
כדי להציג תמונה רדנומלית נוסיף משתנה עבור תמונה:
var RI = Math.floor(5*Math.random())
נשמור 5 תמונות, נניח בשמות pic1.jpg, pic2.jpg וכו'
ניצור את ה-HTML עבור הצגת התמונה עם המשתנה
var rImage= "<img src=\"images/pic"+RI+".jpg\"/>";
וכעת נציג את זה על המסך
<script language="JavaScript">document.write(rImage);</script>
אפשר להוריד מכאן קובץ הדגמה המכיל את הדוגמא הזאת.
התחלתי להשתעשע עם הדבר הזה וחשבתי על להוסיף תמונה רנדומלית. יש אפשרות לעשות דבר כזה כך שיצירת משפט חדש גם תמשוך תמונה מאיזה מאגר ותמקם אותו מתחת למשפט?
תיצור משתנה שנותן מספר מ-1 עד 10
תשמור 10 תמונות בשם
1.jpg, 2.jpg וכו'
ואז תקרא ל:
<img src="images/*var*.jpg"/>
הוספתי את המשתנה ואת שורת הקוד שמושכת את התמונה אבל התמונה לא מוצגת.
אתה יכול להכין קובץ עם התוספת הזו?
נראה לי שמצאתי מה הבעיה (אבל לא את הפתרון). הסקריפט לא מציג לי את התמונה כנראה בגלל שאני אמור לכתוב משהו אחר במקום *var* שמסמל את המשתנה החדש.
אם זה המערך של המשתנה החדש
var list5 = new Array ();
list5[0] = "01";
list5[1] = "02";
list5[2] = "03";
list5[3] = "04";
אז מה אמור להיות במקום *var*?
עומר, הוספתי הסבר בתוך הפוסט וגם הוספתי את התוספת לקובץ הדגמה עצמו (תוריד מחדש)
אם אתה עושה משהו מעניין, שתף…
I am trying to build a simple application for kids to learn the structure of the sentence in Hebrew together with images. I don't know how interesting that will be but in appriciation to what you did I will try to build something cool with that and share that ofcourse.
הקובץ המקובץ פגום או שאני זה שפגום. בכל אופן אי אפשר לפתוח את זה.
קודם כל, תודה על הלינק. גם הלינק למחולל החומסקי מצוין. אני עשיתי את זה בצורה קצת הרבה פחות יעילה (עם PHP ו AJAX ) ובגלל זה זה לקח לי כמה שעות ולא 15 דקות אבל אני חייב לציין שנהניתי מכל רגע של חיפוש אמרותיו של הד"ר.
מעבר לזה, התגובלומטור מעולה, זה כל כך דומה ל90 אחוז מהטוקבקים שזה קצת עצוב.
עומר, תיקנתי את קובץ זיפ…
עדיין פגום.
יגעתי (קצת) עד שמצאתי את המדריך המקוצר הזה, ובעזרתו בניתי (לקח טיפ-טיפה יותר מ-15 דקות, אבל לא הרבה יותר) מחולל חזון ומשימות לרווחת הציבור. תודה.
איפה אפשר ללמוד על בניית מחולל קוד כמו אצלך בתגובות באתר בחלק התחתון
http://www.psilot.com
תודה על הפוסט, האם יתפרסמו בקרוב פוסטים חדשים?