`
javatar
  • 浏览: 1704530 次
  • 性别: Icon_minigender_1
  • 来自: 杭州699号
社区版块
存档分类
最新评论

[原创]简易五子棋

F# 
阅读更多
简易五子棋
10 GRAPH:CLS:FOR X= 4 TO 148 STEP 8: FOR Y=4 TO 68 STEP 8: BOX X,Y,X+8,Y+8: NEXT:NEXT
20 A=1:X=76:Y=44 :B=0
30 X=X+160*(X〈 4)-160*(X〉156):Y=Y+80*( Y〈 4 )-80*(Y〉76)
40 BOX X-4,Y-4,X+4,Y+4,1,2:M=ASC(INKEY$):BOX X-4,Y-4,X+4,Y+4,1,2
50 Y=Y-8*(M=20)+8*(M=21):X=X+8*(M=22)-8*(M=23) :IF M=29 GOTO 10
60 IF M=13 AND PEEK(20*Y+(X-4)/8+2436)<>62 GOTO 100
70 IF M=31 AND B=1 THEN CIRCLE W,V,3,1,0 : LINE W-4,V,W+4,V : LINE W,V-4,W,V+4:A=(A=0) :B=0
80 IF M=27 THEN CLS:LOCATE 3 ,9 : PRINT“退出”: END
90 GOTO 30
100 CIRCLE X,Y,3,A,1 :CIRCLE X,Y,2,1,A :W=X:V=Y:B=1
110 Z=65+62*A:K$(1)=“白棋”:K$(2)=“黑棋”:P=0:Q=0:R=0:S=0:FOR L=-32 TO 32 STEP +8
120 E=(PEEK(20*(Y+L)+(X+L-4)/8+2536)=Z):F=(PEEK(20*(Y-L)+(X+L-4)/8+2536)=Z)
130 G=(PEEK(20*Y+(X+L-4)/8+2536)=Z):H=(PEEK(20*(Y+L)+(X-4)/8+2536)=Z)
140 P=E*(P+E):Q=F*(Q+F):R=G*(R+G):S=H*(S+H)
150 IF P=5 OR Q=5 OR R=5 OR S=5 THEN CLS:LOCATE 3 ,6: PRINT K$(A+1);“胜啦!”:END
160 NEXT:A=(A=0):GOTO 30

解释:
10 画棋盘
20 赋予各数初始值
30 使光标到了屏幕边界后能循环到另一边
40 画光标,读键,反显消除上次画的光标
50 方向键,光标坐标移8点。F2键,回到10句的CLS(清屏)。
60 输入键,PEEK(20*Y+(X-4)/8+2496-60)不等于0+0+32+16+8+4+2+0=62表示该棋位没有棋。(此为NC1020型,其它型的把2496改成相应型显存的第一个PEEK值)
70 F4键,把所下棋空白掉,LINE是把空白掉的棋盘补好。
80 跳出键,END结束程序。M=等于的数就是各键所对应的ASCII码,修改它,就可用其它键控制。
90 重复读键。
100 画棋子。
110---150 判断胜负。PEEK(20*Y+(X-4)/8+2496+40)等于0+64+32+16+8+4+2+1=127表示X,Y(或X+L,Y+L)棋位棋有黑棋,PEEK值等于0+64+0+0+0+0+0+1=65表示有白棋,PEEK值等于0+0+0+0+8+0+0+0=8(在顶上一横格时等于0)表示没有棋。知道这个原理,加个禁手,自已应该可以解决了。(此为NC1020型,其它型的把2496改成相应显存的第一个PEEK值)。
160 A=(A=0)使A的值反复0和1,这样就会交替出现黑棋和白棋。
如需转帖,请注名原作者:o_o


若要加存档功能,把:
80 IF M=27 THEN CLS:LOCATE 3 ,9 : PRINT“退出”:END
改成:
80 IF M=27 THEN 170

然后在10句前面加:

9 PRINT “档中存有棋局,是否继续?”:LOCATE 3,8:“Y是/N否”:M=ASC(INKEY$)

在10句后加:

11 DIM D(200):IF M<>121 GOTO 20
12 OPEN “DANG”FOR INPUT AS #1:WRITE #1,A,P$
:FOR X=4 TO 156 STEP 8:FOR Y=4 TO 76 STEP 8
13 INPUT #1,D,P$:IF D=127 THEN CIRCLE X,Y,4,1,1
14 IF D=65 THEN CIRCLE X,Y,3,1,0:CIRCLE X,Y,4
15 NEXT:NEXT:CLOSE #1:X=76,Y=44:GOTO 30

在程序后面加:

170 FOR X= 1 TO 20 : FOR Y=1 TO 10 :W=W+1: D(W)=PEEK(160*Y+X+2455):NEXT:NEXT
180 CLS:PRINT “未下完,是否存档?”:LOCATE 3,8:PRINT“Y是/N否”
190 M=ASC(INKEY$):IF M<>121 GOTO 220
200 CLS:LOCATE 3,5:PRINT“正在存档...”
200 OPEN “DANG”FOR OUTPUT AS #1:WRITE #1,A,“,”:FOR W=1 TO 200:WRITE #1,D(W),“,”
210 NEXT:CLOSE #1:CLS:LOCATE 3,6:PRINT“存档成功!”:INKEY$
220 CLS:LOCATE 3,4:PRINT“欢迎下次再来!” END

加完后,第一次运行,应在出现“档中存有棋局,是否继续?”时不要按Y键按其它键,而在出现“未下完,是否存档?”时按Y键。这样就会生成一个“DANG”的DAT数据文件。
用这种顺序存贮是比较慢的,如果用批量法要快得多。


分享到:
评论

相关推荐

    canvas制作的简易五子棋

    使用HTML5的canvas制作的非人机的简易五子棋使用HTML5的canvas制作的非人机的简易五子棋使用HTML5的canvas制作的非人机的简易五子棋使用HTML5的canvas制作的非人机的简易五子棋

    c++简易五子棋代码

    c++简易五子棋代码

    java实现简易五子棋

    在本项目中,"java实现简易五子棋"是一个基于Java编程语言开发的五子棋游戏,主要用于教学目的,帮助学生理解和应用Java编程中的各种函数和方法。通过这个项目,开发者能够深入学习如何利用Java来构建一个交互式的...

    java简易五子棋实现

    在Java编程语言中实现一个简易五子棋游戏是一项常见的练习任务,它可以帮助初学者深入理解面向对象编程、事件处理和图形用户界面(GUI)的设计。下面将详细解释这个项目涉及的关键知识点。 1. **Java Swing GUI**: ...

    简易五子棋

    【简易五子棋】是一款基于Java编程语言实现的简单五子棋游戏,具有基础功能,如悔棋。程序的核心在于创建一个用户界面,允许玩家在棋盘上下棋,并且能够检查游戏状态,如是否有五子连珠(胜利条件)。 在代码中,`...

    易语言源码易语言简易五子棋源码.rar

    易语言源码易语言简易五子棋源码.rar 易语言源码易语言简易五子棋源码.rar 易语言源码易语言简易五子棋源码.rar 易语言源码易语言简易五子棋源码.rar 易语言源码易语言简易五子棋源码.rar 易语言源码易语言简易...

    简易五子棋程序(人工智能)

    一个简单的五子棋程序 一个简单的人工智能算法

    java编写的简易五子棋游戏

    【标题】:“java编写的简易五子棋游戏” 在编程领域,Java是一种广泛使用的面向对象的编程语言,因其跨平台的特性而深受开发者喜爱。本项目是一个基于Java编写的简易五子棋游戏,旨在帮助初学者理解Java语言基础...

    js-简易五子棋游戏

    【JavaScript五子棋游戏开发详解】 在Web开发领域,JavaScript是一种不可或缺的语言,它赋予了网页动态交互的能力。本文将深入探讨如何使用JavaScript和HTML5来创建一个简单的五子棋游戏。 1. **HTML5 Canvas基础*...

    C++Builder 简易五子棋

    【C++Builder简易五子棋】是一款基于C++Builder编程环境开发的桌面游戏,它实现了基本的五子棋对弈功能,让玩家可以与计算机或另一名玩家进行对战。这款程序展示了C++Builder在图形用户界面(GUI)设计和算法实现上...

    通过学习实现的一个简易五子棋小游戏,主要学习Android中自定义View相关知识

    这个简易五子棋小游戏就是这样一个实例,它展示了如何将自定义View应用于游戏开发中。下面我们将深入探讨这个项目中涉及的关键知识点。 首先,五子棋游戏的界面通常由棋盘和棋子组成,这需要我们自定义两个关键的...

    五子棋六_dq_简易五子棋_

    【五子棋六_dq_简易五子棋_】是一个基于C#编程语言开发的简易五子棋游戏项目。此程序旨在提供一个简单的界面,让用户能够体验到经典的五子棋对弈乐趣。C#是一种广泛应用于桌面应用、游戏开发、Web服务等领域的面向...

    易语言简易五子棋

    《易语言简易五子棋》是一款基于易语言开发的简单五子棋游戏程序,它提供了基本的五子棋游戏功能,包括载入棋盘、玩家下棋以及计算胜负等核心要素。在这里,我们将深入探讨这款程序所涉及的IT知识点。 首先,易语言...

    c# vs简易五子棋

    《C# VS简易五子棋:编程艺术与实践解析》 在编程的世界里,游戏开发是一种极好的学习和实践方式,尤其是对于初学者而言。本文将深入探讨如何使用C#语言在Visual Studio(VS)环境下开发一款五子棋游戏。这款五子棋...

    山东大学简易五子棋

    【标题】"山东大学简易五子棋"是一个基于C++编程语言和Microsoft Foundation Classes (MFC)库开发的五子棋游戏,它是山东大学数据结构课程设计的一部分。这个项目旨在帮助学生将理论学习的数据结构知识应用到实际的...

    简易五子棋的详细制作

    ### 知识点详解:简易五子棋的Java制作 #### 一、基本论述与设计考量 五子棋,作为一款历史悠久且广受欢迎的棋类游戏,其规则简单明了,但开发一款既能满足基本需求又能提升用户体验的五子棋程序,却需要深入的...

    简易五子棋最基本功能

    这个“简易五子棋最基本功能”的项目,正如其名,主要实现了五子棋游戏的核心功能,但未进行界面美化。下面我们将深入探讨该项目涉及的IT知识点。 1. **游戏逻辑**: - **棋盘与棋子**:五子棋的棋盘通常是15x15的...

    C语言简易五子棋.zip

    C语言简易五子棋通过输入坐标来下棋的简易C语言五子棋(无AI)

Global site tag (gtag.js) - Google Analytics