【发布时间】:2019-10-24 08:46:24
【问题描述】:
我正在为我的大学做一个纸牌游戏,我决定使用 ASCII 表来设计纸牌。我制作了一个使用 Unicode 打印卡片套装的函数,因为我无法仅使用 ASCII 打印它们,然后我尝试只在卡片显示中调用该函数,但它使该点留空并在开头打印符号提示行。
我尝试添加一些 \t 来解决位置问题,但不是仅移动符号,而是移动了整行。
//print the cards suits using Unicode
char suits(int n){
if (n == 1){
_setmode(_fileno(stdout), 0x00020000);
wprintf(L"\x2666");
_setmode(_fileno(stdout), _O_TEXT);
}
if (n == 2){
_setmode(_fileno(stdout), 0x00020000);
wprintf(L"\x2660");
_setmode(_fileno(stdout), _O_TEXT);
}
if (n == 3){
_setmode(_fileno(stdout), 0x00020000);
wprintf(L"\x2665");
_setmode(_fileno(stdout), _O_TEXT);
}
if (n == 4){
_setmode(_fileno(stdout), 0x00020000);
wprintf(L"\x2663");
_setmode(_fileno(stdout), _O_TEXT);
}
};
//chars for the cards design
char r = 196;
char p = 124;
char v = 46;
char cur = 191;
char cul = 218;
char cdr = 217;
char cdl = 192;
void displaycards(int cards){
if (cards == 3){
printf("\t\t\t\t %c%c%c%c%c%c%c%c%c%c%c \n",cul,r,r,r,r,r,r,r,r,r,cur);
printf("\t\t\t\t %c%d%c%c%c%c%c%c%c%c%c \n",p,4,v,v,v,v,v,v,v,v,p);
printf("\t\t\t\t %c%c%c%c%c%c%c%c%c%c%c \n",p,v,v,v,v,v,v,v,v,v,p);
printf("\t\t\t\t %c%c%c%c%c%c%c%c%c%c%c \n",p,v,v,v,v,v,v,v,v,v,p);
printf("\t\t\t\t %c%c%c%c%c%c%c%c%c%c%c \n",p,v,v,v,v,suits(1),v,v,v,v,p);
printf("\t\t\t\t %c%c%c%c%c%c%c%c%c%c%c \n",p,v,v,v,v,v,v,v,v,v,p);
printf("\t\t\t\t %c%c%c%c%c%c%c%c%c%c%c \n",p,v,v,v,v,v,v,v,v,v,p);
printf("\t\t\t\t %c%c%c%c%c%c%c%c%c%d%c \n",p,v,v,v,v,v,v,v,v,4,p);
printf("\t\t\t\t %c%c%c%c%c%c%c%c%c%c%c \n",cdl,r,r,r,r,r,r,r,r,r,cdr);
}
};
displaycards(3);
【问题讨论】:
-
坚持纯 ASCII 和 "23456789TJQKA" 和 "SHDC" ;)
-
对不起,如果这是一个菜鸟问题,但你对 SHDC 的意思是什么?
-
黑桃、红心、方块、梅花
-
哦,知道了。好吧,我可以做到,但我认为视觉上不会很酷。另外我认为它与我用来再次打印其他 ASCII 的第二个 _setmode 相关......只是不知道如何修复它。
标签: c windows codeblocks