日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[Win32::Console]Perl终端版生命游戏

發布時間:2025/6/17 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Win32::Console]Perl终端版生命游戏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?環境,WinXP/Win7? Perl 5.16

?默認循環1000次,按ESC提前退出

?

?

1 use strict; 2 use Term::ReadKey; 3 use Win32::Console; 4 use Time::HiRes 'sleep'; 5 use IO::Handle; 6 STDOUT->autoflush(1); 7 system("mode con lines=40 cols=100"); 8 9 our $OUT=Win32::Console->new(STD_OUTPUT_HANDLE); 10 $OUT->Cursor(20, 20, 99, 0); #hide cursor 11 12 my ($i, $j); 13 our ($rows, $cols) = (40, 40); 14 our ($mxrow, $mxcol) = ($rows-1, $cols-1); 15 16 # init 17 our @coord; 18 my (@h, @n); 19 my $y = 0; 20 21 foreach (<DATA>) { 22 s/\r?\n$//; 23 tr/\*\./10/; 24 @{$h[$y++]} = ( split("", $_) ); 25 } 26 27 foreach $i (0 .. $mxrow) { 28 foreach $j (0 .. $mxcol) { 29 $coord[$i][$j]{'x'} = $j*2; 30 $coord[$i][$j]{'y'} = $i; 31 $h[$i][$j] = 0 unless (defined $h[$i][$j]); 32 $n[$i][$j] = 0; 33 } 34 } 35 36 &Draw(\@n, \@h); 37 foreach (0..1000) { 38 sleep 0.05; 39 @n = (); 40 &NextBuffer(\@h, \@n); 41 &Draw(\@h, \@n); 42 @h = (@n); 43 44 &KeyFunc(); 45 } 46 47 sub NextBuffer { 48 my ($ra, $rb) = (shift, shift); 49 my ($i, $j, $sum); 50 my ($L, $R, $U, $D); 51 foreach $i (0 .. $mxrow) { 52 $U = ($i-1) < 0 ? $mxrow : ($i-1); 53 $D = ($i+1) > $mxrow ? 0 : ($i+1); 54 foreach $j (0 .. $mxcol) { 55 $L = ($j-1) < 0 ? $mxcol : ($j-1); 56 $R = ($j+1) > $mxcol ? 0 : ($j+1); 57 $sum = $ra->[$U][$L] + $ra->[$U][$j] + $ra->[$U][$R] + 58 $ra->[$i][$L] + 0 + $ra->[$i][$R] + 59 $ra->[$D][$L] + $ra->[$D][$j] + $ra->[$D][$R]; 60 61 if ($sum == 3) { 62 $rb->[$i][$j] = 1; 63 } elsif ($sum == 2) { 64 $rb->[$i][$j] = $ra->[$i][$j]; 65 } else { 66 $rb->[$i][$j] = 0; 67 } 68 } 69 } 70 } 71 72 sub Draw { 73 my ($ra, $rb) = (shift, shift); 74 foreach $i (0 .. $mxrow) { 75 foreach $j (0 .. $mxcol) { 76 if ($rb->[$i][$j] != $ra->[$i][$j]) { 77 &Point( 78 $coord[$i][$j]{'x'}, 79 $coord[$i][$j]{'y'}, 80 $rb->[$i][$j], 81 ); 82 } 83 } 84 } 85 } 86 87 sub Point { 88 my ($mx, $my, $light) = (shift, shift, shift); 89 my $color; 90 if ($light == 1) { 91 $color = $FG_WHITE|$BG_GRAY; 92 } else { 93 $color = $FG_WHITE|$BG_BLACK; 94 } 95 $OUT->Cursor($mx, $my); 96 $OUT->FillAttr($color, 2, $mx, $my); 97 } 98 99 sub KeyFunc { 100 my $key; 101 $key = ReadKey(-1); 102 return if (not defined $key); 103 if ( ord($key) == 27 ) { 104 exit; 105 } 106 } 107 108 109 __DATA__ 110 ......................**............... 111 ......................**............... 112 ....................................... 113 ....................................... 114 ....................................... 115 ....................................... 116 ....................................... 117 ....................................... 118 ....................................... 119 ....................................... 120 ....................................... 121 ....................................... 122 .........*..........**...**............ 123 .......*.*............***.............. 124 ......*.*............*...*............. 125 **...*..*.............*.*.............. 126 **....*.*..............*............... 127 .......*.*......*.*.................... 128 .........*......**..................... 129 .................*...*................. 130 .....................**......*......... 131 ....................*.*......*.*....... 132 ...............*..............*.*....** 133 ..............*.*.............*..*...** 134 .............*...*............*.*...... 135 ..............***............*.*....... 136 ............**...**..........*......... 137 ....................................... 138 ....................................... 139 ....................................... 140 ....................................... 141 ....................................... 142 ....................................... 143 ....................................... 144 ....................................... 145 ....................................... 146 ....................................... 147 ...............**...................... 148 ...............**......................

