![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++入门
文章平均质量分 61
圣手书生肖让
这个作者很懒,什么都没留下…
展开
-
一步一步实现一个完整的围棋游戏
一、画棋盘可以理解为简单的字符画技巧:第一行、中间与最后一行不同;对于每一行,第一列,中间与最后一列不同。画星位是有一点技巧的,重点理解这个公式的含义:((i-4)%6==0 && (j-4)%6==0)#include<iostream>using namespace std;int main(){ cout<<"●○"<< endl; // 第1行 cout << "┏ "; for (int i=2..原创 2022-01-03 19:39:02 · 4796 阅读 · 0 评论 -
怎样用python开发一个c++的本地OJ练习系统
由于在做c++信奥教学,出于某种考虑,可能会用到本地的OJ练习系统。略作修改也可以成为测试系统。用Python开发是比较简单的,不像网络的OJ平台,本地OJ不用考虑太复杂的用户情况,只需处理好最基本的几个问题即可,下面简单介绍一下。一、源代码编译源代码编译,是通过直接调用MinGW64实现的。def makeExe(cpp): command= r'MinGW64\bin\g++.exe %s -o %s -m32' # command= r'gcc\bin\g++....原创 2021-12-24 10:55:03 · 1676 阅读 · 0 评论 -
一步步实现一个完整的万年历
一、2015年的NOIP普及组初赛有一道代码补全的题目,很有意思,功能是实现一个当年任意月的月历显示。为了让代码更有趣,我这里把它改为针对2022年的任意月的月历的显示。代码如下:// 2022年,任一月份的月历 #include<iostream>using namespace std;const int dayNum[]={-1,31,28,31,30,31,30,31,31,30,31,30,31};int main(){ int m; cin >>原创 2021-12-11 13:53:29 · 973 阅读 · 0 评论 -
详细动图展示欧拉筛法的原理
欧拉筛法是比埃氏筛法更高效的一种素数筛法,确保每个合数只被筛掉一次,算法复杂度达到O(n),被称为线性筛。为了更好地理解它的原理,我制作了一个动态展示,配合源代码一起阅读,相信您能很快理解欧拉筛法的妙处。#include<iostream>#define MAX 100000001using namespace std;bool a[MAX];int prime[MAX];int main(){ int n, p=0; cin >> n; for (i...原创 2021-12-04 20:22:11 · 2897 阅读 · 2 评论 -
dev-c++开发的全鼠标操作控制台战棋
当然,作为游戏本身来说,这个界面实在是太粗糙了。但界面的极简同时也可以说是控制台的一个好处。用它来研究算法就比较方便了。这里尝试实现了一个标准的战棋游戏:双方轮流行动,不同兵种有不同的移动力、攻击范围、攻击力、防御力。并且在双方兵力完全相同的情况下测试计算机算法的能力。其中最后一版使用alpha-beta剪枝后,战斗能力明显提高,人类智能想随便取胜,也不是一个很容易的事情了。源代码放在了CSDN下载资源中(dev-c++开发的全鼠标操作控制台战棋(完整源码)-C++文档类资源-CSDN下载d..原创 2021-11-16 09:11:29 · 3457 阅读 · 0 评论 -
Dijkstra算法(迪杰斯特拉算法)的地图演示
Dijkstra算法常见用于地图寻路,但是具体怎样使用,还是有可讨论的内容的。一、建立地图(二维数组)并在地图上设置可通行与不可通行(白色表示)的点。然后选择一个位置放置英雄(英字),选择一个位置作为目标(空方框)。二、从地图生成逻辑的图。1、所有的位置统一编号,采用的方法是:行坐标*宽度+列坐标。2、每个位置只与周围八个点相连,即彼此之间有一条边。其中与上下左右的四个点之间的边的权(距离)是1,与斜方向的四个点的边的权(距离)是1.4。3、简单处理起见,暂时用邻接矩阵法保存图...原创 2021-10-25 15:15:47 · 956 阅读 · 0 评论