php井字游戏代码_类Basic卡西欧编程入门(4 矩阵 井字游戏)

本文详细介绍了TI-84计算器如何创建、操作和利用矩阵,包括矩阵的定义、创建方法、查询与修改元素、矩阵与列表的转换、矩阵的合并以及在游戏开发中的应用。此外,还探讨了Getkey函数、双箭头操作符及Isz和Dsz函数的使用,帮助读者更好地理解和编写TI-84计算器程序。
摘要由CSDN通过智能技术生成

矩阵

1、定义

与列表一样,矩阵也用于存储数据序列。有所不同的是,矩阵是二维的数组。

要查看矩阵,请打开计算·矩阵应用程序,然后打开按[F3]选项卡。在某些计算器上,可以从MAT应用程序直接访问矩阵。

?→Mat A[a,b

由于矩阵是二维数组,因此必须输入单元的两个坐标a(水平位置)和b(垂直位置),即行数与列数。

你最多可以使用26个矩阵,从A到Z(用字母表示,与用数字指定的列表不同)。

根据计算器的型号,矩阵的尺寸限制为255 * 255或999 * 999。但是你不能创建这么大的矩阵,因为计算器的内存有限(在24到144 KB之间)。我们谈论的是KB,而我们的计算机甚至手机,都在GB、TB的级别。但也不必为此担心,对于大多数程序来说这么大的内存已经足够了。

2、创建矩阵

以下是创建矩阵的两种方法:

1) [[1,2,3][4,5,6][7,8,9→Mat A

2) {2,4→Dim Mat A

1)要创建矩阵,请使用方括号[]。开头的两个方括号:第一个划定了矩阵的边界;第二个表示矩阵的行。因此矩阵的每一行都由方括号定界。下图显示了通过给定示例所获得的矩阵。显然,所有行的长度必须相同,否则会发生尺寸错误。

2)第二种技巧是使用Dim。大括号{}之间的两个数字是矩阵的尺寸。它的用法如下:{,}→Dim Mat。用Dim初始化的矩阵的所有元素的取值都为0(与列表一样)。

3、矩阵的处理

要查询矩阵中包含的值,其原理与列表相似,但是要告知两个坐标(矩阵是具有二维的表)。