?

轉載于:https://www.cnblogs.com/paktc/p/3986229.html

總結

以上是生活随笔為你收集整理的[Win32::Console]Perl终端版生命游戏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜影院在线观看视频 | 亚洲天堂网址 | 国产精品第十页 | 欧美日韩中文在线观看 | 九九在线视频 | 日韩在线影视 | 亚洲色图导航 | 极品熟妇大蝴蝶20p 国产偷自拍视频 | 欧美第二区 | 亚洲精品v天堂中文字幕 | 天天艹日日艹 | 91中文| 国产伦理吴梦梦伦理 | 亚洲国产精品人人爽夜夜爽 | 国产激情综合五月久久 | 一区二区三区视频在线免费观看 | 欧美成人午夜精品免费 | 丰满人妻一区二区三区46 | 亚洲成人网在线播放 | 欧美xxxxav| 久久黄色网 | 久久精品91 | 日韩大胆人体 | 国产美女精品久久 | 精品午夜福利在线观看 | 成人动漫免费在线观看 | 精品国产自在精品国产精小说 | 少妇粉嫩小泬白浆流出 | 91丝袜视频 | 嫩草视频91 | _级黄色片| 日本一区二区高清不卡 | 国产美女极度色诱视频www | 豆花视频成人 | 国产h视频 | 日韩精品电影 | 色综合天天网 | 日本美女一区二区 | 成人动漫免费在线观看 | 国产成人a亚洲精v品无码 | 99爱视频 | 99久久精品一区 | 无码人妻aⅴ一区二区三区69岛 | 一级黄色网 | 后进极品美女圆润翘臀 | 国产成人精 | 国产精品成人3p一区二区三区 | 高h av| 国产精品视频一区二区三 | 国产精品夫妻 | 成人深夜小视频 | 国产乱子伦精品无码专区 | 久草播放 | 精品+无码+在线观看 | 99精品久久久久久中文字幕 | xxx视频网站| 亚洲精品鲁一鲁一区二区三区 | 少妇高潮大叫好爽喷水 | 成人看片黄a免费看视频 | 日本免费一二区 | 日本伦理在线 | 3d动漫精品啪啪一区二区竹菊 | 男人的天堂avav | 日本在线不卡一区二区三区 | 青娱乐97| 黄色理伦片 | 国产夫妇交换聚会群4p | 免费毛片在线 | 欧美熟妇交换久久久久久分类 | 影音先锋中文字幕在线视频 | 黑丝袜av| 一本久久综合亚洲鲁鲁五月天 | 国产精品区二区三区日本 | 九七电影院97理论片 | 久久久男人天堂 | 麻豆精品网站 | 澳门黄色 | 最新日本中文字幕 | 久久久精品| 色人阁网站 | 久久精品国产精品亚洲毛片 | 野外性满足hd| 欧美性猛交xxxx乱 | 古代黄色片 | 欧美黄色激情视频 | 生活片毛片 | 免费看操片 | 天天干,天天操 | 福利精品| av狠狠操| 青青草成人免费 | 黄色欧美大片 | 欧美综合精品 | 天堂中文资源在线 | 久久久久免费看 | 日韩色在线观看 | 精品丰满人妻无套内射 | 国语播放老妇呻吟对白 | 91正在播放 |