void DungeonLayer::_consumeMonsterRoomDatas() { for (auto data : _monsterRoomDatas) { auto dice = data->getMonsterDice(); auto room = data->getRoom(); dice->roll(); auto coordinate = Game::getInstance()->getDungeon()->getCoordinateForRoom(room); auto roomSprite = this->_getRoomSpriteForCoordinate(coordinate); roomSprite->addDice(dice); } _monsterRoomDatas.clear(); }
void CDiceView::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default if(buttonRect.PtInRect(point)) { btnClicked =false; CWnd::InvalidateRect(buttonRect); // players[0].maxConnection = countMaxConnection(0); addDice(0); players[0].isMyTurn = false; CWnd::InvalidateRect(players[0].maxConnectionRect); AIaction(); } CView::OnLButtonUp(nFlags, point); }
void CDiceView::actInTurn(int country) { set<int> finishedNodes; MSG msg; while(1) { for(set<int>::iterator iter = players[country].nodes.begin(); iter != players[country].nodes.end(); iter++) { int AIchosenNode = *iter; if(finishedNodes.find(AIchosenNode) != finishedNodes.end()) continue; for(set<int>::iterator pNeighbor = path[*iter].begin(); pNeighbor != path[*iter].end(); pNeighbor++) { int selectedNode = *pNeighbor; if(isFightable(AIchosenNode, selectedNode) && nodes[AIchosenNode].diceNum >= nodes[selectedNode].diceNum) { nodes[AIchosenNode].isChosen = true; nodes[selectedNode].isChosen = true; CWnd::InvalidateRect(nodes[AIchosenNode].nodeRect); CWnd::InvalidateRect(nodes[selectedNode].nodeRect); // CWnd::Invalidate(); // GetMessage(&msg,NULL,0,0); // TranslateMessage(&msg); // DispatchMessage(&msg); // ::Sleep(10); fight(AIchosenNode, selectedNode); } } finishedNodes.insert(AIchosenNode); } if(finishedNodes.size() == players[country].nodes.size()) break; } players[country].maxConnection = countMaxConnection(country); addDice(country); }
/* Definition of main */ int main(int argc, char* argv[]) //int main(void) { if(argc == 1){ printf("%d\n", rolltimes); return 1; } else if(argc > 3){ printf("No\n"); return 1; } else if(argc == 3) { if(strtod(argv[2], '\0')) { astkDelimitor = strtod(argv[2], '\0'); } } if(strtod(argv[1], '\0')){ rolltimes = strtod(argv[1], '\0'); printf("Rolltime:%d\n", rolltimes); int dice1, dice2, sum, increment, percentCounter; double expectedPercentage[13] = {0, 0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1}; int values[13] = {0}; for( increment = 0 ; increment < rolltimes ; increment++ ) { rollDice(&dice1, &dice2); addDice(&sum, &dice1, &dice2); switch (sum){ case 1: values[1]++; break; case 2: values[2]++; break; case 3: values[3]++; break; case 4: values[4]++; break; case 5: values[5]++; break; case 6: values[6]++; break; case 7: values[7]++; break; case 8: values[8]++; break; case 9: values[9]++; break; case 10: values[10]++; break; case 11: values[11]++; break; case 12: values[12]++; break; } } printHistogram(values, &astkDelimitor); printf("Percentages\n\t Expected %\tActual %\tDifference\n"); //printf("%d Rolltime:", rolltimes); for(percentCounter=2;percentCounter<=12;percentCounter++){ printf("%d\t %.2lf\t\t%.2lf\t\t%.2lf\n", percentCounter, ((expectedPercentage[percentCounter]/36)*100), (((values [percentCounter])/rolltimes)*100),(((expectedPercentage [percentCounter]/36)*100)-(((values[percentCounter])/ rolltimes)*100))); //printf("!!!!!!!!!!!!!!!!%d", values[e]); //printf("%d", (values[e]/rolltimes)); } } }