C语言实现智能三子棋
上篇博客对三子棋进行了升级,但仅仅是扩展到了多子棋,电脑算法采用的还是伪随机数的方法,电脑还是个憨憨,那么今天就对三子棋的算法进行一次优化吧,多子棋算法优化改变相应模块的条件就可以实现。
这次添加了两个函数check_computer、judge_player且对ComputerMove和game两个函数以及头文件做出了更改,头文件就添加了这两个新增函数的声明。
下面介绍两个新增函数。
电脑是否能赢电脑是否能赢,在下过一两个或者多个回合的时候,这个函数真正起到作用,如果能赢就落子。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108//判断电脑自己是否有机会赢,如果能赢,就落子,因为自己赢的优先级肯定大于拦 ...
C语言实现五子棋小游戏
上篇博客实现了三子棋的小游戏,那么如何实现五子棋和多子棋呢?
棋盘外观的小优化先说一下棋盘的问题,因为后期我在测试的时候,不能一眼看出来棋落子的坐标,所以对棋盘进行了一点小优化。
优化分了3X3—9X9的棋盘布局,和3X3—99X99的棋盘布局,因为10X10及以上的话,纵坐标10会占两个空,所以另外设计了一下。
修改的代码放到最后了,有兴趣的大佬可以看一下对不对,执行后的效果如下:
个位数规格的棋盘1234567891011121314151617181920212223242526*********************************************1.开始游戏 0.退出游戏*********************************************系统提示:请选择:>>>1 1 2 3 4 5 6 7 8 91 | | | | | | | | ---|---|---|---|---|---|---|---|---2 | | | ...
C语言实现三子棋
参考了B站UP主比特鹏哥的教程视频,加入了自己的学习笔记和理解。
链接:https://www.bilibili.com/video/BV1oi4y1g7CF?t=464&p=17
游戏框架在做游戏之前需要建立一个游戏实现基本框架,那么三子棋游戏实现的框架机制是怎么样的呢?
游戏菜单
系统打印游戏菜单
玩家选择是否开始游戏
开始游戏进入游戏内容
退出游戏,游戏结束
游戏内容
初始化打印棋盘
玩家选择落子坐标
判断玩家输入坐标的合法性
坐标是否溢出
原有坐标位置是否已有棋子
打印落子后的棋盘
判断输赢
电脑选择落子坐标
坐标值伪随机数输入的方法
打印落子后的棋盘
判断输赢
游戏规则
胜利:率先使得三行||三列||对角线相同棋满为胜
平局:棋盘已满但没有双方棋子均没有满足上述条件判为平局
创建工程 创建一个新的工程,新建工程文件,工程文件包括以下三个:
头文件 game.h 功能函数C文件 function.c 游戏执行C文件 game.c
...
C排序算法(一):冒泡排序
冒泡排序冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们的位置交换过来。走访数列重复地进行直到排序完成。因为越大(小)的元素经过交换会慢慢”浮”到数列的顶端(尾端),就如同碳酸饮料中的气泡一样,故名“冒泡排序”。
算法原理 以从大到小降序排列为例。
第一走轮访开始 —-> 比较相邻的元素- —> 如果第一个元素比第二个元素小,就交换他们的位置,把小的放到后面 —-> 如果第二个比第三个小,同样交换他们的位置,以此类推 —-> 第一轮走访结束
这个时候最小的数就“浮”到最右端了
第二轮走访开始 —-> 比较相邻的元素- —> 如果第一个元素比第二个元素小,就交换他们的位置,把小的放到后面 —-> 如果第二个比第三个小,同样交换他们的位置,以此类推 —-> 第二轮走访结束
这时候倒数第二小的数就“浮”到倒数第二列了
第三轮走访开始 —-> 比较相邻的元素- —> 如果第一个元素比第二个元素小, ...
用for循环语句实现在屏幕上打印特殊图案编程题目的解法
(题目来源于牛客网题库)链接:https://www.nowcoder.com/ta/beginner-programmers
例题KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的菱形图案。
输入描述:
1多组输入,一个整数(2~20)。
输出描述:
1针对每行输入,输出用“*”组成的菱形,每个“*”后面有一个空格。
输入:
12
输出:
12345 * * * * * * * * *
输入:
13
输出:
1234567 * * * * * * * * * * * * * * * *
分析这类题的做法比较多,因为for循环的套娃特性,每个人有每个人的逻辑,对于循环语句的控制变化多样,所以很长时间我都是试探着做这类题,每次做都头疼。后来做多了,发现了一个规律。
模版12345678910111213141516171819#include <stdio.h>int main(void){ int n = 0; int i = 0, j = 0; while ( ...
初识C语言
自己整理的C语言基础学习笔记,参考了挺多资料的,适合梳理知识框架,进而攻克各个知识点。
这是第一篇,初窥门径:认识C语言。
什么是C语言C语言是一门计算机语言——>计算机语言是什么?——>人和计算机交流的语言(C、C++、Python….)
语言的发展二进制语言——>硬件(0、1) !!!太复杂需要查手册
汇编语言——>整理合并助记 !!!同样复杂
B语言——>C语言,C++ … ——>高级语言
(低级到搞基,哦不,低级到高级)
C语言的发展C语言——>不成熟——>成熟——>流行
标准的制定,C89/C90——C99——C11
编译器:MSVS、GCC
C语言的优势
效率高
C语言是编译型语言,目前流行的还有解释型语言,像python,JavaScript等。
编译型语言就像做好了一桌子菜,就开吃。
解释型语言就像吃火锅,边做边吃。
灵活度高
可以直接操作硬件,语法简单,约束性少造就C的灵活性。
可移植性高
C生万物,C的可移植性很高。
第一个C语言程序
新建项目——>空项目/控制台 ——>新建 ...
2021 未来可期
为了摆脱其他平台的束缚,拥有一片专属于自己的小天地,我着手搭建了这个专属于我的个人网站。网站基于Hexo博客框架(Hexo是一款基于Node.js的静态博客框架)并托管在github上。不过由于我个人技术能力的问题,网站目前仍处于建设阶段(好吧,被迫学习web开发),一个新的尝试吧,未来可期!!!
情人节表白专用代码
天寒地冻,路遥马亡,不负人间理想。
前言今天是2021年2月14日,没错,是那个吃狗粮的日子,不过,西方情人节管我北方人什么事(狗头)。
对象是什么? 对象是人们要进行研究的任何事物,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。
类是具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。
类与对象的关系就如模具和铸件的关系,类的实力化的结果就是对象,而对对象的抽象就是类,类描述了一组有相同特性(属性)和相同行为的对象。
藏匿在查找中的情话 按 ctrl+f 然后输 ...