使用Pascal创建图形

使用Pascal创建图形,pascal,graphic,Pascal,Graphic,我试图用Pascal创建一个Kakuro,程序应该将Kakuro清空(类似于),并返回完成的(类似于)。我已经加载了数据(从一个文件)并传递到一个2d数组 我发现的问题与对角线分割的正方形有关,我不知道如何用Pascal控制台打印这个分割和每边的数字 我曾经尝试过使用Pascal图形库,但是alghoritm应该在多台具有不同编译器的计算机上运行,Pascal没有统一的库,只有crt,对此没有帮助(或者我找不到) 我还尝试了类似ASCII的方法,使用--和“|”创建网格,但当我打印两位数的值时,

我试图用Pascal创建一个Kakuro,程序应该将Kakuro清空(类似于),并返回完成的(类似于)。我已经加载了数据(从一个文件)并传递到一个2d数组

我发现的问题与对角线分割的正方形有关,我不知道如何用Pascal控制台打印这个分割和每边的数字

我曾经尝试过使用Pascal图形库,但是alghoritm应该在多台具有不同编译器的计算机上运行,Pascal没有统一的库,只有crt,对此没有帮助(或者我找不到)

我还尝试了类似ASCII的方法,使用
--
和“|”创建网格,但当我打印两位数的值时,会使所有输出变形,代码如下:

for c := 1 to maxc do
begin
  for f := 1 to maxf do
  begin
    WriteLn('+---+');
    WriteLn('|\',tablero[v,f,c],'|');
    WriteLn('| \ |');
    WriteLn('|', tablero[h,f,c], '  \|');
    WriteLn('+---+');
  end;
  WriteLn();
end;
您可以看到输出中的问题:

+---+
|\-1|
| \ |
|23 \|
+---+
+---+
|\0|
| \ |
|0 \|
+---+
我曾想过在我的2d数组中创建另一个2d数组,但如果这样做,我会得到如下结果:

+---+
|   |
|---|
|   | 
+---+

除以一半,需要对角进行,因此也不太好。

对整数值使用MinWidth说明符

WriteLn(intValue:2);   // displays the number with a width of 2
对于浮点值,还可以为小数位数添加一个值:

WriteLn(floatVal:5:2); 
您可以在-it’s Delphi文档中找到说明符的文档,但是Delphi很久以前就在Turbo Pascal中有了它的根,
Write/WriteLn
是传统的Pascal函数,没有改变

写入参数的形式为:

OutExpr[:MinWidth[:deplaces]]

其中OutExpr是一个输出表达式

MinWidth和DecPlaces是类型整数表达式:

MinWidth指定最小字段宽度,该宽度必须大于0。除非OutExpr的值必须用多个MinWidth字符表示,否则将完全写入MinWidth字符(必要时使用前导空格)。在这种情况下,将写入足够的字符来表示OutExpr的值。同样,如果省略MinWidth,则写入必要数量的字符以表示OutExpr的值

小数位数指定某个实类型的定点表示形式中的小数位数。只有当OutExpr是实类型之一,并且还指定了MinWidth时,才能指定它。指定MinWidth时,它必须大于或等于0

下面是一个快速示例:

NT = 12;
NB = -1;

WriteLn('+---+');         
WriteLn('|\', NT:2, '|'); 
WriteLn('| \ |');         
WriteLn('|', NB:2, '\|'); 
WriteLn('+---+');         
ReadLn;
这就产生了

+---+
|\12|
| \ |
|-1\|
+---+
如果需要两个以上的输出宽度,则需要放大方框:

+-----+
|\ 120|
| \   |
|  \  |
|   \ |
|123 \|
+-----+

我认为现在它很好,如果它缺少什么就告诉我。你能不能也添加你写的不适合你的代码?你说你试过“类似ascii的东西”;发布你尝试过但不起作用的代码。我没有确切的代码,但我有我用Scott Hunter回复编写的代码,一分钟后我编辑了第一篇文章并添加了它,效果非常好!我插入了一个循环,并使用crt库的GoToXY函数来制作网格,唯一的问题是当Y坐标(高度)超过20像素时(我认为因为pascal屏幕大小是80*25),我将看看如何解决这个问题。谢谢你的帮助:D