- 分享
c++答案 新
- @ 2026-10-13 15:26:48
c++答案 新
答案看下面
28 条评论
-
-
````language`
#include<iostream> using namespace std; bool isPrime(int n){ if(n<2) return 0; for(int i=2;i*i<=n;i++){ if(n%i==0) return 0; } return 1; } int main(){ int c=0; for(int i=2;i<100;i++){ if(isPrime(i)){ cout<<i<<" "; c++; } } cout<<endl<<c<<endl; return 0; } -
````language`
#include<iostream> using namespace std; bool isUglyNumber(int num){ while(num%2==0){ num/=2; } while(num%3==0){ num/3; } while(num%5==0){ num/=5; } return(num==1); } int main(){ int count=0; for(int i=1;i<=100;i++){ if(isUglyNumber(i)){ cout<<i<<" "; count++; } } cout<<endl; cout<<"1-100之间有"<<count<<"个丑数"; return 0; } -
#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i==0) cout<<i<<" "<<n/i<<endl; } return 0; }
-
#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }
-
#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }#include using namespace std; int main(){ int n; cin>>n; for(int i=2;i<n;i++){ if(n%i0) cout<<i<<" "<<n/i<<endl; } return 0; }
-
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
-
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
-
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
-
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
-
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
-
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
-
#include<bits/stdc++.h> #include <windows.h> using namespace std; // ====================== 全局结构体 ====================== // 角色配置:数量+名称 struct IDname { int cnt; string name; } roleCfg[100]; // 玩家信息 struct Player { int id; // 座位号 bool alive; // 是否存活 string role; // 身份 int know; // 玩家知晓信息:0未知/1好人狼人/2完整身份 int dieReason; // 死亡原因:0存活/1狼刀/2投票/3毒杀/4猎人枪 } player[21]; // 投票结构体 struct Vote { int voteCnt; // 得票数 int id; // 玩家编号 bool canVote; // 是否拥有本轮投票权 } voteArr[13]; // ====================== 全局变量 ====================== int n; // 总人数 int mySelf; // 玩家自身座位 int killWolf; // 狼人刀人目标 int killPoison; // 女巫毒人目标 char op; // 操作输入字符 bool hasCure = true; // 女巫解药 bool hasPoison = true; // 女巫毒药 int hunterId = 0; // 猎人座位 int guardId = 0; // 守卫座位 int guardTarget = 0; // 守卫当晚守护目标 bool hunterShot = false;// 猎人是否已经开枪 int randSeedArr[10] = {7,4,6,43,35,1,2,8,20,19}; // ====================== 函数声明 ====================== void initRoleBase(); void setRoleCount(int num); void randomAssignRole(int idx); bool cmpVoteDesc(Vote a, Vote b); bool cmpVoteIdAsc(Vote a, Vote b); void printGameUI(int day, bool isNight); void guardSleep(int day, bool isNight); void voteProcess(int day, bool isNight); bool checkGameOver(); void nightFirstRound(); void nightLoop(int day, bool isNight); void hunterShoot(); void printDeadNotice(); void showGameResult(); // ====================== 初始化角色基础名称 ====================== void initRoleBase() { roleCfg[1].name = "村民 "; roleCfg[2].name = "狼人 "; roleCfg[3].name = "女巫 "; roleCfg[4].name = "预言家 "; roleCfg[5].name = "猎人 "; roleCfg[6].name = "守卫 "; } // ====================== 根据人数配置各角色数量 ====================== void setRoleCount(int num) { // 全部清零 for(int i = 1; i <= 6; i++) roleCfg[i].cnt = 0; switch(num) { case 6: roleCfg[1].cnt = 3; roleCfg[2].cnt = 2; break; case 7: roleCfg[1].cnt = 3; roleCfg[2].cnt = 2; roleCfg[3].cnt = 1; roleCfg[4].cnt = 1; break; case 8: roleCfg[1].cnt = 3; roleCfg[2].cnt = 3; roleCfg[3].cnt = 1; roleCfg[4].cnt = 1; break; case 9: roleCfg[1].cnt = 3; roleCfg[2].cnt = 3; roleCfg[3].cnt = 1; roleCfg[4].cnt = 1; roleCfg[5].cnt = 1; break; case 10: roleCfg[1].cnt = 4; roleCfg[2].cnt = 3; roleCfg[3].cnt = 1; roleCfg[4].cnt = 1; roleCfg[5].cnt = 1; break; case 11: roleCfg[1].cnt = 4; roleCfg[2].cnt = 4; roleCfg[3].cnt = 1; roleCfg[4].cnt = 1; roleCfg[5].cnt = 1; break; case 12: roleCfg[1].cnt = 4; roleCfg[2].cnt = 4; roleCfg[3].cnt = 1; roleCfg[4].cnt = 1; roleCfg[5].cnt = 1; roleCfg[6].cnt = 1; break; default: cout << "人数输入错误,程序退出!" << endl; system("pause"); exit(0); } } // ====================== 随机分配单个玩家身份 ====================== void randomAssignRole(int idx) { srand((unsigned)time(0)); Sleep(rand() % 44); int base = 10000; int t = rand(); int y = randSeedArr[(rand() % 100 + t) % 10]; int selRole; // 根据人数限定可选角色范围 if(n <= 6) selRole = abs(base * 6 / y) % 3 + 1; else if(n <= 8) selRole = abs(base * 7 / y) % 4 + 1; else if(n <= 11) selRole = abs(base * 8 / y) % 5 + 1; else selRole = abs(base * 9 / y) % 6 + 1; // 循环找到还有剩余名额的角色 while(true) { if(n <= 6) selRole = selRole % 3 + 1; else if(n <= 8) selRole = selRole % 4 + 1; else if(n <= 11) selRole = selRole % 5 + 1; else selRole = selRole % 6 + 1; if(roleCfg[selRole].cnt > 0) break; } // 赋值玩家信息 player[idx].role = roleCfg[selRole].name; player[idx].alive = true; player[idx].id = idx; player[idx].know = 0; player[idx].dieReason = 0; roleCfg[selRole].cnt--; // 记录猎人、守卫位置 if(player[idx].role == "猎人 ") hunterId = idx; if(player[idx].role == "守卫 ") guardId = idx; } // ====================== 投票排序规则:得票降序,同票编号升序 ====================== bool cmpVoteDesc(Vote a, Vote b) { if(a.voteCnt != b.voteCnt) return a.voteCnt > b.voteCnt; return a.id < b.id; } // 按编号升序 bool cmpVoteIdAsc(Vote a, Vote b) { return a.id < b.id; } // ====================== 控制台UI打印(状态面板) ====================== void printGameUI(int day, bool isNight) { HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); // 白天白底,夜晚黑底 if(isNight) SetConsoleTextAttribute(hConsole, BACKGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE | FOREGROUND_INTENSITY); else SetConsoleTextAttribute(hConsole, FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); cout << "\t\t\t\t第" << day << "天 "; if(isNight) cout << "夜晚" << endl; else cout << "白天" << endl; cout << "你的座位:" << mySelf << "号" << endl << endl; // 1~6号玩家 cout << "1-6号位:"; for(int i = 1; i <= 6; i++) cout << player[i].id << "号\t"; cout << "\n存活状态:"; for(int i = 1; i <= 6; i++) { if(player[i].alive) SetConsoleTextAttribute(hConsole, isNight ? (BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE|FOREGROUND_INTENSITY|FOREGROUND_GREEN) : (FOREGROUND_INTENSITY|FOREGROUND_GREEN)); else SetConsoleTextAttribute(hConsole, isNight ? (BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE|FOREGROUND_INTENSITY|FOREGROUND_RED) : (FOREGROUND_INTENSITY|FOREGROUND_RED)); cout << (player[i].alive ? "存活\t" : "死亡\t"); } SetConsoleTextAttribute(hConsole, isNight ? (BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE|FOREGROUND_INTENSITY) : (FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE)); cout << "\n身份信息:"; for(int i = 1; i <= 6; i++) { if(player[i].know == 0) cout << "未知\t"; else if(player[i].know == 1) cout << (player[i].role == "狼人 " ? "狼人\t" : "好人\t"); else cout << player[i].role << "\t"; } cout << "\n\n"; // 7~n号玩家 if(n >= 7) { cout << "7-" << n << "号位:"; for(int i = 7; i <= n; i++) cout << player[i].id << "号\t"; cout << "\n存活状态:"; for(int i = 7; i <= n; i++) { if(player[i].alive) SetConsoleTextAttribute(hConsole, isNight ? (BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE|FOREGROUND_INTENSITY|FOREGROUND_GREEN) : (FOREGROUND_INTENSITY|FOREGROUND_GREEN)); else SetConsoleTextAttribute(hConsole, isNight ? (BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE|FOREGROUND_INTENSITY|FOREGROUND_RED) : (FOREGROUND_INTENSITY|FOREGROUND_RED)); cout << (player[i].alive ? "存活\t" : "死亡\t"); } SetConsoleTextAttribute(hConsole, isNight ? (BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE|FOREGROUND_INTENSITY) : (FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE)); cout << "\n身份信息:"; for(int i = 7; i <= n; i++) { if(player[i].know == 0) cout << "未知\t"; else if(player[i].know == 1) cout << (player[i].role == "狼人 " ? "狼人\t" : "好人\t"); else cout << player[i].role << "\t"; } cout << "\n\n"; } } // ====================== 守卫夜间守护流程 ====================== void guardSleep(int day, bool isNight) { Sleep(3000); system("cls"); printGameUI(day, isNight); cout << "守~卫~请~睁~眼~~~\n"; Sleep(3000); system("cls"); printGameUI(day, isNight); int tar; // 玩家自己是守卫 if(mySelf == guardId && player[mySelf].alive) { cout << "请输入今晚要守护的玩家编号:"; cin >> tar; while(tar == guardTarget || tar < 1 || tar > n || !player[tar].alive) { cout << "输入非法,请重新输入:"; cin >> tar; } guardTarget = tar; } // AI守卫 else if(player[guardId].alive) { do { srand((unsigned)time(0)); tar = rand() % n + 1; } while(tar == guardTarget || !player[tar].alive); guardTarget = tar; } // 无守卫/守卫已死 else guardTarget = -1; Sleep(3000); system("cls"); printGameUI(day, isNight); cout << "守~卫~请~闭~眼~~~\n"; } // ====================== 白天投票流程(最多三轮平票) ====================== void voteProcess(int day, bool isNight) { Sleep(2000); system("cls"); printGameUI(day, isNight); cout << "开始投票"; for(int i = 1; i <= 3; i++) { cout << "."; Sleep(500); } cout << endl; // 初始化投票数据 for(int i = 1; i <= n; i++) { voteArr[i].id = i; voteArr[i].canVote = true; voteArr[i].voteCnt = 0; } // ========== 第一轮投票 ========== for(int i = 1; i <= n; i++) { if(!player[i].alive) continue; Sleep(3000); int tar; if(i == mySelf) { cout << "请投票(输入0弃权):"; cin >> tar; while(tar != 0 && !player[tar].alive) cin >> tar; if(tar == 0) cout << mySelf << "号弃权\n"; else { cout << mySelf << "投给" << tar << "号\n"; voteArr[tar].voteCnt++; } } else { srand((unsigned)time(0)); // 狼人优先投好人 if(player[i].role == "狼人 ") { do { tar = rand() % (n + 1); } while(tar != 0 && (!player[tar].alive || player[tar].role == "狼人 " || tar == i)); } // 预言家优先投狼 else if(player[i].role == "预言家 ") { do { tar = rand() % (n + 1); } while(tar != 0 && (!player[tar].alive || player[tar].role != "狼人 " || tar == i)); } // 村民随机投 else { do { tar = rand() % (n + 1); } while(tar != 0 && (!player[tar].alive || tar == i)); } if(tar == 0) cout << i << "号弃权\n"; else { cout << i << "投给" << tar << "号\n"; voteArr[tar].voteCnt++; } } } Sleep(3000); sort(voteArr + 1, voteArr + n + 1, cmpVoteDesc); // 无平票直接出局 if(voteArr[1].voteCnt > voteArr[2].voteCnt) { int out = voteArr[1].id; cout << "投票结束," << out << "号被投票出局!\n"; player[out].alive = false; player[out].dieReason = 2; Sleep(3000); return; } // 标记平票玩家本轮无投票权 int maxVote = voteArr[1].voteCnt; for(int i = 1; i <= n; i++) { if(voteArr[i].voteCnt == maxVote) voteArr[i].canVote = false; else break; } system("cls"); printGameUI(day, isNight); cout << "平票!进入第二轮投票\n"; // ========== 第二轮投票 ========== sort(voteArr + 1, voteArr + n + 1, cmpVoteIdAsc); cout << "二次投票"; for(int i = 1; i <= 3; i++) { cout << "."; Sleep(500); } cout << endl; for(int i = 1; i <= n; i++) { if(!player[i].alive || !voteArr[i].canVote) continue; Sleep(3000); int tar; if(i == mySelf) { cout << "请投票(0弃权):"; cin >> tar; while(tar != 0 && (!player[tar].alive || !voteArr[tar].canVote)) cin >> tar; if(tar != 0) voteArr[tar].voteCnt++; } else { srand((unsigned)time(0)); if(player[i].role == "狼人 ") { do { tar = rand() % (n + 1); } while(tar != 0 && (!player[tar].alive || player[tar].role == "狼人 " || tar == i || !voteArr[tar].canVote)); } else if(player[i].role == "预言家 ") { do { tar = rand() % (n + 1); } while(tar != 0 && (!player[tar].alive || player[tar].role != "狼人 " || tar == i || !voteArr[tar].canVote)); } else { do { tar = rand() % (n + 1); } while(tar != 0 && (!player[tar].alive || tar == i || !voteArr[tar].canVote)); } if(tar != 0) voteArr[tar].voteCnt++; } } Sleep(3000); sort(voteArr + 1, voteArr + n + 1, cmpVoteDesc); if(voteArr[1].voteCnt > voteArr[2].voteCnt) { int out = voteArr[1].id; cout << "投票结束," << out << "号被投票出局!\n"; player[out].alive = false; player[out].dieReason = 2; Sleep(3000); return; } // 再次标记平票 maxVote = voteArr[1].voteCnt; for(int i = 1; i <= n; i++) { if(voteArr[i].voteCnt == maxVote) voteArr[i].canVote = false; else break; } system("cls"); printGameUI(day, isNight); cout << "再次平票!第三轮投票\n"; // ========== 第三轮投票 ========== sort(voteArr + 1, voteArr + n + 1, cmpVoteIdAsc); cout << "最终投票"; for(int i = 1; i <= 3; i++) { cout << "."; Sleep(500); } cout << endl; for(int i = 1; i <= n; i++) { if(!player[i].alive || !voteArr[i].canVote) continue; Sleep(3000); int tar; if(i == mySelf) { cout << "请投票(0弃权):"; cin >> tar; while(tar != 0 && (!player[tar].alive || !voteArr[tar].canVote)) cin >> tar; if(tar != 0) voteArr[tar].voteCnt++; } else { srand((unsigned)time(0)); if(player[i].role == "狼人 ") { do { tar = rand() % (n + 1); } while(tar != 0 && (!player[tar].alive || player[tar].role == "狼人 " || tar == i || !voteArr[tar].canVote)); } else if(player[i].role == "预言家 " || player[i].role == "猎人 ") { do { tar = rand() % (n + 1); } while(tar != 0 && (!player[tar].alive || player[tar].role != "狼人 " || tar == i || !voteArr[tar].canVote)); } else { do { tar = rand() % (n + 1); } while(tar != 0 && (!player[tar].alive || tar == i || !voteArr[tar].canVote)); } if(tar != 0) voteArr[tar].voteCnt++; } } Sleep(3000); sort(voteArr + 1, voteArr + n + 1, cmpVoteDesc); if(voteArr[1].voteCnt > voteArr[2].voteCnt) { int out = voteArr[1].id; cout << "投票结束," << out << "号被投票出局!\n"; player[out].alive = false; player[out].dieReason = 2; } else { cout << "三轮投票全部平票,无人出局\n"; } Sleep(5000); } // ====================== 判断游戏是否结束 ====================== bool checkGameOver() { int villager = 0; // 存活村民 int wolf = 0; // 存活狼人 int god = 0; // 存活神(女巫/预言/猎人/守卫) for(int i = 1; i <= n; i++) { if(!player[i].alive) continue; if(player[i].role == "狼人 ") wolf++; else if(player[i].role == "村民 ") villager++; else god++; } // 好人全灭 / 狼人数量>=好人直接胜利 if(god == 0 || wolf == 0 || wolf >= villager + god) return true; return false; } // ====================== 第一晚夜晚流程(无前日数据) ====================== void nightFirstRound() { system("cls"); system("color 0f"); printGameUI(1, true); cout << "天~黑~请~闭~眼~~~\n"; guardTarget = 0; if(n >= 12) guardSleep(1, true); Sleep(3000); // 狼人行动 system("cls"); printGameUI(1, true); cout << "狼~人~请~睁~眼~~~\n"; if(player[mySelf].role == "狼人 ") { Sleep(1000); cout << "你的狼队友:"; for(int i = 1; i <= n; i++) { if(i == mySelf) continue; if(player[i].role == "狼人 ") { cout << i << "号 "; player[i].know = 2; } } Sleep(3000); cout << "\n输入今晚刀人目标:"; cin >> killWolf; system("cls"); printGameUI(1, true); cout << "今晚击杀目标:" << killWolf << "号\n"; } else { Sleep(4000); // AI狼人随机刀好人 do { srand((unsigned)time(0)); killWolf = rand() % n + 1; } while(player[killWolf].role == "狼人 " || !player[killWolf].alive); Sleep(5000); } Sleep(3000); system("cls"); printGameUI(1, true); cout << "狼~人~请~闭~眼~~~\n"; Sleep(2000); // 女巫行动 system("cls"); printGameUI(1, true); cout << "女~巫~请~睁~眼~~~\n"; Sleep(2000); system("cls"); printGameUI(1, true); killPoison = 0; int witchId = 0; for(int i = 1; i <= n; i++) if(player[i].role == "女巫 ") witchId = i; if(player[mySelf].role == "女巫 " && player[mySelf].alive) { Sleep(1000); if(hasCure) { cout << "今晚" << killWolf << "号中刀\n是否使用解药?A救/B不救:"; cin >> op; if(op == 'A') { cout << "你解救了" << killWolf << "号\n"; hasCure = false; if(guardTarget != killWolf) killWolf = 0; // 询问毒药 Sleep(2000); system("cls"); printGameUI(1, true); cout << "是否使用毒药?A毒/B不毒:"; cin >> op; if(op == 'A' && hasPoison) { cout << "输入毒杀目标:"; cin >> killPoison; while(!player[killPoison].alive) { cin >> killPoison; } hasPoison = false; } } else { if(guardTarget == killWolf) killWolf = 0; Sleep(2000); system("cls"); printGameUI(1, true); cout << "是否使用毒药?A毒/B不毒:"; cin >> op; if(op == 'A' && hasPoison) { cout << "输入毒杀目标:"; cin >> killPoison; while(!player[killPoison].alive) { cin >> killPoison; } hasPoison = false; } } } else { if(guardTarget == killWolf) killWolf = 0; Sleep(2000); system("cls"); printGameUI(1, true); cout << "是否使用毒药?A毒/B不毒:"; cin >> op; if(op == 'A' && hasPoison) { cout << "输入毒杀目标:"; cin >> killPoison; while(!player[killPoison].alive) { cin >> killPoison; } hasPoison = false; } } } else { // AI女巫逻辑 bool useCure = false; if(hasCure && player[witchId].alive) { // 优先救神 if(player[killWolf].role == "预言家 " || player[killWolf].role == "女巫 " || player[killWolf].role == "猎人 ") { if(guardTarget != killWolf) { killWolf = 0; hasCure = false; useCure = true; } } } // 有药随机毒好人 if(!useCure && hasPoison && player[witchId].alive) { srand((unsigned)time(0)); if(rand() % 2 == 1) { do { killPoison = rand() % n + 1; } while(player[killPoison].role == "女巫 " || player[killPoison].role == "预言家 " || killPoison == killWolf || !player[killPoison].alive); hasPoison = false; } } } Sleep(3000); system("cls"); printGameUI(1, true); cout << "女~巫~请~闭~眼~~~\n"; // 预言家行动(6人局无预言家) if(n > 6) { Sleep(3000); system("cls"); printGameUI(1, true); cout << "预~言~家~请~睁~眼~~~\n"; if(player[mySelf].role == "预言家 ") { Sleep(3000); int check; cout << "输入查验玩家编号:"; cin >> check; player[check].know = 1; Sleep(2000); system("cls"); printGameUI(1, true); cout << "该玩家身份:" << (player[check].role == "狼人 " ? "狼人" : "好人") << "\n"; } else { Sleep(3000); cout << "AI预言家查验中...\n"; } Sleep(3000); system("cls"); printGameUI(1, true); cout << "预~言~家~请~闭~眼~~~\n"; } Sleep(3000); // 结算死亡 if(killWolf != 0) { player[killWolf].alive = false; player[killWolf].dieReason = 1; } if(killPoison != 0) { player[killPoison].alive = false; player[killPoison].dieReason = 3; } system("cls"); system("color F0"); printGameUI(2, false); } // ====================== 通用夜晚流程(第二晚及以后) ====================== void nightLoop(int day, bool isNight) { system("cls"); system("color 0f"); printGameUI(day, true); cout << "天~黑~请~闭~眼~~~\n"; guardTarget = 0; if(n >= 12) guardSleep(day, true); Sleep(3000); // 狼人刀人 system("cls"); printGameUI(day, true); cout << "狼~人~请~睁~眼~~~\n"; if(player[mySelf].role == "狼人 " && player[mySelf].alive) { Sleep(3000); cout << "输入刀人目标:"; cin >> killWolf; system("cls"); printGameUI(day, true); cout << "今晚击杀:" << killWolf << "号\n"; } else { do { srand((unsigned)time(0)); killWolf = rand() % n + 1; } while(player[killWolf].role == "狼人 " || !player[killWolf].alive); Sleep(5000); } Sleep(3000); system("cls"); printGameUI(day, true); cout << "狼~人~请~闭~眼~~~\n"; Sleep(2000); // 女巫 system("cls"); printGameUI(day, true); cout << "女~巫~请~睁~眼~~~\n"; Sleep(2000); system("cls"); printGameUI(day, true); killPoison = 0; int witchId = 0; for(int i = 1; i <= n; i++) if(player[i].role == "女巫 ") witchId = i; if(player[mySelf].role == "女巫 " && player[mySelf].alive) { if(hasCure) { cout << killWolf << "号中刀,解药A救/B不救:"; cin >> op; if(op == 'A') { hasCure = false; if(guardTarget != killWolf) killWolf = 0; } else { if(guardTarget == killWolf) killWolf = 0; } } else { if(guardTarget == killWolf) killWolf = 0; } if(hasPoison) { cout << "是否毒人?A毒/B不毒:"; cin >> op; if(op == 'A') { cout << "输入毒目标:"; cin >> killPoison; while(!player[killPoison].alive) cin >> killPoison; hasPoison = false; } } } else { bool useCure = false; if(hasCure && player[witchId].alive) { if(player[killWolf].role == "预言家 " || player[killWolf].role == "猎人 ") { if(guardTarget != killWolf) { killWolf = 0; hasCure = false; useCure = true; } } } if(!useCure && hasPoison && player[witchId].alive) { srand((unsigned)time(0)); if(rand() % 2 == 1) { do { killPoison = rand() % n + 1; } while(player[killPoison].role == "女巫 " || player[killPoison].role == "预言家 " || killPoison == killWolf || !player[killPoison].alive); hasPoison = false; } } } Sleep(3000); system("cls"); printGameUI(day, true); cout << "女~巫~请~闭~眼~~~\n"; // 预言家 if(n > 6) { Sleep(3000); system("cls"); printGameUI(day, true); cout << "预~言~家~请~睁~眼~~~\n"; if(player[mySelf].role == "预言家 " && player[mySelf].alive) { int check; cout << "查验编号:"; cin >> check; player[check].know = 1; cout << "身份:" << (player[check].role == "狼人 " ? "狼人" : "好人") << "\n"; } else { cout << "AI预言家查验\n"; } Sleep(3000); system("cls"); printGameUI(day, true); cout << "预~言~家~请~闭~眼~~~\n"; } Sleep(3000); // 结算死亡 if(killWolf != 0) { player[killWolf].alive = false; player[killWolf].dieReason = 1; } if(killPoison != 0) { player[killPoison].alive = false; player[killPoison].dieReason = 3; } system("cls"); system("color F0"); printGameUI(day + 1, false); } // ====================== 猎人开枪 ====================== void hunterShoot() { if(hunterShot) return; hunterShot = true; int shootTar; if(mySelf == hunterId) { cout << "你被淘汰,请选择开枪带走一人:"; cin >> shootTar; while(!player[shootTar].alive) { cin >> shootTar; } } else { srand((unsigned)time(0)); do { shootTar = rand() % n + 1; } while(!player[shootTar].alive); } cout << hunterId << "号猎人开枪带走" << shootTar << "号\n"; player[shootTar].alive = false; player[shootTar].dieReason = 4; Sleep(1000); } // ====================== 天亮死亡播报 ====================== void printDeadNotice() { cout << "天亮了!昨晚"; if(killWolf == 0 && killPoison == 0) { cout << "平安夜\n"; return; } if(killWolf != 0) cout << killWolf << "号"; if(killPoison != 0) cout << "," << killPoison << "号"; cout << "玩家死亡\n"; killPoison = 0; } // ====================== 游戏结束展示全部身份与结局 ====================== void showGameResult() { int villager = 0, wolf = 0, god = 0; for(int i = 1; i <= n; i++) { if(!player[i].alive) continue; if(player[i].role == "狼人 ") wolf++; else if(player[i].role == "村民 ") villager++; else god++; } if(wolf >= villager + god || god == 0) cout << "===== 狼人阵营胜利 =====" << endl; else cout << "===== 好人阵营胜利 =====" << endl; cout << "\n全部玩家身份详情:\n"; cout << left << setw(4) << "座位" << setw(8) << "身份" << setw(6) << "状态" << "死亡原因\n"; for(int i = 1; i <= n; i++) { cout << left << setw(4) << player[i].id << setw(8) << player[i].role; if(player[i].alive) cout << setw(6) << "存活" << "全程存活\n"; else { cout << setw(6) << "死亡"; switch(player[i].dieReason) { case 1: cout << "狼人刀杀\n"; break; case 2: cout << "投票放逐\n"; break; case 3: cout << "女巫毒杀\n"; break; case 4: cout << "猎人枪杀\n"; break; } } } system("pause"); system("pause"); } // ====================== 主函数游戏循环 ====================== int main() { system("cls"); cout << "========== 控制台狼人杀 ==========\n"; cout << "请输入游玩人数(6~12):"; cin >> n; cout << "身份分配加载中,请稍候"; initRoleBase(); setRoleCount(n); // 随机分配所有玩家身份 for(int i = 1; i <= n; i++) { randomAssignRole(i); cout << "."; Sleep(17); } system("cls"); system("color F0"); cout << "游戏即将开始"; for(int i = 1; i <= 6; i++) { cout << "."; Sleep(500); } Sleep(1500); // 分配玩家自身身份 cout << "\n\n查看你的身份牌......\n"; srand((unsigned)time(0)); mySelf = rand() % n + 1; cout << "你的身份:" << player[mySelf].role << "\n座位:" << mySelf << "号\n"; system("pause"); system("cls"); player[mySelf].know = 2; printGameUI(1, false); cout << "即将进入第一个夜晚"; for(int i = 1; i <= 6; i++) { cout << "."; Sleep(500); } // 第一晚 nightFirstRound(); printDeadNotice(); if(checkGameOver()) { Sleep(1000); system("cls"); showGameResult(); return 0; } // 猎人出局开枪 if(!player[hunterId].alive && !hunterShot) hunterShoot(); if(checkGameOver()) { Sleep(1000); system("cls"); showGameResult(); return 0; } // 白天投票 voteProcess(2, false); system("cls"); printGameUI(2, false); if(checkGameOver()) { Sleep(1000); system("cls"); showGameResult(); return 0; } if(!player[hunterId].alive && !hunterShot) hunterShoot(); // 循环多日夜(2~7天) for(int day = 2; day <= 7; day++) { cout << "即将进入夜晚"; for(int i = 1; i <= 6; i++) { cout << "."; Sleep(500); } nightLoop(day, true); printDeadNotice(); if(checkGameOver()) { Sleep(1000); system("cls"); showGameResult(); return 0; } if(!player[hunterId].alive && !hunterShot) hunterShoot(); if(checkGameOver()) { Sleep(1000); system("cls"); showGameResult(); return 0; } voteProcess(day + 1, false); system("cls"); printGameUI(day + 1, false); if(checkGameOver()) { Sleep(1000); system("cls"); showGameResult(); return 0; } if(!player[hunterId].alive && !hunterShot) hunterShoot(); if(checkGameOver()) { Sleep(1000); system("cls"); showGameResult(); return 0; } } system("pause"); return 0; }
- 1