���� Philipp Gühring �������ߣ� Philipp �� HTL Wiener Neustadt ͨ���� A �����ԡ���ѧУ��һ���������ݴ�����EDP������ĸߵȹ���ѧԺ����������רע������Futureware 2001���������顣ͬʱ��������һ�� Linux �Ժ�һ����Ծ�� Linux User Group Austria ��Ա�� Ŀ¼�� |
ժҪ��
Dialog ��һ������Ự�ı�����ԡ��û�����ͨ��������д�Լ��ĻỰ���ݡ�����������ҵ�������� Würstelstand �Ŀ����ϡ�����ּ�ڽ������ʹ�� Dialog �����������Ự����
�õ��ı�д�� Würstelstand �ǰĴ����ǵ�һ����ҵ����������ʹ���߽����Ź���һ���ȹ����㡣ͨ����ͻ��ĽӴ�ʹ���߽���������һ��ð����Ϸ֮�С�Ϊ����������ͻ�-�Ӵ������ҿ�����һ���Ự���ԡ�������������Ҫ��
��ʱ�ڱ�д�绰�Ự�����У�����һ��ʹ���� dialog ���沢��ǿ�����Ĺ��ܡ���ҽ�ʹ��һ������ѡ��ϵͳ����������Ľ�ɫ Leni����һ���ȹ�̯̯�����˿��ɼ������ģ�����ɡ���ҵ�Ŀ����Ϊ�˿�������飬������̸�����������Ƕ������˿������Ǽ��������п���ʱ���ʱ���Զ����֡����⣬���Ҳ���������ĸ��˿ʹ���ѯ�绰��
�Ự�� Ascii �ı��ļ��ķ�ʽ���沢�����н��͡���Ȼ���ַ�ʽ���ԸĽ�����ѡ�з�ʽ������ͨ��ʹ�ü��ı��༭����������Щ�ļ����ļ������� Name.BAT������ HALE.BAT����ң�Leni���Զ�˵��������Щ���� Leni: Text Leni: Good morning, Sir! What can I get you? Leni: Look at these youngsters! Unbelievable! |
����������Щ�����ˣ��治�����š���մӴ��ϵ��������� ��Look at these youngsters! Unbelievable! Did you fell out of the bed?�� |
|
�Է����˿ͣ�˵����Kunde �ڵ������ǡ��˿͡�����˼�� Telefone �ǡ��绰������˼��
Kunde: Text Kunde: Two Frankfurter with bread and Coke. Come on, get going, old man! Telefon: Futureware 2001, Philipp Gühring. What can I do for you? |
���еĻỰ����
Ende
����������Ende �ڵ����о��ǽ�������˼����
һ����ʾ���� |
Leni: Good morning, Sir! What would you like? Kunde: Good day! A Käsekrainer please! Leni: Just a moment. Leni: Here you are. Kunde: Thanks a lot. Bye! Leni: Bye! Ende |
��תĿ���ɷ�������ð�ţ�:�����壬��������תĿ������֡��û�����ͨ������ Sprung ��ת��ָ����Ŀ�괦��Sprung �ڵ���������ת����˼����
:Target //Jump example follows: Sprung Target
|
������ӽ����߽��ͳ�����Щʲô�أ����ȣ����ͳ���ᷢ������ Leni: ��֮��� text 1��Ȼ�����������һ�У�//First we do this������Ϊ��������˫б�ܣ�//����ʼ��ע���С���������һ���к������� Sprung�����ͳ����������Ự������Ŀ�� MENU_0���ҵ�������ת���ô��������һ��ע���У�I am back!�������һ�������� Leni:������������Ļ����� 3����ʾ���Ľ������������ڶ������� Leni: 2 ������ȥ�ˣ�Ҳ���� Leni ����˵ 2�� |
����������һ���Ự�п��ԣ�
// This is a comment ************************************** *Like this, one can make comments too* **************************************ע��һ����Ҫ�������һ�У�
Leni: I don't unterstand nothing anymore. // NO COMMENT
���ϵ�������ͳ���� I don't unterstand nothing anymore. // NO COMMENT ��Ϊ�ı������
|
Dialog �������������ϵͳ����ϵͳ�ṩ��һ���б����б��в���IJ˵������û����������Ļش𡣵�ijһָ����ʱ�䣬�˵�����ʾ����Ļ�ϡ���ʱ�û��Ϳ�����ѡ���ˡ����ͳ�������ѡ�еIJ˵�����ת����Ӧ�ij���Ρ� ������Ҫ������ NEU �� ALT ���Ѳ˵�����뵽�б��С�������������涼��������תĿ��Ͳ˵����ı����˵����ı����Ժܳ���ϵͳ���Զ��Ľ�ȡǰ��һ�������ı���Ϊ��Ч�ı���MENÜ�����ʾ�����б����û�ѡ�� |
Neu buy,A hot one, as usual, ok? Neu work,How is it going at work? Neu language,Are you still attending the language course at WIFI? Neu family,How is your family doing? Neu weather,Are you enjoying this weather? Menü
ͨ������ѡ��ʽ����ҿ���һ����һ���ı������в˵����Щѡ���ǿ��ظ�ʹ�õġ���Щû�б�ѡ�еIJ˵����Ա��������б����Թ�ѡ�ðɣ�������ѡ�����������е� work ������������ʲô������
:work Leni: How is it going at work? Kunde: Too much to do, as always. Menü�����Ѿ��ᵽ��ֻ�б�ѡ�еIJ˵���Ż���ʧ����ˣ��˵��л�������Щѡ�
Kunde: How many would you like? Alt some, 10 Pieces Alt more, 20 Pieces Alt most, 100 Pieces Menü :some //We continue here, when the user chose 10 pieces :more ... :most ...��Ȼ��ѡ�еIJ˵������ɱ������б���û��ʲô���壬��ô���û�����ѡ��֮�����еIJ˵��Ӧ�ñ�ɾ��������������У����û�ѡ�� 20 pieces ��֮���ͳ�����ת��Ŀ�� more ��
:more Kunde: Are you sure? Leni: Yes, I want 20 Pieces. Kunde: How soon do you need them? Alt 1, Tomorrow Alt 2, The day after tomorrow Alt 3, Sometimes Menü����������ַ�ʽ�����һ����γ��˵�����ѡ��ʽ��
������һ������ֵ������ע�⣺һ���û��������Ľ�̸�����ij���������۹�֮��ȴ����˵Щ������飬��Ӧ�ÿ���ѡ���Ǹı仰��ǰ���ǰ��ѡ����ʵ�С�����û�ѡ��ı仰�⣬��ô��ǰ����ѡ��ʧЧ����ˣ���ҪΪ�û�����ճ���������ת����Ĺ��ܡ������� Dialog �в��������·��������ۣ�remark����Ϊһ������ѡ������Ѿ����л�����б��С��û�ѡ���������ѡ�����ʧ������Щû�б�ѡ�еĽ�����������
Kunde: Remember the good old days. Alt Memory,Yeah, I just rememberd when, ... MENÜ
Ҳ�������֪����������ΰ���Щ��ͬ�ĸ����ʵ�ֵġ���ʵ��������Ϊֹ���Ѿ�֪���� NEU �� ALT ��ʹ���еIJ���� NEU ����IJ˵��һֱ�������б���ֱ������ѡ�У����� ALT �����ѡ�������Ƿ�ѡ�ж����Զ���ɾ����
����û���Ҫ�����۵�ͬʱ����ѡ�����ϣ���ڲ˵�����ʾ���������⣬���Ǹ�������أ��������Ŀ�ģ��ҿ��������������б���
�б� 0 �������ѡ��б� 1 ��������ͨ���⣬���ͥ�����������С���ʳ�ȡ�����û�ϣ�����۵Ļ����л������������ӻ��⣬��ô��ѡ���б� 2�����Ǹ��� Hale �ĻỰ����һ��ʾ��������û���Ҫ�����������������б������Ľ��ͳ���Դ�����еij���ֵ��
LISTE 0 LISTE 1 LISTE 2�Զ���������������������б���ȫ���˵����ԭ�ⲻ���ı����š��������ͬ NEU��ALT��MENÜ��LÖSCHEN һ���뵱ǰ�б��йء�
Neu Memory,�Yeah, I just rememberd when, ...�б� 0 �е������ڱ�ѡ��֮���Զ�ɾ���������������ֻ��ѡ�����ã����������ڻ��⡣
�ҽ�����߿���ʾ�� HALE.BAT �� PETER.BAT����������б��õĺܲ�����
LÖSCHEN targetɾ����ǰ�б���ָ��Ŀ�� target �����в˵�����磺
LÖSCHEN familiyΪ��ɾ����ǰ�б��е����в˵���û������ڸ��������Ǻţ�
LÖSCHEN *�������Ҫ���û��������ӶԹ������ʽ��֧��;-)
Menü ������ʾ��ǰ�б������ò˵�������û����������ѡ��֮��ѡ�����Լ����и���ѡ��� ALT �������������б���ɾ���������ͳ�����ת��Ŀ��ָ�����������б���ֻ��һ���˵����ô����˵������Ϊ��ѡ��Ҳ��˲�����ֶ���ѡ��IJ˵�������б���û�в˵��������תĿ����Ч�����ͳ���˳��ִ�� MENÜ ����һ�С�
ǰ 100 ���Ĵ������� 0 �� 99��Ϊϵͳ�����������ڻỰ��ʼǰ��ϵͳ������ֵ����˻Ự���Է����������Ļ�������ע //S �ļĴ����ڻỰ����֮�����·�����ʹ�á��Ự����ͨ���ı���Щ�Ĵ�����ֵ��Ӱ�컷���������� Würstelstand �е�ϵͳ�Ĵ���һ������
1 | Event; | //�¼������μ� texte.h�� | |
2 | geliefert; | //S | //0-10����������ʮ��֮һ |
3 | wtag; | //���� | |
4 | tag; | //���� | |
5 | monat; | //�·� | |
6 | jahr; | //��� | |
7 | Datum; | //ʹ��������1.1.1997 = 0�� | |
8 | wetter; | //�������� | |
9 | konto; | //S | //������Ŀ |
10 | kapital; | //S | //�ֽ� |
11 | ausgaben; | //S | //����֧�� |
12 | einnahmen; | //S | //�������� |
13 | sterne; | //S | //�ȹ�����������ȼ���0-5 ���Ǻţ� |
14 | wverkauf; | //�����۳���Ʒ���� | |
15 | weinnahmen; | //������ | |
16 | wausgaben; | //��֧�� | |
17 | 0; | //S | //�µ�����/֧�����ɻỰ������ |
18 | Nachrichtenserie; | //����ϵ�У�news series����0=Elch��1=...�� | |
19 | Nachricht; | //��ǰ����ϵ���е��Ǹ����ţ�0=1.Tag��1=2...�� | |
20 | LottoNr[0]; | //ʹ�ö��ٸ���Ʊ���루0-6�� | |
21 | LottoErgebnis[0]; | //���ٸ��н��IJ�Ʊ���� | |
22 | LottoGewinn[LottoErgebnis[0]]; | //Leni ӯ������ | |
23 | S.Image; | //S | //Leni ���� |
24 | S.Override; | //S | //���Ե��¼� |
25 | S.wverkauf[1]; | //�����۳���Ʒ | |
26 | S.weinnahmen[1]; | //�������� | |
27 | S.wausgaben[1]; | //����֧�� | |
28 | S.wverkauf[2]; | //����ǰ�۳���Ʒ | |
29 | S.weinnahmen[2]; | //����ǰ���� | |
30 | S.wausgaben[2]; | //����ǰ֧�� | |
31 | S.NOverride; | //S | //��������¼� |
32 | S.wetter_bericht; | //��һ������Ԥ�� | |
33 | Gesamtwert(); | //�ȹ���������� | |
34 | Wetterbericht[S.wetter_bericht].Ereignis; | //��һ�������¼� | |
35 | Tageszeit; | //����ʱ�䣨�֣� | |
70..79 | Lagermenge | //��Ʊ | |
80..89 | Verkaufspreis | //S | //��Ʒ�۸� |
90..99 | Kaufmenge | //S | //�������� |
�������� 100 ���Ĵ������� 100 �� 199��Ϊÿ���Ự��˽�С�����Ϸ��ʼʱ���DZ���ʼ������Ȼ����������Ϸ��һֱΪ�Ự���С��ڱ�����Ϸʱ���ǽ������档����������Ȼ��ֻ����Ӧ�ĻỰ�ſ��Զ����Ƿ��ʡ�ϵͳ�������Ự��Ȩ�����Ƕ�/д�����Ӧ���ڻỰ��ͷ�Խ�Ҫʹ�õĻỰ����������Ҫ��˵����
batch.cpp |
// Customer: Peter Hinzing // // Usage of the registers //[100] How often he was here //[101] Pocket money //[102] Several events //[103] Random number: order //[104] Random number: answer to order //[105] Different dialogs: Work on the 5th day //[106] Deal //[107] The game starts, after having been chosen //[108] Game.stake.type //[109] Game.stake.quantity //[110] Game.choose.Peter //[111] Game.choose.Leni //[112] Activation of the Hobby //[113] Activation of the Home //[114] Dialog about Würstelstand //[115] total stock coke //[116] too much ?************************* //* not yet done |
���µ� 56 ���Ĵ�����Ҳ���ܸ��ࣩ�����лỰ�����ļĴ�����Ҳ����˵����Щ�Ĵ����������лỰ��˵����һ���ģ����еĻỰ����Ȩ�������ǡ���˱�����һ������������������Щ�Ĵ�����ʹ�á����������Ĵ��������� Würstelstand �ĻỰ�У��� daten.h �е�˵������
[200]: Leni can go to the immigration office with Hale [201]: Leni read the dog's wanted circular [202]: Leni had played Stein-Schere-Papier with Peter! (evil!)
����Ϊ Würstelstand ������һ���¼�ϵͳ��ÿ���¼�����һ��Ψһ�ı�š���Щ����������ļ���Э�����¼����Դ���������Щ���飺
���ʵ����Щ�����أ�
���ڲ�Ʒ���˿͡��绰�Ự�Լ�����ϵ����˵���û�������¼��ı����Ϊ��ʼ/����ֵ������Ӧ�������ļ��С�
��δ����¼���
Aktion expression // ��������ģʽ�� Aktion 3 // ����Ĵ��� 100 �б���ֵ����Ӧ���¼��� Aktion [100]�����ȷ��ʹ����Щ�¼��أ�������һ������ Würstelstand �в����¼����б���
0 | Error/Never | �¼� 0 ������ |
1 | Initialising | �ڳ���ʼ�DZ����������������Ʒ���˿͵� |
2 | End | ����Ϸ����ʱ���� |
3 | activating FW-Cheat | ˭��д����Щ���룿���� |
4 | deactivating FW-Cheat | ����������ܣ� |
5 | Leni.competition.activating newspaper | Leni ��Ф��ܺý���Ϊ��ֽ���۵Ľ��� |
6 | Leni.competition.Zeitung->TelefonNr | �ӱ�ֽ�ϵ������л�õ绰���� |
7 | Leni.competition.deactivating TelNr | ��ͨ������������֮��ȡ����Щ���õĵ绰���� |
8 | deactivating Hale | ���� Leni ð���� ����Hale �Լ��˳��� |
9 | Hale recommends Josi | �������� Hale �� Josi ����������㣨�����Ǻ���Ҫ�ģ��� |
10 | deactivating Josi | Josi �Լ��˳� |
11 | deactivating Peter | Peter �Լ��˳� |
12 | Sepp Nachricht without Leni aktivieren | Sepp �����Ƿ���Ʒ��Leni �ܾ��ˣ��������鹫���ˡ� |
13 | Sepp Nachricht with Leni aktivieren | Leni �����˷Ƿ��IJ�Ʒ������������ |
14 | lost game | �ʲ� Gottfried ��ֹ�����Ϸ |
15 | won game | Gottfried ʵ�����ȹ�����ļ�ֵ��ͬʱ Leni ʤ���� |
16 | Hale.news article Asyl activate | Leni ͬ Hale �ɱ�ֽ�Ϲ��ڱӻ�Ȩ������̸�������ļ�ͥ |
17 | Hale.news article->Telefonnr activate | ��ֽ�ϳ��ֵ����ڿ��õĵ绰���� |
18 | Hale->Zeitungsbericht->Telefonnr deactivating | �Ựʹ�绰����ʧЧ |
19 | Hale->Familie activating | Hale �ļ����ܵ��˱ӻ� |
20 | activating the spy | Leni Ӧ�ù��ø���̽������������ܻ�û�б�����ʵ�� |
33 | New products 1 (New supplier) | �����Ʒ�ķ�Χ |
100 | won contest | Leni Ӯ�˱��������˿Ϳ�ʼ���������... |
101 | losts contest | |
102 | Lotteryprice | Leni ���˲�Ʊ�� |
Rechne [100]: 20 + [30] * 10����ѼĴ��� 30 �е����ݳ��� 10 �ټ��� 20�����������ڼĴ��� 100 �С�
�����ǿ���ʹ�õ���ѧ�������
����� | ���� | ʾ�� | ��� | |
Klammern | (a) | (10+20)*30 | 900 | |
Register | [a] | [20] | �Ĵ��� 20 �е����� | |
Multiplication | a*b | 3*4 | 12 | |
Division | a/b | 10/5 | 2 | |
Rest | a%b | 10%3 | 1 | |
Addition | a+b | 1+1 | 2 | |
Subtraction | a-b | 1-1 | 0 | |
Zuweisung | [a]:b | [10]:20 | �� 20 д��Ĵ��� 10 | |
Vergleiche | a?b | �棨1�����٣�0�� | ||
Ist gleich | a=b | 10=20 | �٣�0�� | |
Kleiner | a<b | 10<20 | �棨1�� | |
Größer | a>b | [10]>[20] | ||
AND | a&b | 1=1 & 2=2 | ��� 1 ���� 1 ���� 2 ���� 2 | |
OR | a|b | 1=1 | 2=2 | ��� 1 ���� 1 ���� 2 ���� 2 | |
Random number | a Z b | 1 Z 6 | ����һ�� 1 �� 6 ֮�������� |
�ȽϵĽ������������ʾ��1 �������桱��0 ��������/��������Щ���ֻ�����д��Ĵ����С�����ʽ�пո�����п��ޡ�
������ѧ��ֵ�����������ս�Եġ����ڵ���ѧ��ֵ�����Ѿ��ܹ����������������ı���ʽ�ˣ�
Assumption: [100]=5, [24]=14, 1Z6=2 [[100]+1]:((1Z6)*([24]>3)+10/2-10%5) [5 +1]:((2 )*(14 >3)+10/2-10%5) [6 ]:(2 *(1 )+5 -0 ) [6 ]:(2 *1 +5 ) [6 ]:(7 ) [6 ]:7�����[6]:7 ��ֵ 7 ��д��Ĵ��� 6 �С�
Wenn condition then��ҿ���ʵ�ֱȽϲ��������磺
Wenn [100+1]>10 Kunde: The number in the register 101 is bigger than 10 ! Wenn 1>1 Kunde: ERROR!
�������Ϊ����ͳ���˳��ִ����һ�У������������С���������Ժ���ת��������ʹ�ã�
Wenn [102]<10 Sprung SMALLER Wenn [102]=10 Sprung EQUAL Wenn [102]>10 Sprung BIGGER ... :SMALLER ... :EQUAL ... :BIGGER
BILD expression��Bild �ڵ�������ͼƬ����˼�������磬
Bild 5�� HALE.BAT �е�һ�������С������ͳ���ִ�е���ʱ��������ʾͼƬ HALE5.DAT��һ�������ͼƬ��ʽ������������Ự������
// comment: | �������� |
|
|
Kunde: text | �˿ͷ��� |
Tel: text | �Ự��鷢�� |
Leni: text | Leni ���� |
:target | ��תĿ�� |
Liste number | ָ����ǰ�б� |
Löschen * | ɾ����ǰ�б��е�ȫ���˵��� |
Löschen target | ɾ����ǰ�б���ָ��Ŀ�� target �����в˵��� |
Aktion number | �����¼� |
Ende | �����Ự |
Bild number | ��ʾ�ļ���Ϊ NameNumber.dat ��ͼƬ |
Sprung target | ��ת��Ŀ�� |
Neu target,Text | �ڵ�ǰ�б��в����»��� |
Alt target,Text | �ڵ�ǰ�б��в�����ѡ�� |
Menü | ��ʾ�˵����û�ѡ�� |
Wenn condition | �Ƚ��жϣ����������У� |
//then | ���Ϊ�棬���ͳ���ִ����һ�� |
//else | ���Ϊ�٣����ͳ���������һ�� |
Rechne expression | �������ʽ��ֵ������Ĵ����� |
Bild expression | ��ʾͼƬ���ȴ������� |
Markus Muntaneau ������һ������ Dialog-Maker �ij�����ʹ�����Ự�Ĺ��̼��ļ�������ˡ��ź���������û�����꣨��������һЩ Bug������˲��Ǻ����á����������߽��� Dialog �Ŀ������ǻ���Ӧ�ÿ������������
���� Würstelstand ��Ŀ���� 10��000 �� C(++) ���룬����ʱ��Ҳ���Խ��ܡ������û�а���д�ɱȽ�������ģ�鷽ʽ���ðɣ��ҳ�������̫�����ˣ��������ҿ�����һ�� Test-Include ϵͳ��ģ��Ĵ��뱻���ɵ� a.c �ļ��С����ļ����Զ������У�ͬʱ���ṩ��һ��������Щģ���д�IJ��Գ��������� #ifdef��#ifndef �ȹ���ģ�飨ͷ�ļ��������á�
batch.cpp |
#ifndef _DIALOG_H #define _DIALOG_H #ifndef MAIN_MODULE #define DIALOG_TEXT #define DEBUG //Here are the necessary included Header files #include <stdio.h> //... #endif //Here are the whole dialog routines //.. S2 Dialog(char *Filename, TYP Array[]) { //... } #ifndef MAIN_MODULE //Here is everything for the test programs TYP Feld[256]; int main(short argc,char *argv[]) { //Testprogram Dialog(Filename,Feld); } #endif |
wurst.cpp |
#define MAIN_MODULE #include "batch.cpp" TYP Felder[10][256]; int main(short argc,char *argv[]) { Dialog(Filename,Felder[i]); } |
�������� Würstelstand �� Linux �汾������ Futureware ��http://poboxes.com/futureware�����õ������������
dialog �� 1.1 �汾 �������dialog-1.1.tar.gz�������������������뷢�Ÿ����ߡ����ݶ��ߵ��������ῼ�ǽ���дЩ����
Dialog ʵ�����ӵ����¡�
���ķ��룺֣�¹�
Webpages
maintained by the LinuxFocus Editor team © Philipp Gühring LinuxFocus 1999 |
1999-09-04, generated by lfparser version 0.7