Mat A[2,3 //返回矩阵A第二行第三列的值

要修改矩阵单元格中的值,有以下方法:

9→Mat A[2,3

S→List B[2+Y,3+X

Mat A[1,3→Mat B[1,3

5*Mat A[2,3→Mat B[2,3

要删除矩阵或所有矩阵,请使用功能ClrMat([SHIFT] + [VARS]→[F6]→[F1]→[F4])。ClrMat删除所有矩阵,只删除一个矩阵,我们用ClrMat+指定矩阵的字母。不幸的是,你不能专门从矩阵中删除某个单元格。

ClrMat //删除所有矩阵

ClrMat A //仅删除矩阵A

没有函数可以知道矩阵是否已初始化。我们可以用Dim知道矩阵的维数,但是必须对其进行初始化。否则,计算器将返回错误。

[[1,2,3] [4,5,6] [7,8,9→Mat A

Dim Mat A //结果返回到列表Ans中。这里列出Ans = {2,3}

4、列表与矩阵的相互转化

可以用多个列表创建矩阵。在这种情况下,相关列表必须全部具有相同的维度。我们使用功能List→Mat([OPTN] + [F1] + [F2](L→M))。假设:我们想将列表1、2和3转换为矩阵C。语法如下:List→Mat()。

List→Mat(1,2,3→Mat C

将矩阵转换为一个列表,我们只能得到矩阵中的一列。最大值是列表的最大数量(从6到26,具体取决于你的计算器型号)和剩余的内存。

Mat→List(A,1→List 2

5、合并矩阵

Augment()函数允许合并两个具有相同行数的矩阵。通过[OPTN]键,在矩阵选项卡中选择Augment()即可。

Augment(Mat A,Mat B→Mat C

记住此功能的一件事:它可能非常实用,但同时会占用大量内存。它必须首先为融合创建一个临时矩阵(Mat Ans)。如果临时矩阵非常大,你将会收到一条带有“ Memory Error”的消息。

6、矩阵的用处?

在游戏中,矩阵具有无限可能的应用,例如数据库,角色统计信息,纸牌信息,游戏世界等。通常,列表更多地用于临时计算,它们通常在程序的开头和结尾处被删除以优化内存。对于矩阵,程序员通常保留一个或多个充当备份。

井字游戏

1、使用Getkey

目前,我们只知道的一种方式与用户进行通信:''?''。但是,它既不实用也不美观,因为它会使文本向上移动。幸运的是,可以通过Getkey检测按下哪个键。要插入Getkey,如下操作[SHIFT] + [VARS](PRGM),然后[F6] + [F4](I / O)+ [F2](Getkey)。

Do

Getkey→G

LpWhile Not G

如果未按任何键,则Getkey返回0。下图给出了键值。

请注意,[AC / ON]没有值,因为它会中断程序。例如,如果我按[0],Getkey返回71,而[MENU],Getkey返回48。我强烈建议您将Getkey放在一个循环中,这样可以提高响应速度。我经常在程序中看到这种代码:

Do

Getkey→G

If G=71

Then…

IfEnd

If G=72

Then…

IfEnd

LpWhile G≠47

尽可能将您的Getkey与其余的代码隔离,虽然这样会增加一些字节,但程序的反应能力将大幅提高,以下是示例:

Do

Do

Getkey→G

LpWhile Not G

....... //(你的代码)

LpWhile G≠47

2、双箭头=>

在(PRGM)选项卡中,然后选择(转移)[F3],可以找到所谓的“双箭头”=>。它的作用类似于If,但只能执行一个操作。

以下两个代码具有相同的效果。

If A=1

Then 3→B

IfEnd

A=1=>3→B

3、布尔值

布尔值具有两种状态:“真”(不等于0)或“假”(等于0)。

当您执行“ If A = 2”时,计算器将检查A是否为2,如果是,则返回“ true”(1)。否则,它返回“ false”(0)。

但是,让我们进一步进行推理。运行此程序:

?→ A

A = 2

如果输入“ 2”,则计算器显示“ 1”,对于所有其他值,由于A≠2,计算器显示为“ 0”。现在,让我们以“双箭头”部分中看到的代码为例,然后再次对其进行优化。

//使用If-Then-IfEnd

If A=1

Then 3→B

IfEnd

//使用双箭头

A = 1 => 3→B

//使用布尔值

3 *(A = 1)→ B

这三个代码返回相同的结果,它们严格相同。后者使用布尔值确定作为A的函数的B的值。如果A = 1,则条件为true且等于1。因此3 *(1)= 3,B =3。反之,如果A ≠1(如果希望使用精确值进行推理,则取2),因此A不等于1,条件为false等于0,3 *(0)= 0,所以B =0。布尔值的使用提高了代码的运行速度,但往往使理解程序和查找错误变得困难。特别是对于新手,要学会慢慢掌握它们。

4、Isz和Dsz:递增和递减

最后一个小技巧:Isz和Dsz函数。lsz将变量增加1,Dsz将变量减少1。要找到这两个功能则先找到(PRGM)选项卡,然后再按[F3](转移)。

1→B

While B<100

Isz B

Locate 1,1,B

WhileEnd

请注意:Isz和Dsz具有隐藏功能。如果递增或递减后变量为0,则忽略下一行。请密切注意这种特殊性,这是经常犯的错误!

1→B

Dsz B

”HELLO”

”GOODBYE”

屏幕上不会出现“ HELLO”。现在你应该了解它们为什么在(转移)选项卡中,因为它们允许根据特定条件执行跳转。

现在你可以制作自己的井字棋游戏了!

游戏示例可在此网站下载:井字棋代码

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值