
Lv.1
One Person,one world
签名:Render3更新组件ing
在 论3D绘图于编程猫的实现--续篇 中回复
https://shequ.codemao.cn/community/429563 可以帮忙查下有没有错,我很担心sin,cos,asin的取值会发生错误(尽管我采用的是单位圆)
2022-03-10T12:12:55 点赞:0
在 我忘了该咋做了,增加变量结果一下子窜出来了50多次,怎么让他每一次只执行一次? 中回复
将碰撞判定分出来单独设一个进程,在“如果”模块内底部加上:
等待<碰到- 角色2 -不成立>
一个标准的二元触发器,格式如下:
while(true){
if(statement){
...
wait(!statement);
}
}
wait等价于“等待”模块
2022-04-18T08:23:04 点赞:0
在 求大佬帮忙~~~ 中回复
主角色拥有一个hit变量(你也可以叫“打击次数”),初值比如设成5
克隆的角色则复制了一份hit变量,每受到一次打击(取决于你怎么判定,比如武器碰到角色),hit就减一,到零就结束。
楼下也有个造型判定,我个人觉得应当是通过打击次数设定造型,否则整个逻辑就反了
2022-04-18T08:32:30 点赞:0
在 【辩论争鸣】第三期——工作室室长与集体喵是否应对其下成员言行负责? 中回复
首先,立场为反方,这个辩题本身有模糊。
请注意这是一场辩论,所以请仅就观点批评讨论,不要上升到人身。
我们首先需要知道的一点是:辩题中,成员与他人发生争论,有不当言行,这是属于成员个人的行为,并不属于一个代表人物的责任。
社区的工作室领头人通常都是一个集体中能力最强或管理能力最强的,并不是说当上室长,就一定要对成员的行为负起责任——个人认为那其实是社区与工作室规章制度应该管辖的。
室长是什么?他/她是一个集体的代表,对外表现为一个工作室最为人知的人物,并拥有一定的话语权,对内表现为对工作室有一个总体上管理的义务——请注意是总体上。室长可以就工作室成员的言行做警告,惩罚,但这并不代表成员出了问题,就一定要由室长承担部分责任——如果你制定了一套完善的规章制度,并已经有了完善的体系去维持它,那么出现了问题就只有可能是个人问题,你作为规则的制定者,在已经有了处理手段(这里主要是指踢出工作室等惩罚),只需要进行声明并展示处理结果即可。
也就是说,成员的行为只能是其个人的——因为一个成员可以分很多种:出于兴趣爱好志同道合加入的,出于学习加入的,出于好奇参观加入的,出于某些目的加入的,但究其本源,成员的行为并未和领头人物绑定在一起——领头人无法全方面无休止地监控成员行为,在工作室有完善规定,如“不得随意引战,违者开除室籍”这样的情况下仍出现的个人不当行为,仅由其个人承担责任,室长/领头人只负责出面表态等其应尽的事务。
论述完毕。
2022-04-27T15:06:05 点赞:5
在 【辩论争鸣】第三期——工作室室长与集体喵是否应对其下成员言行负责? 中回复
楼下正方辩友认为个体行为已经影响到其它人的时候,不能简单的归因于个体意志。
我们并不能认为一个个体即代表群体内所有成员的言行,辩友下了定义,认为当成员发表不当言行后,本身也“代表”了“工作室成员”的言行。“工作室成员”当指在非工作室人员看来对工作室的整体印象,也即“一颗老鼠……坏了一锅粥”,但实际上这对于工作室整体不会有太大影响——我们看到一个有名的工作室出现了不好的成员,发表不好的言论,我们只会谴责这个成员怎么不好,而更多的,室长在这个情况下所应做的,就是立即处理。自然如果成员违规,那么完全应当开除室籍,这并非是与成员割裂,如果工作室没有一个严格且理性的硬性规则存在,也就无法承载工作室的人情——人情不加限制,会造成更严重的后果。
室长在我看来不会获得比成员多的多的荣誉,我们看到一个工作室出产的好作品,通常会看:它是哪个工作室成员出的?即使说室长的作品会获得个人的一些专用宣传渠道,但一个人获得荣誉的多少,仍然取决于其能力——室长通常是能力最强的,荣誉自然也多,这并不影响在处理成员问题的时候进行正当且合乎规则的处理——我们需要的是规则,而不是情理上的容忍。与辩友所论的室长“割裂成员”,“高高在上”不同,他/她更多是作为管理者的角色,管理者即应按规则处理事情,“高高在上”更多是反对派的声音。对于集体,室长确实应当表态,作为代表发声,但这不是其必须接受这些仅与成员自身道德相关的责任的理由,因为没有一个室长能保证所有的成员都去遵守规则,在这个方面上去苛求室长管好每一个成员,是不合理的。
反方论述完毕。
2022-04-27T16:55:54 点赞:4
在 【辩论争鸣】第三期——工作室室长与集体喵是否应对其下成员言行负责? 中回复
我们首先需要确认一个问题:喵所负责任,是什么责任? 论题的争议就在这里,是成员不当言行造成的后果,由喵承担的责任,还是作为代表发声的责任? 从正方论点中我们可以看到,正方所认为的责任是作为代表发声的责任,这自然是隶属于室长/喵职务上的必然责任,相信大部分人都能认同。 而前文我所持的责任定义是前者,即喵也要为成员的责任负责,这很显然是错误的,因为如果一个喵在完全不知道有成员犯错误的情况下,去承担这一平白无故扣上的责任帽子,论谁都不能接受。 这个论述可能很简短,但我们首先应当在同一个问题角度上辩论——对责任的理解直接决定你的立场,这是我的看法。
2022-04-28T10:16:34 点赞:2
在 开发C++ 中回复
你如果觉得自己水平很高,官方能收下你这份礼物的话,请见: longlong__convert::to_int(conststd::wstring&__input)const{ longlong__r=0; for(auto&&i:__input) __r=__r*10+(iswdigit(i)?(i-L'0'):0); for(auto&&i:__input){ if(i==L'-'){ __r*=-1; return__r; } } return__r; } 自己水平不够,就不要说出这种“送官方代码”的幼稚言论,这对他们开发编译服务的前后端没有任何帮助。 推荐你使用本地IDE开发,或者……不想推荐,code.xueersi.com,提供在线编译C++代码服务,C++14标准的。
2022-04-28T12:57:31 点赞:1
在 我想在编程猫中对自定义的变量进行判断,如当变量值为0时显示游戏结束,请问如何操作呢? 中回复
你使用的开发工具是什么?如果是Kitten的话,直接用“如果 变量 = 0”的积木,里面加上你的显示功能即可,其他积木类编程也都差不多,变量的判断一般是通过逻辑运算符实现的
2022-04-28T13:00:44 点赞:1
在 [C++类/重载运算符]求助 中回复
main.cpp:45:9: warning: reference to stack memory associated with local variable 'c' returned [-Wreturn-stack-address]
return c;
^
main.cpp:106:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
2 warnings generated.
这是gcc的警告
显然你的ihaasub返回的是haa的引用,但你返回的是一个正常的临时类,把haa&改成haa就行了
以及106行的operator+没写完整
106的实现你还没写完,我先返回个构造函数代替,解决代码如下:
#include <bits/stdc++.h>
using namespace std;
class haa{
public:
haa(long long num=0){
string n=to_string(num);
for(int i=n.length()-1;i>=0;--i) A.push_back(n[i]-'0');
}
friend istream& operator>>(istream &is,haa &n);
friend ostream& operator<<(ostream &os,c喵t haa &n);
int operator[](long long index) c喵t;
bool operator<(haa &B);
haa operator+(haa &B);
haa operator+(int &B);
haa operator+=(haa &B);
haa operator-(haa &B);
haa operator-=(haa &B);
haa operator*(haa &B);
haa operator/(haa &B);
int size(){return (int)A.size();}
void setvalue(vector<int> C){A=C;}
void push_back(int a){A.push_back(a);}
int back(){return A.back();}
vector<int> value(){return A;}
void rlz(){
while(A.size()>1&&A.back()==0) A.pop_back();
}
private:
vector<int> A;
};
haa ihaasub(haa A,int B=1){
vector<int> C;
for(int i=0,t=0;i<A.size();i++){
t=A[i]-t;
if(i<1) t-=1;
C.push_back((t+10)%10);
if(t<0) t=1;
else t=0;
}
while(C.size()>1&&C.back()==0) C.pop_back();
haa c;
c.setvalue(C);
c.rlz();
return c;
}
istream& operator>>(istream &is,haa &n){
string s;
is>>s;
n.A.clear();
for(int i=s.length()-1;i>=0;--i) n.A.push_back(s[i]-'0');
return is;
}
ostream& operator<<(ostream &os,c喵t haa &n){
if(n.A.empty()) os<<0;
for(int i=n.A.size()-1;i>=0;--i) os<<n[i];
return os;
}
int haa::operator[](long long index)c喵t{
return A[index];
}
bool haa::operator<(haa &B){
if(A.size()>B.size()) return false;
if(A.size()<B.size()) return true;
for(int i=A.size()-1;i>=0;i++){
if(A[i]==B[i]) continue;
else if(A[i]<B[i]) return true;
else return false;
}
return false;
}
haa haa::operator+(haa &B){
if(A.size()<B.size()){
vector<int> C;
int t=0;
for(int i=0;i<B.size();i++){
t+=B[i];
if(i<A.size()) t+=A[i];
C.push_back(t%10);
t/=10;
}
if(t!=0) C.push_back(t);
haa c;
c.setvalue(C);
c.rlz();
return c;
}else{
vector<int> C;
int t=0;
for(int i=0;i<A.size();i++){
t+=A[i];
if(i<B.size()) t+=B[i];
C.push_back(t%10);
t/=10;
}
if(t!=0) C.push_back(t);
haa c;
c.setvalue(C);
c.rlz();
return c;
}
}
haa haa::operator+(int &B){
string b=to_string(B);
return haa();
}
haa haa::operator+=(haa &B){
*this=*this+B;
return *this;
}
haa haa::operator-(haa &B){
vector<int> C;
for(int i=0,t=0;i<A.size();i++){
t=A[i]-t;
if(i<B.size()) t-=B[i];
C.push_back((t+10)%10);
if(t<0) t=1;
else t=0;
}
while(C.size()>1&&C.back()==0) C.pop_back();
haa c;
c.setvalue(C);
c.rlz();
return c;
}
haa haa::operator-=(haa &B){
*this=*this-B;
return *this;
}
haa haa::operator*(haa &B){
vector<int> C(A.size()+B.size());
for(int i=0;i<A.size();i++){
for(int j=0;j<B.size();j++){
C[i+j]+=A[i]*B[j];
}
}
for (int i=0,t=0;i<C.size()||t;i++){
t+=C[i];
if(i>=C.size()) C.push_back(t % 10);
else C[i]=t%10;
t/=10;
}
while(C.size()>1&&C.back()==0) C.pop_back();
haa c;
c.setvalue(C);
c.rlz();
return c;
}
haa haa::operator/(haa &B){
haa s;
while(*this<B){
B-=*this;
// s=s+1;
}
return s;
}
haa pow(haa &A,haa &B){
haa k=haa(1);
B.rlz();
k.rlz();
if(B<k) return 1;
haa D=B-k;
haa C=pow(A,D);
cout<<"pow("<<A<<","<<D<<")="<<A*C<<"\n";
return A*C;
}
int main(){
haa sum;
haa n;
cin>>n;
haa c=haa(2);
haa ans=pow(c,n);
c=haa(2);
cout<<ans;
return 0;
}
下面是输入10的输出:
10
pow(2,1)=2
pow(2,2)=4
pow(2,3)=8
pow(2,4)=16
pow(2,5)=32
pow(2,6)=64
pow(2,7)=128
pow(2,8)=256
pow(2,9)=512
512
如果可以的话,请使用c喵t haa&以减少复制构造的开销,不要轻易用引用做返回类型
2022-04-29T10:47:09 点赞:0
在 【C++进阶】拥抱STL!第一章:泛型思想与容器入门 中回复
勘误:vector并未包含push_front()函数,请使用以下代码代替push_front():
a.insert(a.begin(),n);
另附作业答案:
1.泛型编程
2.首尾迭代器
3.一个指向容器最后一个元素的再后一个的迭代器
4.size(),push_back(),begin(),end()等,不唯一
5.示例代码:
#include <algorithm>
#include <vector>
#include <cstdlib>
#include <iostream>
int main(){
std::vector<int> a;
while(true){
std::string str;
std::cin >> str;
if(str == "find"){
std::cout << "查找: ";
int n;
std::cin >> n;
auto i = find(a.begin(),a.end(),n);
if(i == a.end())
std::cout << "未找到!"<< std::endl;
else
std::cout << "位于第" << (i - a.begin() + 1) << "个位置" << std::endl;
}else if(str == "sort"){
std::vector<int> b = a;
sort(b.begin(),b.end());
std::cout << "排序: " << std::endl;
for(auto i = b.begin();i < b.end();++i){
std::cout << *i;
if(i < b.end() - 1)
std::cout << ",";
}
std::cout << std::endl;
}else if(str == "pushfront"){
std::cout << "输入: ";
int n;
std::cin >> n;
a.insert(a.begin(),n);
}else if(str == "pushend"){
std::cout << "输入: ";
int n;
std::cin >> n;
a.push_back(n);
}else
std::cout << "未知指令" << std::endl;
}
return 0;
}2022-04-29T18:27:46 点赞:0
在 【C++进阶】拥抱STL!第二章:特殊容器精讲 中回复
本节作业参喵:
1.栈遵循LIFO原则,队列遵循FIFO原则
2.vector支持通过下标和迭代器等进行随机访问,而stack与queue只能分别在首与首尾处访问。
3.示例代码如下:
#include <cstdlib>
#include <iostream>
#include <stack>
#include <queue>
int main(){
int n1,n2;
std::cin >> n1;
std::stack<int> s;
for(int i = 0;i < n1;++i){
int t;
std::cin >> t;
s.push(t);
}
while(!s.empty()){
std::cout << s.top() << " ";
s.pop();
}
std::cout << std::endl;
std::cin >> n2;
std::queue<int> q;
for(int i = 0;i < n2;++i){
int t;
std::cin >> t;
q.push(t);
}
while(!q.empty()){
std::cout << q.front() << " ";
q.pop();
}
return 0;
}2022-04-30T14:38:27 点赞:0
在 【编程猫后援会&灵动工作室】C++教程贴第6弹 ASCII表 中回复
int a = 'a';是执行了自动类型转换,推荐使用:
int a = int('a');
int a = static_cast<int>('a');
来显式地说明其转换流程
以及,课后作业里可以使用toupper与tolower系统函数,请适当进行讲解
另外,现代编译器大部分都已经支持UTF-8编码了,wchar_t类型也可讲解,ASCII太过时了。
2022-04-30T19:01:43 点赞:0
在 有一事请教,知晓者帮忙 中回复
sin——正弦值,cos——余弦值,tan——正切值
cot——余切值,asin——反正弦值,acos——反余弦值
都是三角函数,具体定义自己去搜下
2022-05-02T20:06:14 点赞:0
在 【抄 袭】帝国的历史 中回复
2055年。
机械无情践踏着整片星球的土地,追杀着残存的人类。
针对机械的电子计算基础,人类最后的技术人才聚在一起,开发出了拟态电子,干扰甚至摧毁一个机器的计算单元。
机器面对这种虚无缥缈的恐怖武器完全无法抵挡,人类成了绝对优势方。
2022-05-07T09:37:38 点赞:0
在 【C++教程】一起++ 第7弹 循环(下) 中回复
请顺带介绍下:
std::string str = "ABC";
for(auto && i : str)
i++;
std::cout << str;
基于范围的for循环也是很重要的一种循环形式。
2022-07-30T16:59:28 点赞:0
在 WoW=!我看到有位中学生制作出了K4转CoCo积木!喵~ 中回复
如果Kitten和Coco的底层API都开放的话确实可以直接转换,当然Coco能不能接纳等价的Kitten积木就不一定了。
鉴于Kitten本身是编程猫的核心竞争力,底层API开放可能遥遥无期。
2022-09-15T22:21:48 点赞:0