C#学习笔记 16.01

本文介绍了如何使用C#面向对象思想设计石头剪刀布游戏,涉及玩家、电脑和裁判类的设计,以及Panel控件的应用。通过实例解析了面向对象与面向过程的区别,并探讨了如何优雅判断输赢。

C#学习笔记 16.01

(学习视频来自bilibili的传智播客赵老师基础教学视频)

用面向对象的思想实现石头剪刀布

石头剪刀布被是人出的,不管谁出都是石头剪刀布,用面向对象的思想,似乎主体就应该是石头剪刀布,而不去关注是谁出的,但事实好像不是这样……

面对的第一个小问题,如何判断输赢呢?

像石头剪刀布,我们其实可以把所有情况写出来,但是这样很不优美……而且情况再多点就变得很不好玩了。
一种思路是为这三个情况赋值,做减法,根据结果去判断,这样就比较合适。

开始设计
玩家类:出拳的方法,返回上面说的数字
电脑类:出拳的方法,返回上面说的数字,以及出了那种的字符串
裁判类:对前面说的这两个数字进行判断,返回输赢结果

这样就可以看出,裁判类不管他,就是个静态方法就可以了

玩家和电脑都有出拳这个方法,都需要返回数字,电脑需要返回字符串。

不过玩家是由输入决定的出拳方式,而电脑是由随机决定的出拳方式,突如其来的困惑,这咋面向对象?

视频中老师的写法,其实让我感觉也是面向过程的思想,只是写在一个类里面,这样也是面向对象么?

认识下 Panel 这个控件

这是个容器,可以起到让其内部的东西随其隐藏和显示的控件。
panel.visible = true或者false

窗体间控件的移动

frm2.Contros.Add(this.lable)
因为这个代码是写在了 frm1 中,所以 this 指的就是 frm1
通过这样一个命令,就把 lable 加到 frm2 里面了

后面的……我大概都用不到了……
嗯。。。。。。我不会告诉你我是懒得写了的。。。。。。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值