109 lines
2.6 KiB
Plaintext
109 lines
2.6 KiB
Plaintext
include "NSLog.incl"
|
|
|
|
_mfile = 1
|
|
begin enum
|
|
_iNewGame
|
|
_
|
|
_iClose
|
|
end enum
|
|
_mEdit = 2
|
|
|
|
_window = 1
|
|
begin enum 1
|
|
_maxNumLabel
|
|
_maxNumFld
|
|
_f1Label
|
|
_f1Fld
|
|
_wd1Label
|
|
_wd1Fld
|
|
_f2Label
|
|
_f2Fld
|
|
_wd2Label
|
|
_wd2Fld
|
|
_f3Label
|
|
_f3Fld
|
|
_wd3Label
|
|
_wd3Fld
|
|
_playBtn
|
|
end enum
|
|
|
|
void local fn BuildMenu
|
|
menu _mFile,,, @"File"
|
|
menu _mFile, _iNewGame,, @"New Game"
|
|
menu _mFile, _iClose,, @"Close", @"w"
|
|
MenuItemSetAction( _mFile, _iClose, @"performClose:" )
|
|
editmenu _mEdit
|
|
end fn
|
|
|
|
void local fn BuildWindow
|
|
window _window, @"General FizzBuzz", (0,0,362,188), NSWindowStyleMaskTitled
|
|
|
|
textlabel _maxNumLabel, @"Maximum number:", (18,150,116,16)
|
|
textfield _maxNumFld,, @"20", (140,147,202,21)
|
|
ControlSetFormat( _maxNumFld, @"0123456789", YES, 0, 0 )
|
|
|
|
textlabel _f1Label, @"Factor 1:", (18,121,58,16)
|
|
textfield _f1Fld,, @"3", (80,118,54,21)
|
|
ControlSetFormat( _f1Fld, @"0123456789", YES, 0, 0 )
|
|
textlabel _wd1Label, @"Word 1:", (138,121,52,16)
|
|
textfield _wd1Fld,, @"Fizz", (196,118,146,21)
|
|
|
|
textlabel _f2Label, @"Factor 2:", (18,92,58,16)
|
|
textfield _f2Fld,, @"5", (80,89,54,21)
|
|
ControlSetFormat( _f2Fld, @"0123456789", YES, 0, 0 )
|
|
textlabel _wd2Label, @"Word 2:", (138,92,52,16)
|
|
textfield _wd2Fld,, @"Buzz", (196,89,146,21)
|
|
|
|
textlabel _f3Label, @"Factor 3:", (18,63,58,16)
|
|
textfield _f3Fld,, @"7", (80,60,54,21)
|
|
ControlSetFormat( _f3Fld, @"0123456789", YES, 0, 0 )
|
|
textlabel _wd3Label, @"Word 3:", (138,63,52,16)
|
|
textfield _wd3Fld,, @"Baxx", (196,60,146,21)
|
|
|
|
button _playBtn,,, @"Play FizzBuzz", (122,13,118,32)
|
|
|
|
WindowMakeFirstResponder( _window, _maxNumFld )
|
|
end fn
|
|
|
|
void local fn PlayFizzBuzz
|
|
long maxNum = intval(textfield(_maxNumFld))
|
|
|
|
long f1 = intval(textfield(_f1Fld))
|
|
long f2 = intval(textfield(_f2Fld))
|
|
long f3 = intval(textfield(_f3Fld))
|
|
|
|
CFStringRef f1Word = textfield(_wd1Fld)
|
|
CFStringRef f2Word = textfield(_wd2Fld)
|
|
CFStringRef f3Word = textfield(_wd3Fld)
|
|
CFStringRef string = NULL
|
|
|
|
NSLogClear
|
|
|
|
long i
|
|
for i = 1 to maxNum
|
|
string = @""
|
|
if ( i mod f1 == 0 ) then string = f1Word
|
|
if ( i mod f2 == 0 ) then string = fn StringByAppendingString( string, f2Word )
|
|
if ( i mod f3 == 0 ) then string = fn StringByAppendingString( string, f3Word )
|
|
if ( len(string) == 0 ) then string = fn StringWithFormat( @"%ld", i )
|
|
NSLog(@"%@",string)
|
|
next
|
|
end fn
|
|
|
|
|
|
void local fn DoDialog( ev as long, tag as long )
|
|
select ( ev )
|
|
case _btnClick
|
|
select ( tag )
|
|
case _playBtn : fn PlayFizzBuzz
|
|
end select
|
|
end select
|
|
end fn
|
|
|
|
fn BuildMenu
|
|
fn BuildWindow
|
|
|
|
on dialog fn DoDialog
|
|
|
|
HandleEvents
|