📄 bankbatchswarm.m
字号:
// #define __USE_FIXED_PROTOTYPES__ // for gcc headers#import "BankBatchSwarm.h"#import "BankModelSwarm.h"#import <collections.h>@implementation BankBatchSwarm// createBegin: here we set up the default observation parameters.+createBegin: (id) aZone { BankBatchSwarm * obj; obj = [super createBegin: aZone]; obj->displayFrequency = 1; return obj;}-buildObjects { id modelZone; [super buildObjects]; modelZone = [Zone create: [self getZone]]; bankModelSwarm = [BankModelSwarm create: modelZone]; [bankModelSwarm buildObjects];/* unhappinessAverager = [Averager createBegin: [self getZone]]; [unhappinessAverager setList: [bankModelSwarm getBankList]]; [unhappinessAverager setProbedSelector: M(getUnhappiness)]; unhappinessAverager = [unhappinessAverager createEnd];*/ // And open a file for writing (see -writeData for comments) outputFile = fopen("banks.data", "w"); return self;} -buildActions { [super buildActions]; [bankModelSwarm buildActions]; /* displayActions = [ActionGroup create: [self getZone]]; // Now schedule the update of the unhappiness graph [displayActions createActionTo: unhappinessAverager message: M(update)]; [displayActions createActionTo: self message: M(writeData)]; // the displaySchedule controls how often we write data out. displaySchedule = [Schedule createBegin: [self getZone]]; [displaySchedule setRepeatInterval: displayFrequency]; displaySchedule = [displaySchedule createEnd]; [displaySchedule at: 0 createAction: displayActions];*/ stopSchedule = [Schedule create: [self getZone]]; [stopSchedule at: 250 createActionTo: self message: M(stopRunning)]; return self;} -activateIn: (id) swarmContext { [super activateIn: swarmContext]; [bankModelSwarm activateIn: self];/* [displaySchedule activateIn: self];*/ [stopSchedule activateIn: self]; return [self getSwarmActivity];}-go { printf("No DISPLAY environment variable was set, so we're running without graphics.\n"); printf("Bank is running for 250 time steps and writing data to banks.data.\n"); fprintf(outputFile,"Starting simulation!\n") ; [[self getActivity] run]; return [[self getActivity] getStatus];}-writeData {/* fprintf(outputFile, "%d %g\n", getCurrentTime(), [unhappinessAverager getAverage]);*/ return self;}-stopRunning { [getTopLevelActivity() terminate]; fclose(outputFile); return self;}@end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -