剪刀石头布 (人机对战)

#import <Foundation/Foundation.h>

@interface Computer : NSObject

@property(assign,nonatomic) int ComCount;

-(int)Punches;//出拳

@end

#import "Computer.h"

@implementation Computer

-(int)Punches

{

int num=arc4random()%3+1;//随机产生1-3的值

switch (num)

{

case 1:

NSLog(@"计算机出的是石头");

break;

case 2:

NSLog(@"计算机出的是剪刀");

break;

case 3:

NSLog(@"计算机出的是布");

break;

default:

break;

}

return num;

}

@end

#import <Foundation/Foundation.h>

@interface Person : NSObject

@property(assign,nonatomic) int PerCount;

-(int)Punches;

-(int)PlayCompare:(int)Computer and :(int)Person;

@end

#import "Person.h"

@implementation Person

//出拳的种类

-(int)Punches

{

int num1;

NSLog(@"请出拳:1-->石头,2-->剪刀,3-->布");

scanf("%d",&num1);

switch (num1)

{

case 1:

NSLog(@"您出的是石头!");

break;

case 2:

NSLog(@"您出的是剪刀!");

break;

case 3:

NSLog(@"您出的是布!");

break;

default:

break;

}

return num1;

}

//人出拳的方法与计算机随机出拳的方法进行比较

-(int)PlayCompare:(int)Computer and:(int)Person

{

if ((Computer==1&&Person==2)||(Computer==2&&Person==3)||(Computer==3&&Person==1))

{

NSLog(@"计算机赢了!");

return -1;

}

else if (Computer==Person)

{

NSLog(@"平局");

return 0;

}

else

{

NSLog(@"恭喜:您赢了!");

return 1;

}

}

@end

#import <Foundation/Foundation.h>

#import "Computer.h"

#import "Person.h"

int main(int argc, const char * argv[])

{

@autoreleasepool

{

Computer *computer=[Computer new];

Person *person=[Person new];

int  count=0;

int num2;

for (int i=0; i<=20; i++)

{

int first=[person Punches];

int second=[computer Punches];

int third=[person PlayCompare:first and:second];

if (third==1)

{

person.PerCount++;

}

if (third==2)

{

computer.ComCount++;

}

NSLog(@"1-->继续 0-->结束");

scanf("%d",&num2);

count++;

NSLog(@"总共进行了%d局",count);

NSLog(@"人胜了%d局,计算机胜了%d局",person.PerCount,computer.ComCount);

}

}

return 0;

}

时间: 2024-08-01 19:56:34

剪刀石头布 (人机对战)的相关文章

C语言 AI智能,五子棋 人机对战,人人对战

C语言五子棋,人机对战,人人对战 [email protected]:~$ cat main.c  # include<stdio.h> # include<string.h> # include<stdlib.h> # define SPA 0 # define MAN 1 # define COM 2    /* 空位置设为0 ,玩家下的位置设为1 ,电脑下的位置设为2 */ int qipan[15][15];    /* 15*15的棋盘 */ int a,b,

Android 蓝牙对战五子棋项目实现(含人机对战功能)

上周花了一周时间做的课程设计的项目,实现的功能如下: 基本功能: (1) 该APP能够通过蓝牙自动搜索周围其他使用了该APP的手机,用户可选择其中某一个APP发起对战的要求,被发起方可以同意或者拒绝: (2) 双方可以实现五子棋蓝牙对战: (3) 具备悔棋等功能. (4) 实现人机对战.提供难度选择. (5)提供用户战绩排名系统. 项目已经上传到Github:https://github.com/jiangzhengnan/PumpkinGoBang.git Github跳转 下面是界面截图和实

HTML5+JS 《五子飞》游戏实现(八)人机对战

要想实现人机对战,就必须让电脑自动下棋,而且要知道自动去查找对方的棋子,看看有没有可以挑一对的,有没有可以夹一个的,这样下起来才有意思. 当电脑用户下完棋后,电脑应立即搜索用户的棋子,然后如果没有被吃的,就再随机走一个棋子(要想让电脑成为下棋高手就不能随机下棋,要考虑下棋后会不会再被对方吃掉等等,这里只简单做随机下子了). 完整<五子飞>游戏人机对战:http://www.lyout.com/projects/Fiveflychess/FiveflyChess8.htm // 查找是否有可挑的

高考作文,人机对战,人工智能只有小学水平

3月份时的人机围棋大战,国际顶尖选手李世石遭阿尔法狗完爆,这次人机对战考验的是围棋的逻辑能力,而计算机本就是逻辑产物,李世石落败情理之中.在昨天高考作文的人机大战中,拼的不仅是逻辑,更重要的语言文字的情感表达能力.在此次直接的语言文字比拼中,人工智能的情感表述尚显稚嫩. 人工智能情感表述尚显稚嫩,高考作文水平不及格 语文高考作文每年都是网络热点话题之一,而在昨天微软小冰也参加了高考作文创作,这被很多网友认为是人工智能与人类又一场PK,微软小冰同场与张鸣.安意如.潘采夫等10位名家进行高考作文创作

棋类人机对战的一般原理

下棋的程序,主要难点在“人机对战”,也就是机器有多聪明,下棋水平(AI)高不高. 不同的棋类,棋盘.棋子.规则都各不相同.但制作人机大战的思路有许多共同的特点. 1.局面估值 根据当前的棋局和“轮到谁走下一步棋”对当前局面进行估算,得到一个或少数几个整数(小数也无防).一般是4个整数合成(加法)一个整数,这4个整数是: 我攻+我防+敌攻+敌防.即对自己有利的 避开对自己有害的 避开对敌人有利的 对敌人有害的.(感谢咙想酒甜  446828992) 2.搜索2.1 单步搜索.根据当前棋局,算出我方

介绍一款Android小游戏--交互式人机对战五子棋

文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6589025 学习Android系统开发之余,编写了一个小游戏--交互式人机对战五子棋,自娱自乐.之所以称之为交互式人机对战五子棋,一是因为在进入人机对战模式这前,你可以任意设置好开局,同时,在对战过程中,你可以看到机器的思考过程,还可以标识出每一个落子点的优劣势:二是因为可以为机器增加游戏经验,使得机器越来越聪明.希望喜欢五子棋的同学能够喜欢,

人机对战:不断革新的AlphaGo ——深度学习

2017-04-23 2017年5月23日-27日,现等级分第一人.世界冠军柯洁九段将在浙江乌镇迎战谷歌人工智能AlphaGo,"人机大战Ⅱ"势必再掀围棋热潮. 人机对战:不断革新的AlphaGo AlphaGo是一款由谷歌旗下DeepMind公司研发的围棋人工智能程序.这个名字第一次见诸报端还是去年初,它在没有让子的前提下5-0击败欧洲冠军樊麾.但彼时AlphaGo也仅被视为诸多棋类AI中的一个,尚无今日的影响力. 直到去年三月,在业内普遍乐观的情况下,世界冠军头衔上双的韩国棋手李世

安卓五子棋(2)-人机对战

人机对战,无非是通过算法来实现AI,遍历五子棋棋盘,返回一个X,Y的值,再去绘制棋盘就行了. 不多说,下面直接附上代码,人机的算法,有这个算法后,在自定义的View里去用就行了 package com.dcx.bean; import android.util.Log; public class SmartAIPlayer  { private final static int FIVE = 10000; private final static int LIVE_FOUR = 4500; pr

结队-人机对战象棋游戏-项目进度

截止至2017-09-29,人机对战象棋游戏进度为: 1:背景以及棋盘已经布置完成,大小以及基本按钮都已完成. 2:基本页面布局和旗子图片都已完成. 存在的问题:现在还没找到优化象棋走步的功能(比如马走日,象走田之类的) https://gitee.com/vip_zjw/XiangQiYouXi

基于Qt Creator实现中国象棋人机对战, c++实现

GitHub地址: https://github.com/daleyzou/wobuku 这是自己大一学完c++后,在课程实践中写过的一个程序,实现象棋人机对战的算法还是有点难的, 自己当时差不多也是写了两个月左右吧!当时看书又有很多问题得不到解决,所以就在网上找了一个视频跟着写. 当然,这其中有很多功能都是自己扩展的. 我把视频分享出来,希望能对新手有帮助吧! 视频地址:链接:https://pan.baidu.com/s/1pIp6UMJ6LXsuJ3GT80NGfw 密码:9k8y 注意: