猜拳游戏:参考程序,增加胜负机制。
输出:
_____ _____
___/ __)______ 0000000000 ______(__ \__
______) 00000000000000 (______
__________) 000000000000000000 (__________
___ (____) 00000000000000000000 (____) __
\__(___) 00000000 00000000 (___)__/
0000000 0000000
0000000 0000000
0000000 0000000
0000000 0000000
0000000 0000000
0000000 0000000
00000000 00000000
00000000000000000000
000000000000000000
00000000000000
0000000000
__/\__ __/\__ __/\__
\_\/_/ \_\/_/ \_\/_/
/_/\_\ /_/\_\ /_/\_\
\/ \/ \/
提示:
#include <bits/stdc++.h>
#include "util.h"
using namespace std;
const auto COUNTDOWN_HEIGHT = 18;
const string COUNTDOWNS[][COUNTDOWN_HEIGHT] =
{
{
R"L( )L",
R"L( 3333333333333333 )L",
R"L( 333333333333333333 )L",
R"L( 33333333333333333333 )L",
R"L( 333333 3333333 )L",
R"L( 333333 )L",
R"L( 33333333 )L",
R"L( 33333333333333 )L",
R"L( 3333333333333 )L",
R"L( 33333333333333 )L",
R"L( 33333333 )L",
R"L( 3333333 )L",
R"L( 3333333 )L",
R"L( 333333 3333333 )L",
R"L( 33333333333333333333 )L",
R"L( 333333333333333333 )L",
R"L( 3333333333333333 )L",
R"L( )L",
},
{
R"L( )L",
R"L( 222222222222222 )L",
R"L( 222222222222222222 )L",
R"L( 2222222222222222222 )L",
R"L( 2222222 2222222 )L",
R"L( 2222222 )L",
R"L( 2222222 )L",
R"L( 222222222 )L",
R"L( 2222222222222 )L",
R"L( 2222222222222 )L",
R"L( 22222222222 )L",
R"L( 2222222 )L",
R"L( 2222222 )L",
R"L( 2222222 222222 )L",
R"L( 22222222222222222222 )L",
R"L( 22222222222222222222 )L",
R"L( 22222222222222222222 )L",
R"L( )L",
},
{
R"L( )L",
R"L( 1111111 )L",
R"L( 11111111 )L",
R"L( 111111111 )L",
R"L( 111111111 )L",
R"L( 111111 )L",
R"L( 111111 )L",
R"L( 111111 )L",
R"L( 11111l )L",
R"L( 11111l )L",
R"L( 11111l )L",
R"L( 11111l )L",
R"L( 11111l )L",
R"L( 111111111111 )L",
R"L( 111111111111 )L",
R"L( 111111111111 )L",
R"L( 111111111111 )L",
R"L( )L",
},
{
R"L( )L",
R"L( 0000000000 )L",
R"L( 00000000000000 )L",
R"L( 000000000000000000 )L",
R"L( 00000000000000000000 )L",
R"L( 00000000 00000000 )L",
R"L( 0000000 0000000 )L",
R"L( 0000000 0000000 )L",
R"L( 0000000 0000000 )L",
R"L( 0000000 0000000 )L",
R"L( 0000000 0000000 )L",
R"L( 0000000 0000000 )L",
R"L( 00000000 00000000 )L",
R"L( 00000000000000000000 )L",
R"L( 000000000000000000 )L",
R"L( 00000000000000 )L",
R"L( 0000000000 )L",
R"L( )L",
},
};
const auto COUNTDOWN_WIDTH = COUNTDOWNS[0][0].size();
const auto PLAYER1_HEIGHT = 6;
const string PLAYER1[][PLAYER1_HEIGHT] =
{
{
R"L( _____ )L",
R"L(___/ __)______ )L",
R"L( (_________) )L",
R"L( (_____) )L",
R"L(___ (____) )L",
R"L( \__(___) )L",
},
{
R"L( _____ )L",
R"L(___/ __)__ )L",
R"L( (_____) )L",
R"L( (_____) )L",
R"L(___ (____) )L",
R"L( \__(___) )L",
},
{
R"L( _____ )L",
R"L(___/ __)______ )L",
R"L( ______) )L",
R"L( __________))L",
R"L(___ (____) )L",
R"L( \__(___) )L",
},
{
R"L( _____ )L",
R"L(___/ __)______ )L",
R"L( ______) )L",
R"L( _______))L",
R"L(___ _______) )L",
R"L( \__________) )L",
},
};
const auto PLAYER1_WIDTH = PLAYER1[0][0].size();
const auto PLAYER2_HEIGHT = 6;
const string PLAYER2[][PLAYER2_HEIGHT] =
{
{
R"L( _____ )L",
R"L( ______(__ \__)L",
R"L( (_________) )L",
R"L( (_____) )L",
R"L( (____) __)L",
R"L( (___)__/ )L",
},
{
R"L( _____ )L",
R"L( __(__ \__)L",
R"L( (_____) )L",
R"L( (_____) )L",
R"L( (____) __)L",
R"L( (___)__/ )L",
},
{
R"L( _____ )L",
R"L( ______(__ \__)L",
R"L( (______ )L",
R"L((__________ )L",
R"L( (____) __)L",
R"L( (___)__/ )L",
},
{
R"L( _____ )L",
R"L( ______(__ \__)L",
R"L( (______ )L",
R"L((_______ )L",
R"L( (_______ __)L",
R"L( (__________/ )L",
},
};
const auto PLAYER2_WIDTH = PLAYER2[0][0].size();
const string MEDAL[] =
{
R"L(__/\__)L",
R"L(\_\/_/)L",
R"L(/_/\_\)L",
R"L( \/ )L",
};
const auto MEDAL_WIDTH = MEDAL[0].size();
const auto MEDAL_HEIGHT = sizeof(MEDAL)/sizeof(MEDAL[0]);
int main() {
while(true) {
auto play1_idx = 0;
auto play2_idx = 0;
for (auto i=0; i<3; i++) {
clear();
for (auto y=0; y<COUNTDOWN_HEIGHT; y++) {
if (y<PLAYER1_HEIGHT) cout << PLAYER1[0][y];
else cout << string(PLAYER1_WIDTH, ' ');
cout << ' ' << COUNTDOWNS[i][y] << ' ';
if (y<PLAYER2_HEIGHT) cout << PLAYER2[0][y];
else cout << string(PLAYER2_WIDTH, ' ');
cout << '\n';
}
for (auto j=0; j<5; j++) {
switch (getkey(false)) {
case 'a': play1_idx = 1; break;
case 's': play1_idx = 2; break;
case 'd': play1_idx = 3; break;
case 'j': play2_idx = 1; break;
case 'k': play2_idx = 2; break;
case 'l': play2_idx = 3; break;
}
pause(200);
}
}
clear();
for (auto y=0; y<COUNTDOWN_HEIGHT; y++) {
if (y<PLAYER1_HEIGHT) cout << PLAYER1[play1_idx][y];
else cout << string(PLAYER1_WIDTH, ' ');
cout << ' ' << COUNTDOWNS[3][y] << ' ';
if (y<PLAYER2_HEIGHT) cout << PLAYER2[play2_idx][y];
else cout << string(PLAYER2_WIDTH, ' ');
cout << '\n';
}
while (' '!=getkey());
}
return 0;
}
根据提示继续完成