Код для игры в камень ножницы бумага
следующий код выводит "draw!" в качестве вывода независимо от того, какие входные данные предоставляет пользователь
пожалуйста, помогите.
Что я уже пробовал:
#include<iostream.h> #include<conio.h> #include<stdlib.h> #include<string.h> #include<stdio.h> #include<ctype.h> void main() { clrscr(); int choice1; char choice2[50]; int compare(const char * ,const char * ) ; //prototype char s[100]; cout<<"\n\n WELCOME TO STONE PAPER SCISSORS "<<endl<<endl; cout<<" enter your choice"<<endl; cout<<"\n 1:SCISSORS \n"; cout<<"\n 2:ROCK \n"; cout<<"\n 3:PAPER \n"; cout<<"enter choice number"; cin>>choice1; if(choice1==2) { cout<<"you have entered Stone!"; strcpy(s,"ROCK"); } if (choice1==1) { cout<<"you have entered scissors"; strcpy(s,"SCISSORS"); } if(choice1==3) { strcpy(s,"PAPER") ; cout<<"you have entered paper"; } randomize(); float point =2; float compchoice; compchoice=random(point); if (compchoice<0.37) { strcpy(choice2,"ROCK") ; } else if(compchoice<0.64) { strcpy( choice2,"PAPER"); } else { strcpy(choice2,"SCISSORS"); } cout<<endl; cout<<"User Choice="<<s<<endl; cout<<"Computer Choice="<<choice2<<endl; cout<<s<<"\t"<<"VS"<<"\t"<<choice2<<"="<<" "; int p=compare(s,choice2); if(p==1) { cout<<"computer wins"; if(p==0) cout<<"user wins"; if(p==-1) cout<<"draw!"; getch(); } int compare(const char* s, const char * choice2) { if(s=="SCISSORS") { if(choice2=="ROCK") return 1; else return 0; } else if(s=="ROCK") { if(choice2=="SCISSORS") return 0; else return 1; } else if(s=="PAPER") { if(choice2=="SCISSORS") return 1; else return 0; } else return -1; }
[no name]
Я бы посоветовал вам использовать switch case вместо условных операторов (if и else в вашем случае). Установите точки останова и посмотрите, что произойдет, и я думаю, что это почти невозможно с вашим компилятором, поэтому любезно измените свой компилятор.
Я вижу некоторые устаревшие заголовочные файлы, вызовы функций по умолчанию и т. д.,