作者pandamilktea (熊猫奶茶)
看板NKUTEE
标题[讨论] 小玛莉(我写的应徵用程式)
时间Thu Nov 6 01:42:17 2008
void CLittleMaryDlg::OnBnClickedStart()
{
Random();
Run();
UpdateData(0);
first = 0;
}
void CLittleMaryDlg::LoadData(void) // 在程式执行时会载入的部份
{
int nCount = 0;
char* pszFileName = "data.txt";
CFileFind File;
BOOL bExist = File.FindFile(pszFileName);
if(bExist) // 档案存在时读取
{
CFile dataFile(pszFileName, CFile::modeRead);
CArchive ar(&dataFile, CArchive::load);
for(int i=0; i<16; i++)
{
ar.ReadString(m_data[i]);
}
dataFile.Close();
}
else // 预设资料
{
m_data[0] = "资料1"; m_data[1] = "资料2";
m_data[2] = "资料3"; m_data[3] = "资料4";
m_data[4] = "资料5"; m_data[5] = "资料6";
m_data[6] = "资料7"; m_data[7] = "资料8";
m_data[8] = "资料9"; m_data[9] = "资料10";
m_data[10] = "资料11"; m_data[11] = "资料12";
m_data[12] = "资料13"; m_data[13] = "资料14";
m_data[14] = "资料15"; m_data[15] = "资料16";
}
// 将 m_data 填满
for(int i=0; i<16; i++)
{
if(m_data[i]!="") nCount++;
}
for(int nFill=0; nFill<16-nCount; nFill++)
{
m_data[nCount+nFill] = m_data[nFill];
}
}
void CLittleMaryDlg::Random(void)
{
srand(time(0));
nRand = rand() % 16;
}
void CLittleMaryDlg::Run(void)
{
int nPosition, nGoal;
int nResult, nLoop;
CString strPast;
// 程式部份
if(first)
{
nRec = 0;
strPast = m_data[0];
}
srand(time(0));
nLoop = 1 + rand() % 3;
nPosition = nRec;
strPast = strRec;
nGoal = nRand + (16*nLoop);
for(nPosition; nPosition<=nGoal; nPosition++)
{
m_data[nRec] = strPast;
nResult = nPosition % 16;
nRec = nResult;
strPast = m_data[nResult];
m_data[nResult] = "☆ " + m_data[nResult];
UpdateData(0);
Sleep(100);
}
// 记录上一个的值
nRec = nRand;
strRec = strPast;
}
--
就这样,很简单的程式...
只有短短的几十行
应该很好懂!?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.240.12.124
1F:推 michaleeeee:上次给你google找的那个参考有用吗? 11/06 17:39
2F:推 michaleeeee:你应该放个执行档给大家玩 哈哈 要有bug版喔 中大奖 11/06 17:39
3F:→ pandamilktea:哎哟,我懒得写那麽多嘛 11/06 21:52