大神们?如何将此代码中的所有可能性及比较结果用代码在电脑中创建一个文件并用txt输进去呢?
#include <stdio.h>#include<time.h>
#include<windows.h>
#include<stdlib.h>
int cards[20];
void showcards(int i, int j);
int bullpoint(int m, int n);
int main(void)
{
int i, m, n, c1, c2;
int flag[4][13] = { 0 };
srand((unsigned)time(NULL));
for (i = 0;i<20;i += 2)
{
do
{
m = rand() % 4 + 13;
n = rand() % 13;
} while (flag[m - 13][n]);
cards[i] = m;
cards[i + 1] = n;
flag[m - 13][n] = 1;
}
printf("我的牌是:");
showcards(0, 9);
putchar(10);
printf("你的牌是:");
showcards(10, 19);
c1 = bullpoint(1, 9);
c2 = bullpoint(11, 19);
putchar(10);
if (c1>c2)
{
if (c1 >= 3 * 13) //用13进制的十位表示那种牌,个位表示这个顺子到几、三个几、四个几
printf("顺子我赢!");
else
if (c1 >= 2 * 13)
printf("四带一我赢!");
else
if (c1 >= 13)
printf("三带二我赢!");
else
printf("我赢!");
}
else
if (c1<c2)
{
if (c2 >= 3 * 13)
printf("顺子你赢!");
else
if (c2 >= 2 * 13)
printf("四带一你赢!");
else
if (c2 >= 13)
printf("三带二你赢!");
else
printf("你赢!");
}
else
printf("平手!");
putchar(10);
return 0;
}
void showcards(int i, int j)
{
int ii;
for (ii = i;ii <= j;++ii)
{
if (cards[ii] == 13)
putchar(3);
if (cards[ii] == 14)
putchar(6);
if (cards[ii] == 15)
putchar(4);
if (cards[ii] == 16)
putchar(5);
if (cards[ii]<9)
printf("%d ", cards[ii] + 2);
if (cards[ii] == 9)
printf("J ");
if (cards[ii] == 10)
printf("Q ");
if (cards[ii] == 11)
printf("K ");
if (cards[ii] == 12)
printf("A ");
}
}
int bullpoint(int m, int n)
{
int i, j, t, point1, point2, count1 = 1;
for (i = m;i <= n;i += 2)
{
for (j = i + 2;j <= n;j += 2)
{
if (cards[i]<cards[j])
{
t = cards[i];
cards[i] = cards[j];
cards[j] = t;
}
}
}
for (i = m;i <= n - 2;i += 2) //顺子 如果cards[i-1]和后面的cards[i+1]、cards[i31]这些再相比较可以得出是不是同花顺或是同花
{
if (cards[i] - 1 != cards[i + 2])
break;
}
if (i == n)
{
point1 = 3;
point2 = cards[m] - 4;
}
for (i = m;i <= n - 2;i += 2) //两种牌(四带一、三带二) 如果是三种牌(三带一带一、两对)
{
if (cards[i] != cards[i + 2])
count1++;
}
if (count1 == 2)
{
if (cards[m + 2] == cards[m + 4] && cards[m + 4] == cards[m + 6])
{
point1 = 2;
point2 = cards[m + 2];
}
else
if (cards[m + 2] == cards[m + 4])
{
point1 = 1;
point2 = cards[m];
}
else
{
point1 = 1;
point2 = cards[m + 6];
}
}
else
{
point1 = 0;
point2 = cards[m];
}
return (point1 * 13 + point2);
system("pause");
}
[此贴子已经被作者于2018-5-23 13:33编辑过]