一个遗传算法的VC版本
源代码在线查看: control.h
#pragma once
#include "head.h"
#include "map.h"
#include "defaultmap.h"
#include "roundmap.h"
#include "connectline.h"
#include "ga.h"
#include "resource.h"
class Control
{
public:
Control( ); //初始化数据
void welcome( HWND hwnd); //显示帮助(开始)
void help ( HWND hwnd); //完整的帮助
UINT Control::GetMapStyle( ) ; //获得当前地图类型
void SetMapStyle(HWND hwnd,WPARAM wParam); //设置地图类型
void Control::SetGaInformation(float fpcross ,float fpmutation , int fpopsize , int fmaxgen );//交叉率变异率种群大小最大世代数
void CleanAllUpDate( ); //清除所有点
void DisPlay( HWND hwnd ,const POINT& point,bool); //显示其它与鼠标位置 或地图相关信息
void DrawAllPoint( HWND hwnd ) ; //画出所有的点
void DrawMap(HWND hwnd,HDC hdc ) ; //画地图
void DrawTruePoint( HWND hwnd ,const POINT& point ); //画点
void DrawFalsePoint( HWND hwnd ,const POINT& point ); //去掉点
void DrawLineWait( ) ; //画线的准备
void DrawLine (HWND hwnd ); //画线
float Getpcross ( ) { return pcross; }
float Getpmutation( ) { return pmutation;}
int Getpopsize ( ) { return popsize; }
int Getmaxgen ( ) { return maxgen ; }
void SetPower(bool n) { power=n ; }
bool GetPower( ) { return power;}
private:
UINT MapStyle ; //标志当前地图类型
float pcross ; //交叉率
float pmutation ; //变异率
int popsize ; //种群大小
int maxgen ; //最大世代数
bool power ;
DefaultMap DefaultMapObject;
RoundMap RoundMapObject;
Line LineObject;
Map *MapObject;
};
///////////////////////////// 初始化数据 ///////////////////////////////
inline Control::Control( ):pcross(0.6),pmutation (0.2),popsize (300)
,maxgen(300 ),MapObject( &DefaultMapObject),MapStyle(ID_DefaultMap),power(1)
{ return; }