当前位置:   article > 正文

火车头采集器伪原创插件【php源码】_火车头插件开发

火车头插件开发

火车头采集是一款基于Python语言开发的网络爬虫工具,用于快速高效地从互联网上采集数据并存储到本地或远程数据库。它简单易用且功能强大,在各行各业广泛应用。

火车头采集器AI伪原创PHP源码:

  1. <?php
  2. header("Content-type: text/html; charset=gb2312");
  3. set_time_limit(0);
  4. error_reporting(E_ALL);
  5. ini_set('display_errors', '1');
  6. define ("CUR_DIR", '../');
  7. define('TITLE_SEPAR', 'xxxxx');
  8. // 这里是你的API地址,需要到 www.xiaofamao.com 申请
  9. define('API_URL', 'http://api.xiaofamao.com/api.php?json=0&v=2&key=yuyu');
  10. // 待执行目录
  11. define('CUR_FOLDER', CUR_DIR.'word');
  12. // 执行后保存目录
  13. define('DEST_FOLDER', CUR_DIR.'xiaofamao');
  14. // 执行后保存目录 失败
  15. define('DEST_FOLDER_FAIL', CUR_DIR.'xiaofamao_fail');
  16. $one_file = get_one_file();
  17. // 判断是否还有任务
  18. if (!$one_file){
  19. echo PHP_EOL.'* 任务数为0, 程序已退出';
  20. exit;
  21. }
  22. while ($one_file) {
  23. echo PHP_EOL.'* 正在执行:' . PHP_EOL. file_path($one_file);
  24. echo PHP_EOL.'* 请耐心等候...';
  25. $data_arr = get_contents_filter(file_path($one_file));
  26. $title = $data_arr['title'];
  27. $title_src = $data_arr['title'];
  28. $content = $data_arr['content'];
  29. $content = replace_shuminghao($content);
  30. $content = get_utf8_data($content);
  31. $new_content = curl_request(API_URL, array('wenzhang'=>$content));
  32. $new_content = get_gbk_data($new_content);
  33. $new_content = restore_shuminghao($new_content);
  34. #var_dump($new_content);
  35. $new_content = content_format($new_content);
  36. $new_content = $new_content;
  37. #$new_title = get_ai_title($title);
  38. $title = get_utf8_data($title);
  39. $new_title = $title;
  40. //$new_title =curl_request(API_URL, array('wenzhang'=>$title));
  41. //$new_title = get_gbk_data($new_title);
  42. #echo $new_title;
  43. # 如果标题伪原创成功
  44. if ($new_title === 'xx'.$title) {
  45. $new_title = get_gbk_data($title);
  46. //save_new_file(DEST_FOLDER_FAIL.DIRECTORY_SEPARATOR.$new_title.'.txt', $new_content);
  47. save_new_file(DEST_FOLDER_FAIL.DIRECTORY_SEPARATOR.$title_src.'.txt', $new_content);
  48. }
  49. else {
  50. $new_title = strip_tags($new_title);
  51. $new_title = str_replace(':', ":", $new_title);
  52. $new_title = str_replace('?', "?", $new_title);
  53. $new_title = str_replace(array('*','"','<','>','|'),'_', $new_title);
  54. $new_title = get_gbk_data($new_title);
  55. #$title = get_gbk_data($title);
  56. #save_new_file(DEST_FOLDER.DIRECTORY_SEPARATOR.$new_title.'.txt', $new_content);
  57. save_new_file(DEST_FOLDER.DIRECTORY_SEPARATOR.$title_src.'.txt', $new_content);
  58. #save_new_file(DEST_FOLDER.DIRECTORY_SEPARATOR.$new_title.'.txt', $content);
  59. }
  60. //
  61. //
  62. #save_new_file(DEST_FOLDER.DIRECTORY_SEPARATOR.$title.'.txt', $new_content);
  63. file_ok($one_file);
  64. //show_info_gb2312('伪原创结果:'.PHP_EOL. $final_data);
  65. //save_new_file(DEST_FOLDER.DIRECTORY_SEPARATOR.$new_title, $new_content);
  66. //var_dump($final_data);
  67. // sleep(3);
  68. $one_file = get_one_file();
  69. // show_reflesh();
  70. }
  71. show_info_gb2312(PHP_EOL.'任务完成'.PHP_EOL);
  72. function replace_shuminghao($content) {
  73. $content = str_replace('![](', '<(', $content);
  74. $count = preg_match_all("/<\((.*?)\)/", $content, $matches);
  75. #var_dump($matches[0]);
  76. if (isset($matches[0][0]))
  77. {
  78. foreach ($matches[0] as $key => $value) {
  79. #echo $value;
  80. $new_val = '《'.$matches[1][$key].'》';
  81. $content = str_replace($value, $new_val, $content);
  82. }
  83. }
  84. #echo $content;
  85. return $content;
  86. }
  87. function restore_shuminghao($content) {
  88. $count = preg_match_all("/《http(.*?)》/", $content, $matches);
  89. #var_dump($matches[0]);
  90. if (isset($matches[0][0]))
  91. {
  92. foreach ($matches[0] as $key => $value) {
  93. $new_val = '![](http'.$matches[1][$key].')';
  94. $content = str_replace($value, $new_val, $content);
  95. }
  96. #return $matches[0];
  97. }
  98. return $content;
  99. }
  100. function content_rewrite($content) {
  101. $data = curl_request(API_URL, array('wenzhang'=>$content));
  102. return $data;
  103. }
  104. function content_format($data) {
  105. $data = fix_newline($data);
  106. $data_arr = explode(PHP_EOL, $data);
  107. $ret_str = '';
  108. foreach($data_arr as $key => $value) {
  109. #echo $value;
  110. $ret_str .= '  '.$value.PHP_EOL.PHP_EOL;
  111. #$ret_str .= 'bbbbbbbbbbbbbbbbbb';
  112. }
  113. return $ret_str;
  114. }
  115. function title_content_rewrite($title, $content) {
  116. $article_src = $title.TITLE_SEPAR.PHP_EOL.$content;
  117. $data = curl_request(API_URL, array('wenzhang'=>$article_src));
  118. $data = str_replace("Xx", "xx", $data);
  119. $data = str_replace("\n", "\r\n", $data);
  120. $data = str_replace("<p>\r\n", "<p>", $data);
  121. $data = ltrim($data);
  122. #var_dump($data);
  123. $temp = explode(TITLE_SEPAR, $data);
  124. #var_dump($temp);
  125. $temp[0] = trim($temp[0]);
  126. $temp[1] = ltrim($temp[1]);
  127. $temp[1] = ltrim($temp[1], '</p>');
  128. $temp[1] = ltrim($temp[1]);
  129. $temp[1] = ltrim($temp[1]);
  130. return $temp;
  131. }
  132. function show_info($str) {
  133. echo '<p>' . $str . '</p>';
  134. }
  135. function get_utf8_data($data) {
  136. $encode = mb_detect_encoding($data, array('ASCII', 'UTF-8', 'GB2312', 'GBK','BIG5'));
  137. if ($encode !== 'UTF-8') {
  138. //show_info_gb2312('文件非 UTF-8,正在转成UTF-8');
  139. $utf8_data = iconv($encode, 'UTF-8//IGNORE', $data);
  140. return $utf8_data;
  141. }
  142. return $data;
  143. }
  144. function get_gbk_data($data) {
  145. $encode = mb_detect_encoding($data, array('ASCII', 'UTF-8', 'GB2312', 'GBK','BIG5'));
  146. if ($encode === 'UTF-8') {
  147. //show_info_gb2312('文件非 UTF-8,正在转成UTF-8');
  148. $gbk_data = iconv('UTF-8//IGNORE', 'GBK//IGNORE', $data);
  149. return $gbk_data;
  150. }
  151. return $data;
  152. }
  153. function get_ai_title($title) {
  154. $title = urlencode($title);
  155. return curl_request($url);
  156. }
  157. function show_info_gb2312($string) {
  158. echo get_gbk_data($string);
  159. newline();
  160. }
  161. function get_img_arr($array) {
  162. $ret_arr = array();
  163. foreach ($array[1] as $key => $value) {
  164. if (stripos($value, 'C:\\') === 0) {
  165. $ret_arr[0][] = $value;
  166. }
  167. else {
  168. $ret_arr[1][] = $value;
  169. }
  170. }
  171. asort($ret_arr);
  172. return $ret_arr;
  173. }
  174. function str_replace_once($search, $replace, $subject) {
  175. $firstChar = strpos($subject, $search);
  176. if($firstChar !== false) {
  177. $beforeStr = substr($subject,0,$firstChar);
  178. $afterStr = substr($subject, $firstChar + strlen($search));
  179. return $beforeStr.$replace.$afterStr;
  180. } else {
  181. return $subject;
  182. }
  183. }
  184. //var_dump(str_replace_once('**x**', 'xxxxxxxxxx', 'aaa**x**bbb'));
  185. //exit;
  186. function put_img_arr($array, $string) {
  187. $string = str_replace('**X**', '**x**', $string);
  188. foreach ($array as $key => $value) {
  189. $string = str_replace_once('**x**', $value, $string);
  190. }
  191. return $string;
  192. }
  193. function get_rewrite_title($data) {
  194. // var_dump($data);
  195. $data = reset_newline($data);
  196. $data_arr = explode(PHP_EOL, $data);
  197. $title = str_replace(array('<P>', '<p>'), array('',''), $data_arr[0]);
  198. array_shift($data_arr);
  199. $contents = '<p>'.implode(PHP_EOL, $data_arr);
  200. $new_arr = array($title, $contents);
  201. return $new_arr;
  202. }
  203. /*
  204. foreach ($news_list as $key => $value) {
  205. echo $value."<br>".PHP_EOL;
  206. $value = iconv("utf-8", "gb2312", $value);
  207. $data = file_get_contents($value);
  208. $data = iconv("GBK", "utf-8", $data);
  209. // echo $data;
  210. $data = rewrite($data);
  211. $data = str_replace("\r\n", "\n", $data);
  212. $data = str_replace("\r", "\n", $data);
  213. $data = str_replace("\n", "\r\n", $data);
  214. sleep(2);
  215. $data = auto_typeset($data);
  216. save_new_file('b'.$value, $data);
  217. }
  218. */
  219. function auto_typeset($data) {
  220. $data = str_replace(
  221. array('<P>'."\r\n", '<P>', '<p>'),
  222. array('<p>', '<p>', '<p>  '),
  223. $data
  224. );
  225. return $data;
  226. }
  227. function rewrite($article) {
  228. $url = API_URL;
  229. return curl_request($url, array('wenzhang'=>$article ));
  230. }
  231. function save_new_file($filename, $data) {
  232. if (! data_exists($filename)) {
  233. file_put_contents($filename, $data);
  234. }
  235. }
  236. // 缓存数据是否存在
  237. function data_exists($filename) {
  238. $filename = str_replace('\\','/', $filename);
  239. // var_dump($filename);
  240. // var_dump(dirname($filename));
  241. if (!is_dir(dirname($filename))) {
  242. // echo 'aaaaaaaaaaa';
  243. mkdir(dirname($filename),0755,true);
  244. }
  245. // var_dump(dirname(dirname($filename)));
  246. if (!is_dir(dirname(dirname($filename)))) {
  247. // echo 'bbbbbbbbbb';
  248. mkdir(dirname(dirname($filename)),0755,true);
  249. }
  250. if (file_exists($filename)) {
  251. return true;
  252. }
  253. return false;
  254. }
  255. function get_news_list($floder) {
  256. $news_list = array();
  257. if($handle = opendir($floder)){
  258. while (false !== ($file = readdir($handle))){
  259. //$dir = iconv("utf-8", "gb2312", $file);
  260. $file = iconv("gb2312", "utf-8", $file);
  261. if ($file !== '..' && $file !== '.')
  262. {
  263. $news_list[] = $floder.DIRECTORY_SEPARATOR.$file;
  264. }
  265. // echo "$file\n";
  266. }
  267. closedir($handle);
  268. }
  269. return $news_list;
  270. }
  271. //参数1:访问的URL,参数2:post数据(不填则为GET),参数3:提交的$cookies,参数4:是否返回$cookies
  272. function curl_request($url,$post='',$cookie='', $returnCookie=0){
  273. $curl = curl_init();
  274. curl_setopt($curl, CURLOPT_URL, $url);
  275. curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)');
  276. if (ini_get('open_basedir') == '' && strtolower(ini_get('safe_mode')) != 'on'){
  277. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  278. }
  279. curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
  280. curl_setopt($curl, CURLOPT_REFERER, "http://XXX");
  281. if($post) {
  282. curl_setopt($curl, CURLOPT_POST, 1);
  283. curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));
  284. }
  285. if($cookie) {
  286. curl_setopt($curl, CURLOPT_COOKIE, $cookie);
  287. }
  288. curl_setopt($curl, CURLOPT_HEADER, $returnCookie);
  289. curl_setopt($curl, CURLOPT_TIMEOUT, 150);
  290. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  291. $data = curl_exec($curl);
  292. if (curl_errno($curl)) {
  293. return curl_error($curl);
  294. }
  295. curl_close($curl);
  296. if($returnCookie){
  297. list($header, $body) = explode("\r\n\r\n", $data, 2);
  298. preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches);
  299. $info['cookie'] = substr($matches[1][0], 1);
  300. $info['content'] = $body;
  301. return $info;
  302. }else{
  303. return $data;
  304. }
  305. }
  306. // 计算中文字符串长度
  307. function utf8_strlen($string = null) {
  308. // 将字符串分解为单元
  309. preg_match_all("/./us", $string, $match);
  310. // 返回单元个数
  311. return count($match[0]);
  312. }
  313. function get_one_file() {
  314. $arr_all = get_all_files();
  315. #var_dump( $arr_all );
  316. $arr_ok = get_ok_files();
  317. //var_dump($arr_ok);
  318. foreach($arr_all as $v) {
  319. if (array_search($v, $arr_ok)===false) {
  320. return $v;
  321. }
  322. }
  323. return false;
  324. }
  325. function get_all_files() {
  326. return listDir(CUR_FOLDER);
  327. }
  328. function get_ok_files() {
  329. //var_dump(CUR_DIR.'ok.txt');
  330. $data = file_get_contents(CUR_DIR.'ok.txt');
  331. $data = str_replace("\xef\xbb\xbf", '', $data);
  332. $data_arr = explode(PHP_EOL, $data);
  333. return $data_arr;
  334. }
  335. function file_ok($file_name) {
  336. file_put_contents(CUR_DIR.'ok.txt', $file_name.PHP_EOL, FILE_APPEND);
  337. }
  338. function listDir($dir)
  339. {
  340. // echo $dir;
  341. $reta = array();
  342. if(is_dir($dir))
  343. {
  344. if ($dh = opendir($dir))
  345. {
  346. while (($file = readdir($dh)) !== false)
  347. {
  348. if((is_dir($dir."/".$file)) && $file!="." && $file!="..")
  349. {
  350. //echo 'aa';
  351. //$file = iconv("gb2312", "utf-8//IGNORE", $file);
  352. // $file = ConvertToUTF8($file);
  353. #$file = mb_convert_encoding($file, 'UTF-8', 'GBK');
  354. $reta[] = $file;
  355. // echo "<b><font color='red'>文件名:</font></b>",$file,"<br><hr>";
  356. listDir($dir."/".$file."/");
  357. }
  358. else
  359. {
  360. if($file!="." && $file!="..")
  361. {
  362. // echo $file."<br>";
  363. if (stripos($file, '.txt')!==false) {
  364. #$file = iconv("GBK", "utf-8//IGNORE", $file);
  365. // echo $file.'<br>';
  366. $reta[] = $file;
  367. }
  368. }
  369. }
  370. }
  371. closedir($dh);
  372. }
  373. }
  374. //var_dump($reta);
  375. return $reta;
  376. }
  377. function file_path($filename) {
  378. return CUR_FOLDER.DIRECTORY_SEPARATOR.$filename;
  379. }
  380. function short_filename($filename) {
  381. $filename = str_replace(CUR_FOLDER.DIRECTORY_SEPARATOR, '', $filename);
  382. $filename = str_replace('.txt', '', $filename);
  383. return $filename;
  384. }
  385. function get_contents_filter($file_name) {
  386. $file_name = get_gbk_data($file_name);
  387. // $file_name = mb_convert_encoding($file_name, 'UTF-8', 'ISO-8859-15');
  388. /// $file_name = iconv("utf-8", "GBK//IGNORE", $file_name);
  389. // echo $file_name.'<br>';
  390. $data = file_get_contents($file_name);
  391. $data = get_gbk_data($data);
  392. $data = str_replace("\t", '', $data);
  393. // 优化换行符
  394. $data = fix_newline($data);
  395. $data_title = short_filename($file_name);
  396. //var_dump(get_utf8_data($data));
  397. return array('title'=>$data_title, 'content'=>$data);
  398. }
  399. function fix_newline($data) {
  400. $data = str_replace("\r", "\n", $data);
  401. while(strpos($data, "\n\n") !== false) {
  402. $data = str_replace("\n\n", "\n", $data);
  403. }
  404. $data = str_replace("\n", PHP_EOL, $data);
  405. return $data;
  406. }
  407. function show_reflesh() {
  408. $str = '<script language="JavaScript">
  409. function myrefresh()
  410. {
  411. window.location.reload();
  412. }
  413. setTimeout("myrefresh()",1000);
  414. </script>';
  415. echo $str;
  416. }
  417. function after ($this, $inthat)
  418. {
  419. if (!is_bool(strpos($inthat, $this)))
  420. return substr($inthat, strpos($inthat,$this)+strlen($this));
  421. };
  422. function after_last ($this, $inthat)
  423. {
  424. if (!is_bool(strrevpos($inthat, $this)))
  425. return substr($inthat, strrevpos($inthat, $this)+strlen($this));
  426. };
  427. function before ($this, $inthat)
  428. {
  429. return substr($inthat, 0, strpos($inthat, $this));
  430. };
  431. function before_last ($this, $inthat)
  432. {
  433. return substr($inthat, 0, strrevpos($inthat, $this));
  434. };
  435. function between ($this, $that, $inthat)
  436. {
  437. return before ($that, after($this, $inthat));
  438. };
  439. function between_last ($this, $that, $inthat)
  440. {
  441. return after_last($this, before_last($that, $inthat));
  442. };
  443. // use strrevpos function in case your php version does not include it
  444. function strrevpos($instr, $needle)
  445. {
  446. $rev_pos = strpos (strrev($instr), strrev($needle));
  447. if ($rev_pos===false) return false;
  448. else return strlen($instr) - $rev_pos - strlen($needle);
  449. };
  450. function recurse_copy($src,$dst) {
  451. $dir = opendir($src);
  452. @mkdir($dst);
  453. while(false !== ( $file = readdir($dir)) ) {
  454. if (( $file != '.' ) && ( $file != '..' )) {
  455. if ( is_dir($src . '/' . $file) ) {
  456. recurse_copy($src . '/' . $file,$dst . '/' . $file);
  457. }
  458. else {
  459. if (strpos($file, '.txt') === false) {
  460. copy($src . '/' . $file,$dst . '/' . $file);
  461. }
  462. }
  463. }
  464. }
  465. closedir($dir);
  466. }
  467. function ConvertToUTF8($text){
  468. $encoding = mb_detect_encoding($text, mb_detect_order(), false);
  469. if($encoding == "UTF-8")
  470. {
  471. $text = mb_convert_encoding($text, 'UTF-8', 'UTF-8');
  472. }
  473. $out = iconv(mb_detect_encoding($text, mb_detect_order(), false), "UTF-8//IGNORE", $text);
  474. return $out;
  475. }
  476. function newline() {
  477. echo PHP_EOL;
  478. }
  479. function sanitizeUTF8($value)
  480. {
  481. if (self::getIsIconvEnabled()) {
  482. // NEW ----------------------------------------------------------------
  483. $encoding = mb_detect_encoding($value, mb_detect_order(), false);
  484. if($encoding == "UTF-8")
  485. {
  486. $value = mb_convert_encoding($value, 'UTF-8', 'UTF-8');
  487. }
  488. $value = iconv(mb_detect_encoding($value, mb_detect_order(), false), "UTF-8//IGNORE", $value);
  489. // --------------------------------------------------------------------
  490. // OLD --------------------------------------
  491. // $value = @iconv('UTF-8', 'UTF-8', $value);
  492. // -------------------------------------------
  493. return $value;
  494. }
  495. $value = mb_convert_encoding($value, 'UTF-8', 'UTF-8');
  496. return $value;
  497. }
  498. ?>

