iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >iOS开发数独小游戏实例
  • 169
分享到

iOS开发数独小游戏实例

iOS数独 2022-05-19 14:05:50 169人浏览 泡泡鱼
摘要

本文实例为大家分享了iOS实现数独小游戏的具体代码,供大家参考,具体内容如下 一、界面设计 如下图。图1是用户打开程序后的主页面,点击“开始游戏”后进入游戏页面(图2,图3)。游戏界

本文实例为大家分享了iOS实现数独小游戏的具体代码,供大家参考,具体内容如下

一、界面设计

如下图。图1是用户打开程序后的主页面,点击“开始游戏”后进入游戏页面(图2,图3)。游戏界面上方是显示条,显示玩家当前选中的按钮。当玩家想要在九宫格中填入数字时,只需点击下方1-9的数字控件,显示条上会自动显示玩家当前选中的数字编号,再点击玩家想要填入的位置,就可以填入控件了。

最下方三个按钮分别是“提交”“橡皮擦”“标记”控件。当玩家点击“提交”按钮,系统会自动为玩家结算游戏分数;当玩家点击“橡皮擦”时,可以擦除九宫格上指定位置的数字;当玩家点击“标记”时,可以为九宫格上的格子添加一个小红旗作为标记。游戏界面上方有一个导航条,点击house图标会回到主页面。

 二、实现

先搭入口界面,包括一个image view和button,添加一个ViewController作为游戏界面,在入口界面和游戏界面之间添加segue,当点击“开始游戏”时跳转到游戏界面。

为游戏界面添加必要的控件,用9x9个button实现九宫格,添加9个数字按钮和3个功能控件,为了便于用户使用,需要添加一个显示条。通过用户按下button得知玩家想要在九宫上填入数字的位置坐标,button通过Tag识别。

关联代码。将九宫格,9个数字按钮,以及3个功能控件与代码关联,同时新建一个Board类,Board类包含九宫格游戏进度和答案计算等。


//
//  ViewController.swift
//
import UIKit
 
class ViewController: UIViewController {
 
    var inputNumber: String = " "
    var board = Board()
    var oldx: Int = 0
    var oldy: Int = 0
    var oldValue: Int = 0
    @IBOutlet weak var display: UILabel!
    
    @IBAction func inNumber(_ sender: UIButton) {
        if let  num = sender.currentTitle{
            switch num {
            case "" :inputNumber = "" ;display.text = ""
            case "1" :inputNumber = "1" ;display.text = "1"
            case "2" :inputNumber = "2" ;display.text = "2"
            case "3" :inputNumber = "3" ;display.text = "3"
            case "4" :inputNumber = "4" ;display.text = "4"
            case "5" :inputNumber = "5" ;display.text = "5"
            case "6" :inputNumber = "6" ;display.text = "6"
            case "7" :inputNumber = "7" ;display.text = "7"
            case "8" :inputNumber = "8" ;display.text = "8"
            case "9" :inputNumber = "9" ;display.text = "9"
            default:
                break
            }
        }
    }
 
    @IBAction func setNumber(_ sender: UIButton) {
        let pushTag: Int = sender.tag
        let hightTag: Int = pushTag / 10
        let lowTag: Int = pushTag % 10
        if board.question[hightTag - 1][lowTag - 1] == 0 {
            sender.setTitle(inputNumber, for: UIControl.State.nORMal)
            board.change(x: hightTag - 1, y: lowTag - 1, value: Int(inputNumber) ?? 0)
            oldx = hightTag - 1
            oldy = lowTag - 1
            oldValue = Int(inputNumber) ?? 0
        }
    }
    
    @IBAction func eraser(_ sender: UIButton) {
        inputNumber = " "
        display.text = "橡皮擦"
    }
 
    @IBAction func finish(_ sender: UIButton) {
        if board.check() {
            display.text = "You Win!"
        } else {
            display.text = "Score: \(board.score)"
        }
    }
    
    @IBAction func backHome(_ sender: UIBarButtonItem) {
        dismiss(animated: true, completion: nil)
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        display.text = "begin"
    }
}

