为学校制定计划。完成了所需的部分,现在我只是为了好玩而做的事情。
基本上你必须编写一个程序,从甲板上随机抽取一张牌,然后打印出面值和套装。容易 - 花了我5分钟。
我尝试使用Unicode字符为作业添加视觉方面。我找到了these,并且已经编写了一些代码来选择正确的Unicode字符给出卡片和套装。唯一的问题是打印出角色时it's tiny。它的可能在我的屏幕上高达两毫米,这远远不足以看到卡片的表面。
我一直在寻找增加输出大小的方法,但无济于事。我在搜索中发现了这段代码,但它似乎没有做任何事情(顺便说一下,我在Windows 10专业版上)。
import ctypes
LF_FACESIZE = 32
STD_OUTPUT_HANDLE = -11
class COORD(ctypes.Structure):
_fields_ = [("X", ctypes.c_short), ("Y", ctypes.c_short)]
class CONSOLE_FONT_INFOEX(ctypes.Structure):
_fields_ = [("cbSize", ctypes.c_ulong),
("nFont", ctypes.c_ulong),
("dwFontSize", COORD),
("FontFamily", ctypes.c_uint),
("FontWeight", ctypes.c_uint),
("FaceName", ctypes.c_wchar * LF_FACESIZE)]
font = CONSOLE_FONT_INFOEX()
font.cbSize = ctypes.sizeof(CONSOLE_FONT_INFOEX)
font.nFont = 12
font.dwFontSize.X = 11
font.dwFontSize.Y = 18
font.FontFamily = 54
font.FontWeight = 400
font.FaceName = "Lucida Console"
handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
ctypes.windll.kernel32.SetCurrentConsoleFontEx(
handle, ctypes.c_long(False), ctypes.pointer(font))
我想知道是否有人对如何使角色变大有任何见解或想法。我曾尝试使用海龟绘制角色,但不幸的是它并不支持我想要使用的角色。
答案 0 :(得分:0)
这比我想象的更棘手。虽然大多数Python图形界面都支持简单的Spade(BMP)Unicode字符:
print("\u2660")
获得六个黑桃(SMP)Unicode字符比较棘手:
print("\N{PLAYING CARD SIX OF SPADES}")
print("\U0001F0A6")
print("\uD83C\uDCA6") # surrogate
我尝试过使用海龟画人物,但不幸的是 不支持我想要使用的字符。
Tkinter ,以及基于它构建的包,如 turtle.py 和 Zelle的graphics.py ,取决于安装的内容Tk库的版本可以做。在我的系统上,他们可以处理 Spade 但不能六个黑桃。
我对基于Java的 Processing 环境的Python模式没有更好的运气,尽管这可能反映了我对它缺乏经验。
一个我也没有经验的环境 PyQt5 ,似乎迎接了挑战。这是我对“你好世界”的重做!"程序显示卡:
from PyQt5.QtCore import QSize, Qt
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QGridLayout, QWidget
from PyQt5.QtGui import QFont
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.setMinimumSize(QSize(640, 480))
self.setWindowTitle("Playing Card Six of Spades")
centralWidget = QWidget(self)
self.setCentralWidget(centralWidget)
gridLayout = QGridLayout(centralWidget)
centralWidget.setLayout(gridLayout)
font = QFont()
font.setFamily("Apple Symbols")
font.setPointSize(192)
title = QLabel("\N{PLAYING CARD SIX OF SPADES}", self)
#title = QLabel("\U0001F0A6", self)
#title = QLabel("\uD83C\uDCA6", self)
title.setFont(font)
title.setAlignment(Qt.AlignCenter)
gridLayout.addWidget(title, 0, 0)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
mainWin = MainWindow()
mainWin.show()
sys.exit(app.exec_())
部分挑战是虽然在Terminal.app下运行的Python会输出字符:
Terminal.app使用的字体(Monaco)没有卡片的字形,系统切换到Apple Symbols字体显示卡片。这需要一些实验来解决这个问题。
我知道您使用的是基于Windows的Python,所以上述所有内容都不适用于您的情况,但我的建议是查看 PyQt5 。
答案 1 :(得分:0)
无法在控制台/终端会话中控制特定字符的大小,无论是windows还是linux。
您可以更改所有会话字体大小,但不能更改单词处理器中可能出现的单个字符/单词/行。
使用的字体可能具有固定或可变的字符宽度,但您无法控制单个字符大小。