Code Monkey home page Code Monkey logo

play-with-algorithm-visualization's Introduction

看得见的算法(第一季) - 课程官方代码仓

大家好, 欢迎大家来到我在慕课网上的实战课程《看得见的算法(第一季)》的官方代码仓。这个代码仓将不仅仅包含课程的所有源代码,还将发布课程的更新相关内容,勘误信息以及计划的更多可以丰富课程的内容,如更多分享,多多练习,等等等等。课程源码为Java语言源代码。关于更多语言的支持,今后有时间,我会慢慢更新这个代码仓(不过预计会是蜗牛速了>_<)。大家可以下载、运行、测试、修改。如果你发现了任何bug,或者对课程中的任何内容有意见或建议,欢迎和我联系:)

个人网站liuyubobobo.com [废弃重整中...]

电子邮件[email protected]

微博: 刘宇波bobo http://weibo.com/liuyubobobo

知乎: 刘宇波 http://www.zhihu.com/people/liuyubobobo

知乎专栏:是不是很酷 https://zhuanlan.zhihu.com/liuyubobobo

个人公众号:是不是很酷:)

qrcode

课程相关其他代码仓

更多推荐

  • 感谢学习课程的大佬 @田小号 基于Canvas实现的迷宫可视化。有兴趣的同学可以去大佬的代码仓围观。同时,@田小号 还基于Canvas实现了我的《修炼算法内功》和《玩转数据结构》两门课程中诸多算法和数据结构的可视化内容,大家不要错过!

    代码仓传送门:https://github.com/tianxiaohao1/codding.cn/tree/master/algo

maze

  • 如果大家有学习这个课程后受启发,制作出的好的算法可视化的代码仓,也请联系我。免费广告位在此预留:)

课程源码目录

