我的Rock Paper Scissors效率如何?

时间:2015-10-01 20:40:05

标签: java

所以我对Java很新,在课堂上,我不得不制作Rock Paper Scissors。它看起来并不太难,所以我想让它使用尽可能少的IF语句。我有更好的方法吗?

仅供参考:int _tmain(int argc, TCHAR *argv[]) { DCB dcb; HANDLE hCom; BOOL fSuccess; TCHAR *pcCommPort = TEXT("\\\\.\\HCD0"); // USB name // Open a handle to the specified com port. hCom = CreateFile(pcCommPort, GENERIC_READ | GENERIC_WRITE, 0, // must be opened with exclusive-access NULL, // default security attributes OPEN_EXISTING, // must use OPEN_EXISTING 0, // not overlapped I/O NULL); // hTemplate must be NULL for comm devices if (hCom == INVALID_HANDLE_VALUE) { // Handle the error. printf("CreateFile failed with error %d.\n", GetLastError()); Sleep(15000); return (1); } // Initialize the DCB structure. SecureZeroMemory(&dcb, sizeof(DCB)); dcb.DCBlength = sizeof(DCB); // Build on the current configuration by first retrieving all current // settings. fSuccess = GetCommState(hCom, &dcb); if (!fSuccess) { // Handle the error. printf("GetCommState failed with error %s.\n", GetLastError()); printf("Cannot get first time"); Sleep(12000); return (2); } ....... 我用Scanner 我在电话上输入此内容,对不起任何格式错误。

LOGIC(在记事本中输入)

摇滚是1张纸是2把剪刀是3。 用户输入 - CPU = Sum&结果

Rock - Scissors = -2你赢了 摇滚 - 纸= -1你输了

纸 - 摇滚= 1你赢了 纸 - 剪刀= -1你输了

剪刀 - 纸= 1你赢了 剪刀 - 摇滚= 2你输了

= 0始终打结

CODE(在eclipse中完成,但是从移动设备输入,也不包括使用扫描仪和设置变量等内容)

输入=输入 - CPU

Syso = System.out.println()

2 个答案:

答案 0 :(得分:0)

如果使用&&和&和||

if ( i = 0 )  s.out.println("its a tie");
else if ( i == -1 || i == 2 )  s.out.println("you lost");
else if ( i == 1 || i == -2 )  s.out.println("you won");

如果您没有其他可能的结果,您可以将最后一次检查留给

else  s.out.println("you won");

答案 1 :(得分:-1)

if (input == 0)
{ 
    Syso "You Tied"; 
} 
else if (input < 0){
    Syso "You lose";
}
else {
    Syso "you win";
}

你应该把纸张保持为1,将sccissors保持为2,然后摇滚3.那样 - 案件将丢失案件,+ ve案件将成为胜诉案件。此代码具有较少数量的比较。