Trong trò chơi quản lý trực tuyến (như Hattrick), tôi muốn mô phỏng các trận đấu giữa hai đội.Mô phỏng các trận đấu thể thao trong trò chơi trực tuyến
Một nhóm gồm 11 người chơi. Mỗi người chơi có một giá trị sức mạnh từ 1 đến 100. Tôi lấy các giá trị sức mạnh của các cầu thủ phòng ngự cho mỗi đội và tính toán mức trung bình. Đó là chất lượng phòng thủ của một đội. Sau đó, tôi lấy điểm mạnh của những người chơi tấn công và tôi nhận được chất lượng tấn công.
Đối với mỗi cuộc tấn công, tôi làm như sau:
$offFactor = ($attackerTeam_offensive-$defenderTeam_defensive)/max($attackerTeam_offensive, $defenderTeam_defensive);
$defFactor = ($defenderTeam_defensive-$attackerTeam_offensive)/max($defenderTeam_defensive, $attackerTeam_offensive);
Tại thời điểm này, tôi không biết tại sao tôi chia nó bằng một cao hơn của cả hai giá trị. Nhưng công thức này sẽ cung cấp cho bạn một yếu tố cho chất lượng của hành vi phạm tội và quốc phòng mà là cần thiết sau này.
Sau đó, tôi có các câu lệnh có điều kiện lồng nhau cho mỗi sự kiện có thể xảy ra. Ví dụ: Đội tấn công có cơ hội ghi bàn không?
if ((mt_rand((-10+$offAdditionalFactor-$defAdditionalFactor), 10)/10)+$offFactor >= 0)
{ ... // the attack succeeds
Các yếu tố bổ sung này có thể là giá trị chiến thuật chẳng hạn.
Bạn có nghĩ đây là cách hay để tính toán trò chơi không? Người dùng của tôi nói rằng họ không hài lòng với chất lượng của các mô phỏng. Làm thế nào tôi có thể cải thiện chúng? Bạn có phương pháp tiếp cận khác nhau mà có thể cho kết quả tốt hơn? Hoặc bạn có nghĩ rằng cách tiếp cận của tôi là tốt và tôi chỉ cần điều chỉnh các giá trị trong các câu lệnh có điều kiện và thử nghiệm một chút?
Tôi hy vọng bạn có thể giúp tôi. Cảm ơn trước!
Các tính toán 10 trong các phép tính thể hiện cụ thể trong mô phỏng này là gì? –
Điều gì về chất lượng của mô phỏng là họ không hài lòng với? –
@Kyle Walsh: 10s chỉ được sử dụng vì hàm mt_rand() chỉ lấy giá trị số nguyên. Tôi muốn tạo ra một giá trị ngẫu nhiên giữa -1 (hoặc cao hơn tùy thuộc vào các yếu tố bổ sung) và +1 là một giá trị dấu phẩy động. – caw