第一章 欢迎来到看得见的算法 Java源码
1-1 欢迎来到看得见的算法 [无代码]
1-2 学习这个课程将完成什么项目? [无代码]
1-3 关于本课程的编程环境 [无代码]
1-4 更多学习本课程的注意事项 [无代码]
第二章 要想看得见,先要搞定GUI编程 章节Java代码
2-1 使用JFrame Java
2-2 创建属于自己的第一个JFrame子类 Java
2-3 设置画布与图形绘制基础 Java
2-4 使用Graphics2D Java
2-5 整理绘制工具类 Java
2-6 高级绘制特性:抗锯齿和双缓存 Java
2-7 动画基础 Java
2-8 算法可视化中的MVC Java
2-9 键盘事件 Java
2-10 鼠标事件 Java
2-11 课程所使用的GUI编程模板 Java
第二章完整代码 Java
第三章 概率模拟算法 章节Java代码
3-1 一个有意思的分钱模拟问题 Java
3-2 深入随机分钱问题 Java
3-3 蒙特卡洛算法 Java
3-4 使用蒙特卡洛算法求PI值 Java
3-5 不需要可视化的蒙特卡洛模拟 Java
3-6 三门问题 Java
3-7 你一定能中奖吗? Java
第三章完整代码 Java
第四章 排序算法可视化 章节Java代码
4-1 选择排序算法可视化 Java
4-2 为可视化添加更多效果 Java
4-3 插入排序可视化 Java
4-4 在近乎有序的数据上测试插入排序算法 Java
4-5 通过归并排序算法深入理解递归 Java
4-6 归并排序算法可视化 Java
4-7 快速排序算法可视化 Java
4-8 在快速排序中随机选取标定点 Java
4-9 双路快速排序算法可视化 Java
4-10 三路快速排序算法可视化 Java
4-11 堆排序算法可视化 Java
第四章完整代码 Java
第五章 走迷宫 章节Java代码
5-1 处理迷宫文件 Java
5-2 迷宫可视化 Java
5-3 迷宫问题和图的遍历 [无代码]
5-4 深度优先递归走迷宫 Java
5-5 迷宫问题与回溯法 Java
5-6 非递归深度优先走迷宫 Java
5-7 非递归深度优先走迷宫求解最终路径 Java
5-8 广度优先走迷宫问题 Java
5-9 深度优先遍历和广度优先遍历的内在联系 [无代码]
第五章完整代码 Java
第六章 随机迷宫生成 章节Java代码
6-1 什么是迷宫 [无代码]
6-2 生成迷宫基础 Java
6-3 深度优先遍历生成迷宫 Java
6-4 非递归深度优先遍历生成迷宫 Java
6-5 广度优先遍历生成迷宫 Java
6-6 随机队列生成迷宫 Java
6-7 迷宫生成的迷雾效果 Java
6-8 生成随机性更强的迷宫 Java
6-9 更多迷宫问题 [无代码]
第六章完整代码 Java
第七章 自己做一个扫雷游戏 章节Java代码
7-1 扫雷是什么鬼?扫雷里包含什么算法? [无代码]
7-2 扫雷代码基础 Java
7-3 随机生成雷区 Java
7-4 验证随机生成雷区算法的随机性 Java
7-5 Fisher-Yates洗牌算法的应用 Java
7-6 为扫雷程序加入交互 Java
7-7 扫雷与floodfill算法 Java
7-8 更多扫雷相关和floodfill算法的应用 [无代码]
第七章完整代码 Java
第八章 益智游戏自动生成解 - Move the Box 章节Java代码
8-1 玩一玩Move the Box [无代码]
8-2 求解Move the Box的数据架构 Java
8-3 求解Move the Box的渲染 Java
8-4 搜索框架 Java
8-5 处理箱子掉落过程 Java
8-6 处理箱子消除过程 Java
8-7 显示问题的解 Java
8-8 更多搜索优化思路 [无代码]
8-9 更多人工智能相关 [无代码]
第八章完整代码 Java
补充代码1: 求解过程加交互 Java
补充代码2: 使用HashSet求解 Java
第九章 分形图的绘制:计算机生成艺术 章节Java代码
9-1 分形到底是什么鬼 [无代码]
9-2 递归绘制基础 Java
9-3 Vicsek 分形图的绘制 Java
9-4 为分形绘制添加交互 Java
9-5 Sierpinski 分形绘制 Java
9-6 Sierpinski 三角形 Java
9-7 Koch雪花分形背后的数学分析 [无代码]
9-8 编写Koch雪花分形 Java
9-9 利用分形绘制树 Java
第九章完整代码 Java
补充代码1: 另一种Vicsek分形 Java
第十章 看得见的算法,下季再见! [无代码]
10-1 看得见的算法,下一季再见! [无代码]

  • 做这个课程的时候,一气儿设想了20多个demo,用来展示算法的实际运用。本以为是个很好的选题,毕竟大家平时使用算法都过于抽象。如果可能,这个选题可以出好几季,让大家真正做到“看见”这些算法。但是没想到课程推出以后,销量非常差。所以这个课程的后几季的制作计划暂时只能暂停。请谅解。

  • 但这个课程本身依然自成体系,是我在慕课网做过的课程中,最喜欢的课程。也相信非常值得大家学习。希望大家喜欢。万一,只是万一,这个课程在以后的时间里突然火起来了,慕课网肯定会联系我做第二季第三季的:)

  • 课程讲义的PDF版本不在github上提供,大家可以在慕课网上 "下载 -> 查看讲师源码" 中各个章节文件夹下找到。

  • 大家加油!:)

play-with-algorithm-visualization's People

Contributors

liuyubobobo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

play-with-algorithm-visualization's Issues

Circle-Animation project throws java.lang.NullPointerException.

定位:02-Java-Swing-Basics\Chapter-02-Completed-Codes\Circle-Animation\src\AlgoFrame.java -> AlgoCanvas -> paintComponent
问题:在一些运行中,抛出Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
原因:paintComponent未经过render方法中的repaint方法自行调用,circles数组存在未定义的可能。
修复:一种简单的修复是在paintComponent中加入circles为null的检测。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.