//
//  Board.swift
//
import UIKit
class Board{
    var score: Int = 0
    var question: [[Int]] = [[0,0,0,1,8,0,9,3,0],
                             [1,8,6,0,0,0,0,0,7],
                             [0,5,0,7,4,0,0,0,0],
                             [5,0,4,0,0,0,3,0,6],
                             [0,0,0,3,9,4,0,0,2],
                             [2,3,0,0,0,0,0,1,0],
                             [0,0,9,0,0,3,0,0,8],
                             [0,0,2,9,0,5,7,0,0],
                             [0,7,0,0,0,8,0,9,0],]
    var nowBoard: [[Int]] = [[0,0,0,1,8,0,9,3,0],
                             [1,8,6,0,0,0,0,0,7],
                             [0,5,0,7,4,0,0,0,0],
                             [5,0,4,0,0,0,3,0,6],
                             [0,0,0,3,9,4,0,0,2],
                             [2,3,0,0,0,0,0,1,0],
                             [0,0,9,0,0,3,0,0,8],
                             [0,0,2,9,0,5,7,0,0],
                             [0,7,0,0,0,8,0,9,0],]
    var answer: [[Int]] = [[4,2,7,1,8,6,9,3,5],
                           [1,8,6,5,3,9,2,4,7],
                           [9,5,3,7,4,2,6,8,1],
                           [5,9,4,8,2,1,3,7,6],
                           [7,6,1,3,9,4,8,5,2],
                           [2,3,8,6,5,7,4,1,9],
                           [6,1,9,4,7,3,5,2,8],
                           [8,4,2,9,1,5,7,6,3],
                           [3,7,5,2,6,8,1,9,4],]
    func getNum(x: Int, y: Int) -> Int {
        return nowBoard[x][y]
    }
    func change(x: Int, y: Int, value: Int) {
        nowBoard[x][y] = value
    }
    func check() -> Bool {
        var countCorrect: Float = 0
        var countEmpty: Float = 0
        for i in 0...8{
            for j in 0...8 {
                if nowBoard[i][j] == answer[i][j] {
                    countCorrect += 1
                }
                if question[i][j] == 0 {
                    countEmpty += 1
                }
            }
        }
        //score = Int(((countQues -  countCorrect) / countQues) * 100)
        score = Int( ((countCorrect +  countEmpty - 81) / countEmpty) * 100 )
        if nowBoard == answer {
            score = 100
            return true
        } else {
            return false
        }
    }
}

三、试运行(附GIF)

四、评价

优点:程序简单,代码量小,无复杂算法

缺点:游戏盘面相对固定,未实现数独盘面的随机生成、自动生成数独的解、以及不同难度生成。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: iOS开发数独小游戏实例

