GW-বেসিক, 1086 1035 বাইট (টোকেনাইজড)
টোকেনাইজড ফর্মে এটি 1035 বাইট। আপনি ব্যবহার করে tokenised ফর্ম পেতে (হওয়া ASCII ফর্ম, অবশ্যই আরেকটু বেশি হয়।) SAVE"life
সংযোজন ছাড়া কমান্ড ",a
অনুবাদক হবে।
10 DEFINT A-Z:DEF SEG=&HB800:KEY OFF:COLOR 7,0:CLS:DEF FNP(X,Y)=PEEK((((Y+25)MOD 25)*80+((X+80)MOD 80))*2)
20 X=0:Y=0
30 LOCATE Y+1,X+1,1
40 S$=INKEY$:IF S$=""GOTO 40
50 IF S$=CHR$(13)GOTO 150
60 IF S$=" "GOTO 130
70 IF S$=CHR$(0)+CHR$(&H48)THEN Y=(Y-1+25)MOD 25:GOTO 30
80 IF S$=CHR$(0)+CHR$(&H50)THEN Y=(Y+1)MOD 25:GOTO 30
90 IF S$=CHR$(0)+CHR$(&H4B)THEN X=(X-1+80)MOD 80:GOTO 30
100 IF S$=CHR$(0)+CHR$(&H4D)THEN X=(X+1)MOD 80:GOTO 30
110 IF S$="c"THEN CLS:GOTO 20
120 GOTO 40
130 Z=PEEK((Y*80+X)*2):IF Z=42 THEN Z=32ELSE Z=42
140 POKE(Y*80+X)*2,Z:GOTO 40
150 LOCATE 1,1,0:ON KEY(1)GOSUB 320:KEY(1) ON
160 V!=TIMER+.5:FOR Y=0 TO 24:FOR X=0 TO 79:N=0
170 Z=FNP(X-1,Y-1):IF Z=42 OR Z=46 THEN N=N+1
180 Z=FNP(X,Y-1):IF Z=42 OR Z=46 THEN N=N+1
190 Z=FNP(X+1,Y-1):IF Z=42 OR Z=46 THEN N=N+1
200 Z=FNP(X-1,Y):IF Z=42 OR Z=46 THEN N=N+1
210 Z=FNP(X+1,Y):IF Z=42 OR Z=46 THEN N=N+1
220 Z=FNP(X-1,Y+1):IF Z=42 OR Z=46 THEN N=N+1
230 Z=FNP(X,Y+1):IF Z=42 OR Z=46 THEN N=N+1
240 Z=FNP(X+1,Y+1):IF Z=42 OR Z=46 THEN N=N+1
250 Z=PEEK((Y*80+X)*2):IF Z=32 THEN IF N=3 THEN Z=43
260 IF Z=42 THEN IF N<2 OR N>3 THEN Z=46
270 POKE(Y*80+X)*2,Z:NEXT:NEXT:FOR Y=0 TO 24:FOR X=0 TO 79:Z=PEEK((Y*80+X)*2):IF Z=46 THEN Z=32
280 IF Z=43 THEN Z=42
290 POKE(Y*80+X)*2,Z:NEXT:NEXT
300 IF TIMER<V!GOTO 300
310 IF INKEY$=""GOTO 160
320 SYSTEM
এটি সর্বাধিক গল্ফযুক্ত সংস্করণ, তবে এখনও বৈশিষ্ট্যযুক্ত: শুরু করার পরে, আপনি একটি সম্পাদক পান, যাতে আপনি কার্সার কীগুলি নিয়ে চলতে পারেন; স্পেসটি বর্তমান ক্ষেত্রের উপর ব্যাকটিরিয়াকে চালু বা বন্ধ করে দেয়, c
স্ক্রিন সাফ করে, রিটার্ন গেমের মোডে শুরু হয়।
এখানে একটি স্বল্প-বিস্মৃত সংস্করণ অনুসরণ করা হয়েছে, যা দুটি স্ট্রাকচার (একটি বিজ্ঞপ্তি-ঘোরানো জিনিস এবং একটি গ্লাইডার) সহ প্রাথমিক গেম বোর্ড সেট করে:
1000 REM Conway's Game of Life
1001 REM -
1002 REM Copyright (c) 2012 Thorsten "mirabilos" Glaser
1003 REM All rights reserved. Published under The MirOS Licence.
1004 REM -
1005 DEFINT A-Z:DEF SEG=&hB800
1006 KEY OFF:COLOR 7,0:CLS
1007 DEF FNP(X,Y)=PEEK((((Y+25) MOD 25)*80+((X+80) MOD 80))*2)
1010 PRINT "Initial setting mode, press SPACE to toggle, RETURN to continue"
1020 PRINT "Press C to clear the board, R to reset. OK? Press a key then."
1030 WHILE INKEY$="":WEND
1050 CLS
1065 DATA 3,3,4,3,5,3,6,3,7,3,8,3,3,4,4,4,5,4,6,4,7,4,8,4
1066 DATA 10,3,10,4,10,5,10,6,10,7,10,8,11,3,11,4,11,5,11,6,11,7,11,8
1067 DATA 11,10,10,10,9,10,8,10,7,10,6,10,11,11,10,11,9,11,8,11,7,11,6,11
1068 DATA 4,11,4,10,4,9,4,8,4,7,4,6,3,11,3,10,3,9,3,8,3,7,3,6
1069 DATA 21,0,22,1,22,2,21,2,20,2,-1,-1
1070 RESTORE 1065
1080 READ X,Y
1090 IF X=-1 GOTO 1120
1100 POKE (Y*80+X)*2,42
1110 GOTO 1080
1120 X=0:Y=0
1125 LOCATE Y+1,X+1,1
1130 S$=INKEY$
1140 IF S$="" GOTO 1130
1150 IF S$=CHR$(13) GOTO 1804
1160 IF S$=" " GOTO 1240
1170 IF S$=CHR$(0)+CHR$(&h48) THEN Y=(Y-1+25) MOD 25:GOTO 1125
1180 IF S$=CHR$(0)+CHR$(&h50) THEN Y=(Y+1) MOD 25:GOTO 1125
1190 IF S$=CHR$(0)+CHR$(&h4B) THEN X=(X-1+80) MOD 80:GOTO 1125
1200 IF S$=CHR$(0)+CHR$(&h4D) THEN X=(X+1) MOD 80:GOTO 1125
1210 IF S$="c" THEN CLS:GOTO 1120
1220 IF S$="r" GOTO 1050
1225 IF S$=CHR$(27) THEN END
1230 GOTO 1130
1240 Z=PEEK((Y*80+X)*2)
1250 IF Z=42 THEN Z=32 ELSE Z=42
1260 POKE (Y*80+X)*2,Z
1270 GOTO 1130
1804 LOCATE 1,1,0
1900 ON KEY(1) GOSUB 2300
1910 KEY(1) ON
2000 V!=TIMER+.5
2010 FOR Y=0 TO 24
2020 FOR X=0 TO 79
2030 N=0
2040 Z=FNP(X-1,Y-1):IF Z=42 OR Z=46 THEN N=N+1
2050 Z=FNP(X ,Y-1):IF Z=42 OR Z=46 THEN N=N+1
2060 Z=FNP(X+1,Y-1):IF Z=42 OR Z=46 THEN N=N+1
2070 Z=FNP(X-1,Y ):IF Z=42 OR Z=46 THEN N=N+1
2080 Z=FNP(X+1,Y ):IF Z=42 OR Z=46 THEN N=N+1
2090 Z=FNP(X-1,Y+1):IF Z=42 OR Z=46 THEN N=N+1
2100 Z=FNP(X ,Y+1):IF Z=42 OR Z=46 THEN N=N+1
2110 Z=FNP(X+1,Y+1):IF Z=42 OR Z=46 THEN N=N+1
2120 Z=PEEK((Y*80+X)*2)
2130 IF Z=32 THEN IF N=3 THEN Z=43
2140 IF Z=42 THEN IF N<2 OR N>3 THEN Z=46
2150 POKE (Y*80+X)*2,Z
2160 NEXT X
2170 NEXT Y
2200 FOR Y=0 TO 24
2210 FOR X=0 TO 79
2220 Z=PEEK((Y*80+X)*2)
2230 IF Z=46 THEN Z=32
2240 IF Z=43 THEN Z=42
2250 POKE (Y*80+X)*2,Z
2260 NEXT X
2270 NEXT Y
2280 IF TIMER<V! GOTO 2280
2290 IF INKEY$="" GOTO 2000
2300 SYSTEM
বিরক্ত হয়ে এবং বন্ধুর জন্য অপেক্ষা করতে করতে আমি 15 মিনিটের মধ্যে এটি লিখেছিলাম, যিনি একই সময়ে কনওয়ের গেম অফ লাইফের জন্য তাঁর "শিক্ষানবিশ" দিয়ে কোড-গল্ফ করেছিলেন।
এটি এর মতো কাজ করে: এটি অবিলম্বে 80x25 টেক্সট মোড স্ক্রিন বাফার ব্যবহার করে ( আপনি যদি হারকিউলিস গ্রাফিক্স কার্ডে থাকেন তবে DEF SEG
ব্যবহারের প্রাথমিক পরিবর্তন করুন &hB000
; এই সেটিংসটি কেমু এবং (ধীর) ডসবক্সের সাথে কাজ করে)। একটি নক্ষত্র *
একটি ব্যাকটিরিয়া।
এটি দ্বি-পাসের কাজ করে: প্রথমত, জন্মস্থানগুলি চিহ্নিত করা হয় +
এবং মৃত্যুর সাথে এটির লক্ষ্যগুলি চিহ্নিত করা হয় .
। দ্বিতীয় পাস ইন, +
এবং .
সঙ্গে প্রতিস্থাপিত হয় *
এবং
যথাক্রমে।
TIMER
জিনিস এটা প্রতিটি রাউন্ডে পর অর্ধেক একটি দ্বিতীয় জন্য অপেক্ষা করতে হয়, ক্ষেত্রে আপনার QEMU হোস্ট খুব দ্রুত ☺ হয়
আমি এখানে সবচেয়ে কম-জয়ের দামের জন্য আশা করছি না তবে শীতলতার জন্য, বিশেষত প্রাথমিক বোর্ড সেটআপ বিবেচনা করে। আমি এমন একটি সংস্করণ পেয়েছি যেখানে গেম ইঞ্জিনটি এসেম্বলি কোড দ্বারা প্রতিস্থাপন করা হয়েছে, যদি আপনি আগ্রহী হন ...