📄 vwumpusdlg.cpp
字号:
Grid14->SetBitmap(Wumpus);
else if(map.maze[3][1].sthin==deadwumpus)
Grid14->SetBitmap(DeadWumpus);
else if(map.maze[3][1].sthin==pit)
Grid14->SetBitmap(Pit);
else if(map.maze[3][1].sthin==gold)
Grid14->SetBitmap(Gold);
else Grid14->SetBitmap(Blank);
if(map.maze[3][2].sthin==him)
Grid15->SetBitmap(Hero);
else if(map.maze[3][2].sthin==wumpus)
Grid15->SetBitmap(Wumpus);
else if(map.maze[3][2].sthin==deadwumpus)
Grid15->SetBitmap(DeadWumpus);
else if(map.maze[3][2].sthin==pit)
Grid15->SetBitmap(Pit);
else if(map.maze[3][2].sthin==gold)
Grid15->SetBitmap(Gold);
else Grid15->SetBitmap(Blank);
if(map.maze[3][3].sthin==him)
Grid16->SetBitmap(Hero);
else if(map.maze[3][3].sthin==wumpus)
Grid16->SetBitmap(Wumpus);
else if(map.maze[3][3].sthin==deadwumpus)
Grid16->SetBitmap(DeadWumpus);
else if(map.maze[3][3].sthin==pit)
Grid16->SetBitmap(Pit);
else if(map.maze[3][3].sthin==gold)
Grid16->SetBitmap(Gold);
else Grid16->SetBitmap(Blank);
}
void CVwumpusDlg::OnShow()
{
// TODO: Add your control notification handler code here
m_nRandMap.EnableWindow(FALSE);
m_nGame.EnableWindow(FALSE);
m_nNext.EnableWindow(FALSE);
m_nOnceAgain.EnableWindow(FALSE);
Map map;
hero.Init();
HeroInfo="欢迎来到巫魔世界!\r\n";
hero.map=map;
ShowState();
m_nRandMap.EnableWindow(TRUE);
m_nGame.EnableWindow(TRUE);
m_nNext.EnableWindow(TRUE);
}
void CVwumpusDlg::ShowDanger(guide handbook[4][4])
{
CEdit*Grid1=(CEdit*)GetDlgItem(IDC_DAN1);
CEdit*Grid2=(CEdit*)GetDlgItem(IDC_DAN2);
CEdit*Grid3=(CEdit*)GetDlgItem(IDC_DAN3);
CEdit*Grid4=(CEdit*)GetDlgItem(IDC_DAN4);
CEdit*Grid5=(CEdit*)GetDlgItem(IDC_DAN5);
CEdit*Grid6=(CEdit*)GetDlgItem(IDC_DAN6);
CEdit*Grid7=(CEdit*)GetDlgItem(IDC_DAN7);
CEdit*Grid8=(CEdit*)GetDlgItem(IDC_DAN8);
CEdit*Grid9=(CEdit*)GetDlgItem(IDC_DAN9);
CEdit*Grid10=(CEdit*)GetDlgItem(IDC_DAN10);
CEdit*Grid11=(CEdit*)GetDlgItem(IDC_DAN11);
CEdit*Grid12=(CEdit*)GetDlgItem(IDC_DAN12);
CEdit*Grid13=(CEdit*)GetDlgItem(IDC_DAN13);
CEdit*Grid14=(CEdit*)GetDlgItem(IDC_DAN14);
CEdit*Grid15=(CEdit*)GetDlgItem(IDC_DAN15);
CEdit*Grid16=(CEdit*)GetDlgItem(IDC_DAN16);
CString danger1;
CString danger2;
CString danger3;
CString danger4;
CString danger5;
CString danger6;
CString danger7;
CString danger8;
CString danger9;
CString danger10;
CString danger11;
CString danger12;
CString danger13;
CString danger14;
CString danger15;
CString danger16;
danger1.Format("%d",handbook[0][0].pit+handbook[0][0].wumpus);
danger2.Format("%d",handbook[0][1].pit+handbook[0][1].wumpus);
danger3.Format("%d",handbook[0][2].pit+handbook[0][2].wumpus);
danger4.Format("%d",handbook[0][3].pit+handbook[0][3].wumpus);
danger5.Format("%d",handbook[1][0].pit+handbook[1][0].wumpus);
danger6.Format("%d",handbook[1][1].pit+handbook[1][1].wumpus);
danger7.Format("%d",handbook[1][2].pit+handbook[1][2].wumpus);
danger8.Format("%d",handbook[1][3].pit+handbook[1][3].wumpus);
danger9.Format("%d",handbook[2][0].pit+handbook[2][0].wumpus);
danger10.Format("%d",handbook[2][1].pit+handbook[2][1].wumpus);
danger11.Format("%d",handbook[2][2].pit+handbook[2][2].wumpus);
danger12.Format("%d",handbook[2][3].pit+handbook[2][3].wumpus);
danger13.Format("%d",handbook[3][0].pit+handbook[3][0].wumpus);
danger14.Format("%d",handbook[3][1].pit+handbook[3][1].wumpus);
danger15.Format("%d",handbook[3][2].pit+handbook[3][2].wumpus);
danger16.Format("%d",handbook[3][3].pit+handbook[3][3].wumpus);
Grid1->SetWindowText(danger1);Grid1->LineScroll(Grid1->GetLineCount());
Grid2->SetWindowText(danger2);Grid2->LineScroll(Grid2->GetLineCount());
Grid3->SetWindowText(danger3);Grid3->LineScroll(Grid3->GetLineCount());
Grid4->SetWindowText(danger4);Grid4->LineScroll(Grid4->GetLineCount());
Grid5->SetWindowText(danger5);Grid5->LineScroll(Grid5->GetLineCount());
Grid6->SetWindowText(danger6);Grid6->LineScroll(Grid6->GetLineCount());
Grid7->SetWindowText(danger7);Grid7->LineScroll(Grid7->GetLineCount());
Grid8->SetWindowText(danger8);Grid8->LineScroll(Grid8->GetLineCount());
Grid9->SetWindowText(danger9);Grid9->LineScroll(Grid9->GetLineCount());
Grid10->SetWindowText(danger10);Grid10->LineScroll(Grid10->GetLineCount());
Grid11->SetWindowText(danger11);Grid11->LineScroll(Grid11->GetLineCount());
Grid12->SetWindowText(danger12);Grid12->LineScroll(Grid12->GetLineCount());
Grid13->SetWindowText(danger13);Grid13->LineScroll(Grid13->GetLineCount());
Grid14->SetWindowText(danger14);Grid14->LineScroll(Grid14->GetLineCount());
Grid15->SetWindowText(danger15);Grid15->LineScroll(Grid15->GetLineCount());
Grid16->SetWindowText(danger16);Grid16->LineScroll(Grid16->GetLineCount());
// CDialog* dlg=(CDialog*)AfxGetApp()->m_pMainWnd;
// dlg->RedrawWindow();
}
void CVwumpusDlg::ShowSence(guide handbook[4][4])
{
CEdit*Grid1=(CEdit*)GetDlgItem(IDC_SEN1);
CEdit*Grid2=(CEdit*)GetDlgItem(IDC_SEN2);
CEdit*Grid3=(CEdit*)GetDlgItem(IDC_SEN3);
CEdit*Grid4=(CEdit*)GetDlgItem(IDC_SEN4);
CEdit*Grid5=(CEdit*)GetDlgItem(IDC_SEN5);
CEdit*Grid6=(CEdit*)GetDlgItem(IDC_SEN6);
CEdit*Grid7=(CEdit*)GetDlgItem(IDC_SEN7);
CEdit*Grid8=(CEdit*)GetDlgItem(IDC_SEN8);
CEdit*Grid9=(CEdit*)GetDlgItem(IDC_SEN9);
CEdit*Grid10=(CEdit*)GetDlgItem(IDC_SEN10);
CEdit*Grid11=(CEdit*)GetDlgItem(IDC_SEN11);
CEdit*Grid12=(CEdit*)GetDlgItem(IDC_SEN12);
CEdit*Grid13=(CEdit*)GetDlgItem(IDC_SEN13);
CEdit*Grid14=(CEdit*)GetDlgItem(IDC_SEN14);
CEdit*Grid15=(CEdit*)GetDlgItem(IDC_SEN15);
CEdit*Grid16=(CEdit*)GetDlgItem(IDC_SEN16);
CString sence1;
CString sence2;
CString sence3;
CString sence4;
CString sence5;
CString sence6;
CString sence7;
CString sence8;
CString sence9;
CString sence10;
CString sence11;
CString sence12;
CString sence13;
CString sence14;
CString sence15;
CString sence16;
if(handbook[0][0].in==unknown)
sence1=("?");
else if(handbook[0][0].in==blank)
sence1=("");
else sence1=("■");
if(handbook[0][1].in==unknown)
sence2=("?");
else if(handbook[0][1].in==blank)
sence2=("");
else sence2=("■");
if(handbook[0][2].in==unknown)
sence3=("?");
else if(handbook[0][2].in==blank)
sence3=("");
else sence3=("■");
if(handbook[0][3].in==unknown)
sence4=("?");
else if(handbook[0][3].in==blank)
sence4=("");
else sence4=("■");
if(handbook[1][0].in==unknown)
sence5=("?");
else if(handbook[1][0].in==blank)
sence5=("");
else sence5=("■");
if(handbook[1][1].in==unknown)
sence6=("?");
else if(handbook[1][1].in==blank)
sence6=("");
else sence6=("■");
if(handbook[1][2].in==unknown)
sence7=("?");
else if(handbook[1][2].in==blank)
sence7=("");
else sence7=("■");
if(handbook[1][3].in==unknown)
sence8=("?");
else if(handbook[1][3].in==blank)
sence8=("");
else sence8=("■");
if(handbook[2][0].in==unknown)
sence9=("?");
else if(handbook[2][0].in==blank)
sence9=("");
else sence9=("■");
if(handbook[2][1].in==unknown)
sence10=("?");
else if(handbook[2][1].in==blank)
sence10=("");
else sence10=("■");
if(handbook[2][2].in==unknown)
sence11=("?");
else if(handbook[2][2].in==blank)
sence11=("");
else sence11=("■");
if(handbook[2][3].in==unknown)
sence12=("?");
else if(handbook[2][3].in==blank)
sence12=("");
else sence12=("■");
if(handbook[3][0].in==unknown)
sence13=("?");
else if(handbook[3][0].in==blank)
sence13=("");
else sence13=("■");
if(handbook[3][1].in==unknown)
sence14=("?");
else if(handbook[3][1].in==blank)
sence14=("");
else sence14=("■");
if(handbook[3][2].in==unknown)
sence15=("?");
else if(handbook[3][2].in==blank)
sence15=("");
else sence15=("■");
if(handbook[3][3].in==unknown)
sence16=("?");
else if(handbook[3][3].in==blank)
sence16=("");
else sence16=("■");
Grid1->SetWindowText(sence1);Grid1->LineScroll(Grid1->GetLineCount());
Grid2->SetWindowText(sence2);Grid2->LineScroll(Grid2->GetLineCount());
Grid3->SetWindowText(sence3);Grid3->LineScroll(Grid3->GetLineCount());
Grid4->SetWindowText(sence4);Grid4->LineScroll(Grid4->GetLineCount());
Grid5->SetWindowText(sence5);Grid5->LineScroll(Grid5->GetLineCount());
Grid6->SetWindowText(sence6);Grid6->LineScroll(Grid6->GetLineCount());
Grid7->SetWindowText(sence7);Grid7->LineScroll(Grid7->GetLineCount());
Grid8->SetWindowText(sence8);Grid8->LineScroll(Grid8->GetLineCount());
Grid9->SetWindowText(sence9);Grid9->LineScroll(Grid9->GetLineCount());
Grid10->SetWindowText(sence10);Grid10->LineScroll(Grid10->GetLineCount());
Grid11->SetWindowText(sence11);Grid11->LineScroll(Grid11->GetLineCount());
Grid12->SetWindowText(sence12);Grid12->LineScroll(Grid12->GetLineCount());
Grid13->SetWindowText(sence13);Grid13->LineScroll(Grid13->GetLineCount());
Grid14->SetWindowText(sence14);Grid14->LineScroll(Grid14->GetLineCount());
Grid15->SetWindowText(sence15);Grid15->LineScroll(Grid15->GetLineCount());
Grid16->SetWindowText(sence16);Grid16->LineScroll(Grid16->GetLineCount());
// CDialog* dlg=(CDialog*)AfxGetApp()->m_pMainWnd;
// dlg->RedrawWindow();
}
void CVwumpusDlg::ShowGain(int score)
{
CEdit*Result=(CEdit*)GetDlgItem(IDC_HEROGAIN);
CString gain;
gain.Format("%d",score);
Result->SetWindowText(gain);
Result->LineScroll(Result->GetLineCount());
CDialog* dlg=(CDialog*)AfxGetApp()->m_pMainWnd;
dlg->UpdateWindow();
}
void CVwumpusDlg::ShowHeroInfo(CString Info)
{
CEdit*HInfo=(CEdit*)GetDlgItem(IDC_HEROINF);
HInfo->SetWindowText(Info);
HInfo->LineScroll(HInfo->GetLineCount());
// CDialog* dlg=(CDialog*)AfxGetApp()->m_pMainWnd;
// dlg->RedrawWindow();
}
void CVwumpusDlg::OnGame()
{
m_nOnceAgain.EnableWindow(FALSE);
m_nRandMap.EnableWindow(FALSE);
ShowState();
wait();
while(hero.alive&&!hero.success)
{
OnButton3();
wait();
}
m_nRandMap.EnableWindow(TRUE);
m_nGame.EnableWindow(FALSE);
m_nNext.EnableWindow(FALSE);
m_nOnceAgain.EnableWindow(TRUE);
}
void CVwumpusDlg::OnOnceagain()
{
// TODO: Add your control notification handler code here
m_nOnceAgain.EnableWindow(FALSE);
hero.Init();
HeroInfo="欢迎来到巫魔世界!\r\n";
OnShow();
}
void CVwumpusDlg::ShowState()
{
ShowMap(hero.map);
ShowDanger(hero.handbook);
ShowSence(hero.handbook);
ShowGain(hero.score);
ShowHeroInfo(HeroInfo);
}
void CVwumpusDlg::OnButton3()
{
// TODO: Add your control notification handler code here
if(hero.alive&&!hero.success)
{
hero.feel();
if(hero.gotgold&&hero.firstgetgold)
{
AfxMessageBox("英雄捡到金子!");
hero.firstgetgold=false;
}
if(!hero.wumpusalive&&hero.firstshootwumpus)
{
AfxMessageBox("耶,巫魔挂掉了!");
hero.firstshootwumpus=false;
}
if((hero.knownwupos&&hero.wumpusalive&&hero.arrow))//||(hero.arrow&&hero.noway&&(hero.x==hero.wumpos.x||hero.y==hero.wumpos.y))||
// (hero.arrow&&hero.stepcount>=16&&hero.wumpusalive&&(hero.x==hero.wumpos.x||hero.y==hero.wumpos.y))
hero.shoot();
if(hero.noway)
{
hero.turnback();
hero.noway=false;
}
hero.handbook[hero.x][hero.y].in=blank;
if(hero.alive&&!hero.success)
{
hero.stepforward();
if(hero.map.maze[hero.x][hero.y].sthin==blank)
hero.map.maze[hero.x][hero.y].sthin=him;
}
}
else
{
if(!hero.alive)
AfxMessageBox("真可惜,我们的小英雄不小心挂了!");
if(hero.success)
AfxMessageBox("啊哈,我们的小英雄凯旋归来了!");
m_nOnceAgain.EnableWindow(TRUE);
m_nNext.EnableWindow(FALSE);
}
ShowState();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -