⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bankbatchswarm.m

📁 ASM是模拟人工股票市场的
💻 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 + -