This repository has been archived on 2024-01-06. You can view files and clone it, but cannot push or open issues or pull requests.
justhomework/ex6/ex6.cpp

260 lines
6.6 KiB
C++
Raw Normal View History

2021-10-29 07:46:26 +00:00
#include "vec.h"
#include "list.h"
2021-10-28 15:05:13 +00:00
#include "score.h"
2021-10-27 15:40:44 +00:00
#include <time.h>
#include <stdio.h>
2021-10-28 15:05:13 +00:00
2021-10-27 15:40:44 +00:00
std::string PU[54] = {
"3D", "3C", "3B", "3A",
"4D", "4C", "4B", "4A",
"5D", "5C", "5B", "5A",
"6D", "6C", "6B", "6A",
"7D", "7C", "7B", "7A",
"8D", "8C", "8B", "8A",
"9D", "9C", "9B", "9A",
"XD", "XC", "XB", "XA",
"JD", "JC", "JB", "JA",
"QD", "QC", "QB", "QA",
"KD", "KC", "KB", "KA",
"1D", "1C", "1B", "1A",
"2D", "2C", "2B", "2A",
"BJ", "RJ"};
int main()
{
Score s(3);
int xipai_flag = 0;
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
srand(time(NULL));
Vec v(54, 2);
List l;
printf("<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
for (int i = 0; i <= 53; i++)
{
l.firstInsert(v.get(i));
std::cout << PU[l[0]] << " ";
if (i % 2 != 0)
printf("\n");
}
Begin:
printf("\n<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD>?(0/1)");
scanf("%d", &xipai_flag);
if (xipai_flag == 1)
{
v.reorder();
l.clear();
printf("===============<3D><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>===============\n");
for (int i = 0; i <= 53; i++)
{
l.firstInsert(v.get(i));
std::cout << PU[l[0]] << " ";
if (i % 2 != 0)
printf("\n");
}
xipai_flag == 0;
goto Begin;
}
2021-10-28 11:30:56 +00:00
printf("================<3D><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>================\n");
2021-10-27 15:40:44 +00:00
List p1, p2, p3;
for (int i = 0; i <= 53; i++)
{
switch (i % 3)
{
case 0:
p1.firstInsert(l[i]);
break;
case 1:
p2.firstInsert(l[i]);
break;
case 2:
p3.firstInsert(l[i]);
break;
}
}
2021-10-28 11:30:56 +00:00
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD>:\n");
for (int i = 0; i < p1.getSize(); i++)
{
std::cout << i << ": " << PU[(p1)[i]] << "\n";
}
2021-10-27 15:40:44 +00:00
l.clear();
p1.sort();
p2.sort();
p3.sort();
l.firstInsert(-1);
int opt = 0;
int pass_num = 0;
int round = 1;
int finish_num = 0;
2021-10-28 15:05:13 +00:00
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>:\n");
2021-10-28 11:30:56 +00:00
while (finish_num < 2 && round < 54)
2021-10-27 15:40:44 +00:00
{
2021-10-27 16:20:29 +00:00
if (pass_num > 3 - finish_num)
pass_num = 3 - finish_num;
printf("+++++===========================+++++\n <20>ִ<EFBFBD>%d \n+++++===========================+++++\n", round);
2021-10-27 15:40:44 +00:00
if (p1.getSize())
{
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD>:\n");
for (int i = 0; i < p1.getSize(); i++)
{
std::cout << i << ": " << PU[(p1)[i]] << "\n";
}
printf("ʣ<EFBFBD><EFBFBD>%d<><64><EFBFBD><EFBFBD>\n", p1.getSize());
2021-10-28 15:02:22 +00:00
// if (l[0] > p1[p1.getSize() - 1])
// {
// if (pass_num == 2 - finish_num)
// {
// pass_num = 0;
// goto A;
// }
// printf("<22>޷<EFBFBD><DEB7><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>\n");
// }
2021-10-27 16:20:29 +00:00
A:
2021-10-28 15:02:22 +00:00
printf("0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>ƶ<EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
2021-10-27 15:40:44 +00:00
scanf("%d", &opt);
switch (opt)
{
2021-10-28 15:02:22 +00:00
case 0:
2021-10-27 15:40:44 +00:00
printf("ѡ<EFBFBD><EFBFBD>:");
scanf("%d", &opt);
2021-10-28 15:02:22 +00:00
if (opt >= p1.getSize() || (p1[opt] < l[0]&&pass_num!=2))
2021-10-27 15:40:44 +00:00
{
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
goto A;
}
2021-10-28 15:02:22 +00:00
std::cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << PU[l.firstInsert((p1).remove(opt))];
if (p1.getSize() == 0)
2021-10-27 15:40:44 +00:00
{
s.finish(0);
printf(",<2C><><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
finish_num++;
2021-10-28 11:30:56 +00:00
pass_num = 0;
2021-10-27 15:40:44 +00:00
}
else
printf("<><CAA3>%d<><64><EFBFBD><EFBFBD>\n", p1.getSize());
2021-10-28 15:02:22 +00:00
pass_num=0;
2021-10-27 15:40:44 +00:00
break;
2021-10-28 15:02:22 +00:00
case 1:
2021-10-27 15:40:44 +00:00
for (int i = 0; i < l.getSize() - 1; i++)
{
std::cout << i << ": " << PU[l[i]];
printf("\n");
}
goto A;
2021-10-28 15:02:22 +00:00
case 2:
pass_num++;
goto B;
2021-10-27 15:40:44 +00:00
default:
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
goto A;
}
}
2021-10-27 16:20:29 +00:00
else
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>ֿ<EFBFBD>\n");
2021-10-27 15:40:44 +00:00
B:
if (p2.getSize())
{
2021-10-28 11:30:56 +00:00
printf("--------------------\n");
2021-10-27 15:40:44 +00:00
printf("B<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
if (pass_num == 2 - finish_num)
{
std::cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << PU[l.firstInsert((p2).remove(0))];
printf("<><CAA3>%d<><64><EFBFBD><EFBFBD>\n", p2.getSize());
pass_num = 0;
}
else if (l[0] > p2[p2.getSize() - 1])
{
printf("<EFBFBD><EFBFBD><EFBFBD>ƿɳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
pass_num++;
}
else
for (int i = 0; i < p2.getSize(); i++)
{
if (l[0] < p2[i])
{
std::cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << PU[l.firstInsert((p2).remove(i))];
2021-10-28 11:30:56 +00:00
printf("<><CAA3>%d<><64><EFBFBD><EFBFBD>\n", p2.getSize());
2021-10-28 15:02:22 +00:00
pass_num = 0;
2021-10-27 15:40:44 +00:00
break;
}
}
2021-10-28 11:30:56 +00:00
if (p2.getSize() == 0)
{
s.finish(1);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
finish_num++;
pass_num = 0;
}
2021-10-27 15:40:44 +00:00
}
2021-10-27 16:20:29 +00:00
else
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD>ֿ<EFBFBD>\n");
2021-10-27 15:40:44 +00:00
C:
if (p3.getSize())
{
2021-10-28 11:30:56 +00:00
printf("--------------------\n");
2021-10-27 15:40:44 +00:00
printf("C<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
if (pass_num == 2 - finish_num)
{
std::cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << PU[l.firstInsert((p3).remove(0))];
printf("<><CAA3>%d<><64><EFBFBD><EFBFBD>\n", p3.getSize());
pass_num = 0;
}
else if (l[0] > p3[p3.getSize() - 1])
{
printf("<EFBFBD><EFBFBD><EFBFBD>ƿɳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
pass_num++;
}
else
for (int i = 0; i < p3.getSize(); i++)
{
if (l[0] < p3[i])
{
std::cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << PU[l.firstInsert((p3).remove(i))];
2021-10-28 11:30:56 +00:00
printf("<><CAA3>%d<><64><EFBFBD><EFBFBD>\n", p3.getSize());
2021-10-28 15:02:22 +00:00
pass_num = 0;
2021-10-27 15:40:44 +00:00
break;
}
}
2021-10-28 11:30:56 +00:00
if (p3.getSize() == 0)
{
s.finish(2);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
finish_num++;
pass_num = 0;
}
2021-10-27 15:40:44 +00:00
}
2021-10-27 16:20:29 +00:00
else
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD>ֿ<EFBFBD>\n");
2021-10-27 15:40:44 +00:00
round++;
}
printf("=====================================\n");
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n");
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>A:%d<><64>\n", s.score(0));
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>B:%d<><64>\n", s.score(1));
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>C:%d<><64>\n", s.score(2));
2021-10-28 15:02:22 +00:00
system("pause");
2021-10-27 15:40:44 +00:00
return 0;
}