find the pairs

原创 2015年11月20日 10:55:35

简版c语言“找你妹”(find the pairs)游戏
功能:
1.使用8个随机对(pairs)填充4x4矩阵(元素为ASCII字符);
2.短暂的显示随机矩阵;
3.允许玩家随机选择两个元素,并显示内容;
4.若玩家选择正确,则保持显示,否则隐藏;
5.玩家可以在任何时候按q退出游戏;
6.一旦8对find成功,结束游戏;

demo1:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>
void printMatrix(int choose[],char c[])
{
    int i,j;
    char question = 63;
    for(i = 0;i<4;i++)
    {
        for(j = 0;j<4;j++)
        {
            if(choose[i*4+j] == 1)
                printf("%c ",c[i*4+j]);
            else
                printf("%c ",question);
        }
        printf("\n");
    }
}
int main()
{
    int i,j;
    srand(time(0));
    char c[16] = {0};
    for(i = 0;i<8;i++)
    {
        c[i] = rand()%128;
        c[i+8] = c[i];
    }
    for(i = 0;i<100;i++)
    {
        int j1 = rand()%16;
        int j2 = rand()%16;
        char tmp = c[j1];
        c[j1] = c[j2];
        c[j2] = tmp;
    }
    for(i = 0;i<4;i++)
    {
        for(j = 0;j<4;j++)
        {
            printf("%c ",c[i*4+j]);
        }
        printf("\n");
    }
    Sleep(2000);
    int choose[16] = {0};
    int k = 0;
    while(1)
    {
        system("cls");
        printMatrix(choose,c);
        printf("please input your choose ? Row Column\n");
        int row1,column1;
        scanf("%d %d",&row1,&column1);
        int num1 = row1*4+column1-5;
        choose[num1] = 1;

        system("cls");
        printMatrix(choose,c);
        printf("please input your choose ? Row Column\n");
        int row2,column2;
        scanf("%d %d",&row2,&column2);
        int num2 = row2*4+column2-5;
        choose[num2] = 1;

        system("cls");
        printMatrix(choose,c);
        Sleep(2000);

        if(c[num1] != c[num2])
        {
            choose[num1] = 0;
            choose[num2] = 0;
        }
        k++;

        int mark = 1;
        int q;
        for(q = 0;q<16;q++)
        {
            if(choose[q]==0)
            {
                mark = 0;
                break;
            }
        }
        if(mark == 1)
            break;
    }

    system("cls");
    printMatrix(choose,c);
    printf("total steps:%d",k);
    return 0;
}

demo2:

#include <iostream>
#include <vector>
#include <windows.h>
#include <string>
#include <conio.h>
using namespace std;
void main()
{
    char * a1 = new char[16];
bool * a2 = new bool[16];
memset(a2, false, 16);
for(int i = 0; i < 16; i += 2){
char temp = rand() % 256;

do{
temp = rand() % 256;
}while(temp == '\r' || temp == ' ' || temp < 0);
    a1[i] = temp;
a1[i + 1] = temp;
}
for(int i = 0; i < 16; i++){
int buffer = rand() % 16;
swap(a1[i], a1[buffer]);
}

for(int i = 0; i < 16; i++){
cout<<a1[i];
if((i + 1) % 4 == 0 && i > 0){
cout<<endl;
} else {
cout<<" ";
}
}
//Sleep(3000);
//system("cls");
    //产生随机数组完毕
string str1 = "", str2 = "";
int select1, select2;
char isGoingOn ;
while(true){
cout<<"输入这次判断的结果:"<<endl;
char ch = _getch();
cout<<ch;
while(isdigit(ch)){
str1 += ch;
ch = _getch();
cout<<ch;
}
if(ch == 'q') exit(0);
    ch = _getch();
cout<<ch;
     while(isdigit(ch)){
str2 += ch;
ch = _getch();
cout<<ch;
}
if(ch == 'q') exit(0);
int index1 = stoi(str1) - 1;
int index2 = stoi(str2) - 1;
if(a1[index1] == a1[index2] && index1 != index2){
a2[index1] = a2[index2] = true;
}
str1 = "";
str2 = "";
cout<<"输出如下:"<<endl;
for(int i = 0; i < 16; i++){
if(a2[i])
cout<<a1[i];
else 
cout<<" ";
if((i + 1) % 4 == 0 && i > 0){
cout<<endl;
} else {
cout<<" ";
}
}
}
delete a1;
delete a2;
return 0;
}

感谢bin童鞋和yu童鞋。

如有不对,欢迎指正!

R语言中用pairs作图时标出各个分图中的所要显示的点

对R语言源码中的graphics包中的pairs.R文件修改如下: pairs.default function (x, labels, panel = points, ...,     ...
  • paomojing
  • paomojing
  • 2014年09月30日 13:34
  • 3773

基因数据处理53之cs-bwamem集群版运行paird-end(1千万条100bp的reads)

art: art_illumina -ss HS20 -i GRCH38BWAindex/GRCH38chr1L3556522.fna -p -l 100 -m 200 -s 10 -c 10...
  • bob601450868
  • bob601450868
  • 2017年12月18日 01:13
  • 65

通过get和post方式提交参数给web应用

数据小于2k时用get,大于时候用post, 指定实体数据内容类型 将信息打包成Map对象 public class NewsService { public static Boolean s...
  • xiaohuzhanshi
  • xiaohuzhanshi
  • 2016年03月08日 15:26
  • 178

DG 日志级联传送 参数据配置

DG级联安装: 数据库版本 11.2.0.1 r2  primary     10.3.4.110    r5  standby1    10.3.4.111 r6  standby2    10.3...
  • u010719917
  • u010719917
  • 2016年09月02日 18:10
  • 512

Find K-th Smallest Pair Distance:查找数组元素中差值第K大的两个元素的差值

Given an integer array, return the k-th smallest distance among all the pairs. The distance of a pai...
  • u013300579
  • u013300579
  • 2017年10月30日 17:29
  • 295

Lua -- 重写pairs方法(让字典访问有序)

字典由于其独特的存储数据方式,我们访问一个字典可能会有不同的遍历顺序,当我们游戏中希望同一个字典,在不同手机上都有相同的访问顺序的时候,怎么办呢,我们可以重写字典的遍历方法pairs local ra...
  • honey199396
  • honey199396
  • 2017年12月15日 21:12
  • 70

Reverse Pairs (第二周:分治法)

Reverse Pairs (第二周:分治法)
  • lin360580306
  • lin360580306
  • 2017年03月04日 15:14
  • 412

深度学习之《社交网络问答系统-问题重复检测任务》实现

quora duplicate questions:Semantic Question Matching with Deep Learning  本文参考了quora duplicate que...
  • hero_fantao
  • hero_fantao
  • 2017年04月05日 19:50
  • 1155

【Python学习】 之 Python3.x(小知识点汇集)

(1)(2)(3)(4)(5)输入函数(6)字符串操作(7)表达式(8)分支语句(9)赋值语句(10)输出(11)循环语句(12)数据类型总图(13)数字类型  ①整数类型  ②浮点数类型   ③复...
  • fanfan4569
  • fanfan4569
  • 2017年01月05日 16:52
  • 758

Lua中,泛型for循环遍历table时,ipairs和pairs的区别

为了看出两者的区别,首先定义一个table: a={"Hello","World";a=1,b=2,z=3,x=10,y=20;"Good","Bye"}使用ipairs对其进行遍历: [python...
  • huishouge
  • huishouge
  • 2016年12月11日 23:12
  • 1063
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:find the pairs
举报原因:
原因补充:

(最多只允许输入30个字)