我正在寫一個小型的紙牌遊戲,我被卡住了。 只是一些基本的: 1)視圖觀察模型 2)控制器決定何時顯示輸出窗口時顯示輸入窗口 3)模型做了所有的數學MVC:命令行應用程序中的實現問題
嗯,它看起來像我的控制器必須是一個模型的觀察者,這是不好的,據我所知,也是錯誤的。
我的情況:有正值當用戶做出選擇,並通過命令行確認了一下。
char View::getPlayersChoice
{
while (cin>>choice)
{
if (choice == 'y' || choice == 'n')
controller.getPlayersChoice(choice)
else
cout<<"Invalid input. Please try again."
}
}
所以不知何故,我的控制器必須知道什麼時候到了,並調用View的函數getPlayersChoice。我看到的唯一方法是: 1)模型需要一些用戶輸入 2)模型告訴控制器:「嘿,給我輸入!」 3)控制器說「好」,並調用view.getPlayersChoice 4)控制器給模型輸入
但同樣,模型應該對控制器和視圖一無所知。 那麼,我該如何解決這個問題呢? 感謝您的幫助
附: 我有一個想法:也許我應該創建類似事件的事情,並將其作爲參數傳遞,如observer.update(eventThatHappened)
。視圖獲取事件,調用適當的方法,但控制器的工作是決定用戶何時輸入信息以及何時應該顯示信息。
'if(choice =='y'||'n')'不會做你認爲它做的! –
哎呀,謝謝你指出,我會更新我的帖子。 – eoLithic