本文链接: https://www.lsjlt.com/news/30507.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java实现数独小游戏
    本文实例为大家分享了Java实现数独小游戏的具体代码,供大家参考,具体内容如下 题目要求: 制作一个数独游戏。数据游戏拼图由一个3*3的九宫格组成,每个格式又分成一个小九宫格,共九九...
    99+
    2024-04-02
  • C语言实现数独小游戏
    本文实例为大家分享了C语言实现数独小游戏的具体代码,供大家参考,具体内容如下 输入包含9x9的已知数字,空位用0补齐,中间用空格隔开。(输入数独题目确保正确)输出为输入数独题目的解。...
    99+
    2024-04-02
  • iOS实现拼图小游戏
    本文实例为大家分享了iOS实现拼图小游戏的具体代码,供大家参考,具体内容如下 首先找到这8张图片,还需要一张空白的图片,自己随便剪一张吧。 定义三个属性:button可变数组,图片...
    99+
    2024-04-02
  • Python游戏开发之魔塔小游戏的实现
    前言 这一期我们继续完善我们的魔塔小游戏。 废话不多说,让我们愉快地开始吧~ 开发工具 Python版本: 3.7.4 相关模块: cpgames模块; 以及一些pytho...
    99+
    2024-04-02
  • Unity游戏开发之射击小游戏的实现
    目录前言游戏画面展示游戏代码解析游戏打包总结前言 人们一直都说学习和玩游戏不能兼顾,那我们就来边学习怎样制作游戏,边玩游戏 不就兼得了嘛~ 我可真是一个小天才呢~ 所以本篇文章为大家...
    99+
    2024-04-02
  • 【小程序】低代码+小游戏=小游戏可视化开发
    🥳 作者:伯子南 😎 坚信: 好记性不如乱笔头,独乐乐不如众乐乐 💪 个人主页:https://blog.csdn.net/qq_34577234s...
    99+
    2023-10-02
    小程序
  • C语言实现数独游戏
    本文实例为大家分享了C语言实现数独游戏的具体代码,供大家参考,具体内容如下 目标 写一个数独游戏,有以下功能: 1:能随机产生题目并给出答案。 2:求解输入的题目并输出答案。 实现说...
    99+
    2024-04-02
  • javascript中createjs小游戏开发的示例分析
    这篇文章主要介绍javascript中createjs小游戏开发的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 实现一个无缝连接的背景图,模拟出汽车在加速的状态this...
    99+
    2024-04-02
  • 简单实现java数独游戏
    本文实例为大家分享了java数独游戏的具体代码,供大家参考,具体内容如下打算把javaFx需要的组件装好以后直接用javaFx的,但似乎eclipse的版本不对,安装了也不能用...数独代码是在之前寒假受命写的,学了一个月java的成果,现...
    99+
    2023-05-30
    java 数独游戏 ava
  • 微信小程序│ 游戏开发 │连连看游戏
    “连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。“连连看”考验的是各位的眼力,在有限的时间内,只要把所有能连接的相同图案,两个一对地找出来,每找出一对,它们就会自动消失,只要把所...
    99+
    2023-09-23
    游戏 微信小程序 小程序
  • C++在独立游戏开发中是否推荐?
    对于独立游戏开发,c++++ 的优势包括:高性能和效率低级控制广泛的库支持其劣势包括:陡峭的学习曲线易出错对于需要高性能且缺乏编程经验的开发者来说,c++ 可能是挑战性的,但它提供了创建...
    99+
    2024-05-13
    c++ 游戏开发
  • android实现数独游戏机器人
    本文实例为大家分享了android实现数独游戏机器人的具体代码,供大家参考,具体内容如下 针对该应用的数独机器人,填答案逻辑未完成,主要原因在于游戏响应触屏事件参数有待调整,简单的使...
    99+
    2024-04-02
  • Unity游戏开发之2048游戏的实现
    目录一、前言二、游戏开发知识储备2-1技术栈三、休闲类游戏《2048》开发实战3-1玩法概述3-2实现分析3-3搭建场景3-4实现代码一、前言 写今天这篇文章的缘由,其实是来自于前段...
    99+
    2024-04-02
  • android简单小游戏怎么开发
    要开发一个简单的Android小游戏,可以按照以下步骤进行:1. 安装Android Studio:Android Studio是G...
    99+
    2023-10-21
    android
  • C语言实现贪吃蛇小游戏开发
    本文实例为大家分享了C语言实现贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 程序介绍 代码 #include<stdafx.h>            //vc自带...
    99+
    2022-11-13
    C语言 贪吃蛇
  • C#游戏开发之实现贪吃蛇游戏
    目录实践过程效果代码实践过程 效果 代码 public partial class Form1 : Form { public Form1() { ...
    99+
    2023-01-04
    C#实现贪吃蛇游戏 C#贪吃蛇游戏 C#贪吃蛇
  • C#游戏开发之实现华容道游戏
    目录实践过程效果代码实践过程 效果 代码 public partial class Form1 : Form { public Form1() { InitializeC...
    99+
    2023-01-04
    C#华容道游戏 C#华容道 C#游戏
  • java版数独游戏界面实现(二)
    本文实例为大家分享了java版数独游戏界面实现的具体代码,供大家参考,具体内容如下实现效果图:这里写图片描述主函数用于启动程序:package hlc.shudu.app;import hlc.shudu.src.ShuduHelper;i...
    99+
    2023-05-30
    java 数独游戏 ava
  • C语言怎么实现数独游戏
    本文小编为大家详细介绍“C语言怎么实现数独游戏”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言怎么实现数独游戏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。目标写一个数独游戏,有以下功能:能随机产生题目并给...
    99+
    2023-06-29
  • C++ 实战开发一个猜单词的小游戏
    目录前言效果展示一、函数接口二、重要函数接口详解1.菜单内容2.退出程序3.打开单词文件4.开始游戏5.查看玩家排名6.清空玩家排名7.玩家排名全部代码展示前言 程序内的单词全部保存...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作