这篇文章主要介绍了python编写的入门简单小游戏代码大全,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

1、好玩的python代码_百度知道

先选取了6个自己认为值得玩味的python代码,希望对正在学习python的你有所帮助。
如宴模下代码块可以用来计算执行特定代码所花费的时间。该算法会打乱列表元素的顺序,它主坦御要会通过Fisher-Yates算法对新列表进行排序:不需要额外的操作就能交换两个变量的值。
Python做游戏。Pygame还是不错的,但只适合做小游戏。用Pygame写个植物大战僵尸还是可以的。推荐教程用Python和Pygame写游戏。Python在游戏服务器方面也有应用。EVE这种游戏都大量用Python。
这里不再一股脑把数学知识全丢出来,我们边写代码边说理论。首先,确保你安装和导入了Tkinter,它是Python的标准GUI库,广泛应用于各种各样的项目和程序开发,在Python中使用Tkinter可以快速的创建GUI应用程序。
ant蚂蚁bagels百吉饼另外贪吃蛇,吃豆子都是可以的,直接代码就可以玩。Python包括随您的安装一起分发的大量标准库。标准库有一个让祥岩称为Turtle的模块,这是一种向普通人介绍python编程的流行方法。
简单好玩的编程代码如下所示:gsh=msgbox(已经准备好格式化,准备开始。

2、有哪些小游戏可以用python实现?_百度知道

ant 蚂蚁2. bagels 百吉饼另外贪吃蛇,吃豆子都是可以的。

Python包括随您的安装一起分发的大量标准肢慧库。标准库有一个称为Turtle的模块,这是一种向普通人介绍python编程的流行方法。今天介绍的所有游戏都是使用Python及其Turtle模块历槐答实现的。

每个游戏都完全独立于其他游戏,不试一试 您永远都不知道最喜欢哪种游戏明迅。

安装完之后我们可以使用"python -m freegames list"来查看所有的游戏

贪吃蛇

贪吃蛇 -经典街机游戏。使用箭头键导航并吃绿色食品。每次食用食物,蛇就会长出一段。避免自己进食或出界!

吃豆子

吃豆子 –经典街机游戏。使用箭头键导航并吃掉所有白色食物。提防漫游迷宫的红色幽灵。

Flappy

Flappy-bird启发游戏。单击屏幕拍打翅膀。当您飞越屏幕时,请当心黑乌鸦。

加农炮

大炮-射击运动。单击屏幕发射您的炮弹。炮弹在其路径中弹出蓝色气球。弹出所有气球,然后才能越过屏幕。

3、Python游戏开发,Python实现贪吃蛇小游戏与吃豆豆 附带源码_百度知道

Python版本: 3.6.4

相关模块:

pygame模块;

以及一些Python自带的模块。

安装Python并添加到环境变量,pip安装需要的相关模块即可。

贪吃蛇的 游戏 规则应该不需要我多做介绍了吧T_T。写个贪吃蛇 游戏 其实还是很简单的。首先,我们进行一下 游戏 初始化:

然后定义一个贪吃蛇类:

其中head_coord用来记录蛇头所在位置,而tail_coords是一个二维数组,用来记录所有蛇身的位置。一开始,贪吃蛇长为3,并且位置是随机生成的。用户通过 键来控制贪吃蛇的行动:

需要注意的是,贪吃蛇不能180 大拐弯,只能90 地拐弯。例如正在向左行动的贪吃蛇不能瞬间变成向右行动。具体而言,代码实现如下:

然后,我们需要随机生成一个食物,且需要保证该食物的位置不与贪吃蛇的位置相仔蚂同:

在更新贪吃蛇的时候,如果它吃到了食物,则蛇身长加一,否则只是简单的按照给定的方向行动而不改变蛇身长度:

同时,当贪吃蛇吃到食物时,需要重新生成一个新的食物:

最后,当贪吃蛇碰到墙壁或者蛇头碰到蛇身时, 游戏 结束:

并显示一下 游戏 结束界面:

玩家通过 键控制 游戏 的主角吃豆人吃掉藏在迷宫内的所有豆子,并且不能被鬼魂抓到。

若能顺利吃完迷宫内的所有豆子并且不被鬼魂抓到,则 游戏 胜利,否则 游戏 失败。

逐步实现:

Step1:定义 游戏 精灵类

首先,让我们先来明确一下该 游戏 需要哪些 游戏 精灵类。

① 墙类

② 食物类(即豆豆)

③ 角色类

角色类包括吃豆人和鬼魂,鬼魂由电脑控制其运动轨迹,吃豆人由玩家控制其运动轨迹。

显然,其均需具备更新角色位置和改变角色运动方向的能力,其源代码如下:

Step2:设计 游戏 地图

利用Step1中定义的 游戏 精灵类,我们就可以开始设计 游戏 地图神敏了。由于时间有限,我只写了一个关卡的 游戏 地图,有兴趣的小伙伴可以在此基础上进行扩展(在我的源代码基础上进行扩展是很方便滴~)。 游戏 地图的设计包括以下四方面内容:

① 创建墙

② 创建门(一开始关幽灵用的)

③ 创建角色

④ 创建食物

因为食物不能和墙、门以及角色的位游戚枝置重叠,所以为了方便设计 游戏 地图,要先创建完墙、门以及角色后再创建食物:

Step3:设计 游戏 主循环

接下来开始设计 游戏 主循环。首先是初始化:

然后定义主函数:

其中startLevelGame函数用于开始某一关 游戏 ,其源代码如下:

showText函数用于在 游戏 结束或关卡切换时在 游戏 界面中显示提示性文字,其源代码如下:

4、python入门可以做的小游戏_百度知道

1、Python入门拼图小游戏
简单介绍:
将图像分为m×n个矩形块,并将图像右下角的矩形块替换为空白块后,将这些矩形块随机摆放成原图像的形状。
2、Python入门推箱子小游戏
简单介绍:
这是来自日本的一个经典游戏,在狭小的仓库中,要求把木箱放到指定的位置,如果不小心就可能出现箱子无法移动或者通道被堵的情况,所以,如何巧妙利用有限的空间和通道,合理安排移动顺棚前迟序,就成了这个游戏能否通关的关键。
3、Python入门小游戏之外星人入侵
简单介绍:
玩家可以通过鼠标控制飞船的移动和射击,如果能在敌人达到游戏界面低端之前消灭所有敌人,则游戏胜利,否则游戏失败。
4、Python入门小游戏之吃豆子
简单介绍:
通过键盘方向键,控制游戏的人物吃豆人,吃掉藏在迷宫内的所有豆子,并且不能被敌人抓到。
5、Python入门小游戏之宝石消消乐
简单介绍:
玩家通过鼠标交换相邻的拼图,若交换后,在水平/竖直方向存在连续三个相同的链李拼图,则这些拼图消失,玩家得分。
6、Python入门小游戏之乒乓球对战
简单介绍:
中间是球网,玩家通过上下键移动球拍,并且这个游戏是可以悔升两个人玩的哦。
7、还有其他四个游戏
它们是:炸弹人小游戏、逃出迷宫、飞扬的小鸟、五子棋

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/87363
推荐阅读
相关标签
  

闽ICP备14008679号